Community-Unterstützungssysteme - Architektur und Interoperabilität

Transcription

Community-Unterstützungssysteme - Architektur und Interoperabilität
Technische Universität München
Fakultät für Informatik
Community-Unterstützungssysteme Architektur und Interoperabilität
Michael Koch
Dezember 2003
ii
Zusammenfassung
In dieser Arbeit wird aus Sicht der Angewandten Informatik das Thema „Software zur Unterstützung
von Communities“ aufgearbeitet und ein neues Architekturkonzept für zukünftige Generationen von
Community-Unterstützungssystemen hergeleitet und ausgeführt.
Wörtlich bedeutet der Begriff „Community“ Gemeinschaft. Dies kann geographisch interpretiert
werden als eine Gruppe von Menschen, die in derselben Region oder am selben Ort leben, oder
sich auf Menschen beziehen, die gemeinsame Interessen haben oder an einer gemeinsamen Aufgabe
arbeiten.
Online-Medien und Web-Plattformen können solche Communities unterstützen oder auch rein virtuelle Communities erst ermöglichen. Dabei unterstützen die Systeme im wesentlichen den Informationsfluss zwischen den Community-Mitgliedern und das Zueinanderfinden der Mitglieder.
Eine wichtige Forderung an Community-Unterstützungssysteme ist Interoperabilitität zwischen verschiedenen Instanzen der Systeme. Diese Interoperabilität wird von heutigen Systemen aber nur
selten bereitgestellt:
Benutzer müssen sich explizit bei verschiedenen Community-Unterstützungssystemen registrieren und ihre Profilinformationen wie z.B. demographische Inforrmationen und Informationen zu den Interessen immer wieder aufs neue angeben.
Es gibt keine Möglichkeit für Community-Plattformen, untereinander Information auszutauschen, bzw. für Benutzer, neue Information automatisch an verschiedene Community-Plattformen zu verteilen und Information automatisch bei verschiedenen Community-Plattformen
abzufragen.
Das in dieser Arbeit motivierte Architekturkonzept liefert mehrere Lösungsbeiträge für die Forderung
nach Interoperabilität. Erstens wird eine Lösung für die anwendungsübergreifende Nutzung von
Benutzerprofilen erarbeitet und zweitens ein Modularisierungskonzept für Community-Unterstützungssysteme vorgestellt, welches sowohl den Aufbau neuer Plattformen unterstützt als auch eine
plattformübergreifende Nutzung von Daten und Diensten erlaubt.
Die Arbeit stellt eine aktualisierte Fassung meiner Habilitationsschrift von Februar 2003 dar und steht
im Kontext meiner langjährigen Beschäftigung mit Groupware und Community-Unterstützungssystemen
(Communityware) an der Technischen Universität München und am Xerox Research Centre Europe
(XRCE) in Grenoble. In die Konzepte sind Erfahrungen aus der Entwicklung und der Einführung
verschiedener konkreter Systeme und Plattformen, insbesondere des Cobricks-Systems (siehe hierzu
http://www.cobricks.de/) eingeflossen.
Danken möchte ich an dieser Stelle vor allem meinen Kollegen an der Technischen Universität München und am Xerox Research Centre Europe für die fruchtbare Zusammenarbeit in den letzten Jahren.
iii
Besonders nennen möchte ich dabei Herrn Wolfgang Wörndl, mit dem ich an Aspekten des Identitätsmanagements und der Privatheit gearbeitet habe, sowie Herrn Georg Groh und Herrn Michael
Galla, die die Hauptlast der Entwicklungen in den Projekten „Community Online Services and Mobile Solutions“ (Cosmos) und „Telekooperation in Beziehungsnetzwerken für informationsbezogene
Dienstleistungen“ (TiBiD) getragen haben und dabei einen entscheidenden Beitrag zur Konkretisierung des Architekturkonzeptes geleistet haben. Mein Dank gilt natürlich auch Herrn Prof. Dr. Johann
Schlichter, der mir ermöglicht hat, in seiner Gruppe an der Technischen Universität München sehr
frei an den Themen der Community-Unterstützung zu arbeiten und mir dabei immer mit Rat und Tat
zur Seite stand.
iv
Inhaltsverzeichnis
1 Einleitung
1
1.1
Einführung und Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1.2
Communities und Community-Unterstützung . . . . . . . . . . . . . . . . . . . . .
2
1.2.1
Communities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
1.2.2
Community-Unterstützung . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
1.3
Problembeschreibung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
1.4
Zielsetzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
1.5
Verwandte Themenbereiche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
1.6
Aufbau der Arbeit und Einordnung der eigenen Veröffentlichungen . . . . . . . . . .
7
2 Community-Unterstützung
2.1
13
Community aus unterschiedlichen Perspektiven . . . . . . . . . . . . . . . . . . . .
13
2.1.1
Gemeinschaften in der Soziologie . . . . . . . . . . . . . . . . . . . . . . .
14
2.1.2
Gemeinschaften aus technischer Sicht . . . . . . . . . . . . . . . . . . . . .
19
2.1.3
Kategorisierungen zu Communities . . . . . . . . . . . . . . . . . . . . . .
19
2.1.4
Zusammenfassung und Konsolidierung . . . . . . . . . . . . . . . . . . . .
21
2.2
Virtuelle Communities (Online-Communities) . . . . . . . . . . . . . . . . . . . . .
21
2.3
Community-Unterstützungssysteme . . . . . . . . . . . . . . . . . . . . . . . . . .
23
2.3.1
Historie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
2.3.2
Anwendungsklassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
2.3.3
Abgrenzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
2.3.4
Community-Frameworks . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
Anforderungen an Community-Unterstützungssysteme . . . . . . . . . . . . . . . .
29
2.4.1
Anforderungsschwerpunkte . . . . . . . . . . . . . . . . . . . . . . . . . .
29
2.4.2
Unterstützungsfunktionalitäten . . . . . . . . . . . . . . . . . . . . . . . . .
31
2.4
3 Modularisierung von Community-Unterstützungssystemen
3.1
33
Grundkonzepte der Modularisierung . . . . . . . . . . . . . . . . . . . . . . . . . .
34
3.1.1
Entwurfsmuster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
3.1.2
Verteilte Anwendungen und Komponenten . . . . . . . . . . . . . . . . . .
37
v
Inhaltsverzeichnis
3.1.3
3.2
3.3
3.4
Agenten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Datenkonzepte
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
40
3.2.1
Wissensrepräsentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41
3.2.2
Benutzerbeiträge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
45
3.2.3
Domäneninformation - Kategorisierung . . . . . . . . . . . . . . . . . . . .
50
3.2.4
Benutzerdaten
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
51
3.2.5
Nutzung von Ontologien und Kontext-Information . . . . . . . . . . . . . .
53
3.2.6
Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
54
Community-Dienste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
54
3.3.1
Komponenten und Funktionalitäten . . . . . . . . . . . . . . . . . . . . . .
55
3.3.2
Benutzerprofilverwaltung
. . . . . . . . . . . . . . . . . . . . . . . . . . .
57
3.3.3
Inhalteverwaltung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
58
3.3.4
Kategorien und Benutzerlisten . . . . . . . . . . . . . . . . . . . . . . . . .
59
3.3.5
Kontexte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
60
3.3.6
Mitteilungsmanagement . . . . . . . . . . . . . . . . . . . . . . . . . . . .
60
3.3.7
Awareness und Matchmaking . . . . . . . . . . . . . . . . . . . . . . . . .
61
3.3.8
Personalisierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
63
Konfigurierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
64
4 Benutzerprofile und Benutzerprofilspeicherung
4.1
4.2
4.3
4.4
vi
38
69
Struktur und Nutzung von Benutzerprofilen . . . . . . . . . . . . . . . . . . . . . .
70
4.1.1
Erhebung der Daten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
70
4.1.2
Nutzung von Profilen - Personalisierung . . . . . . . . . . . . . . . . . . . .
72
4.1.3
Präsentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
73
Benutzerprofilspeicherung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
73
4.2.1
Anwendungsunabhängige Profilspeicherung . . . . . . . . . . . . . . . . . .
73
4.2.2
Infomediaries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
74
4.2.3
Server-basierte Benutzerprofildatenbanken . . . . . . . . . . . . . . . . . .
75
4.2.4
Liberty Alliance Projekt . . . . . . . . . . . . . . . . . . . . . . . . . . . .
75
4.2.5
Benutzerprofil-Austausch
. . . . . . . . . . . . . . . . . . . . . . . . . . .
76
4.2.6
IDRepository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
76
Modellierung von Benutzerprofilen . . . . . . . . . . . . . . . . . . . . . . . . . . .
77
4.3.1
Standardisierungsbestrebungen . . . . . . . . . . . . . . . . . . . . . . . . .
78
4.3.2
Profil-Metamodell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
83
4.3.3
Profilmodell
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
84
Privatheit und Zugriffskontrolle . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
88
4.4.1
Zugriffskontrolle in einer Plattform . . . . . . . . . . . . . . . . . . . . . .
89
4.4.2
Zugriffskontrolle zwischen Plattformen . . . . . . . . . . . . . . . . . . . .
91
4.4.3
Transparenz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
92
Inhaltsverzeichnis
5 Prototypsysteme und erste Erfahrungen
95
5.1
IDRepository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
96
5.2
Informationsdrehscheibe(n) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
97
5.3
CommunityItemsTool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
99
5.4
UnternehmerTUM - TUMmelplatz . . . . . . . . . . . . . . . . . . . . . . . . . . .
99
5.5
Studiosity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
5.6
Produktkonfigurations-Community . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
5.7
Austausch von Inhalten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
6 Zusammenfassung und Ausblick
105
6.1
Zusammenfassung
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
6.2
Datenmodellierung und Semantic Web . . . . . . . . . . . . . . . . . . . . . . . . . 106
6.3
Web-Services und Benutzeragenten
6.4
Kategorisierung und Unter-Communities . . . . . . . . . . . . . . . . . . . . . . . . 107
6.5
Mobile Communities und ubiquitäre Benutzungsschnittstellen . . . . . . . . . . . . 107
. . . . . . . . . . . . . . . . . . . . . . . . . . 106
Literaturverzeichnis
109
Index
119
vii
Inhaltsverzeichnis
viii
Kapitel 1
Einleitung
„Das globale Dorf wird wohl wahr, aber anders, als man sich das einmal
vorgestellt hatte. Es wird nicht die Welt zu einem einzigen großen Dorf,
sondern die ganze Informationsgesellschaft splittert sich auf in lauter kleine
Dörfer, deren Bewohner über die ganze Welt verstreut sind: statt des einen
globalen Dorfs viele global verteilte Dörfer.“,
(Zimmer 2000, S.40)
Kapitelinhalt
1.1
1.2
1.3
1.4
1.5
1.6
1.1
Einführung und Überblick . . . . . . . . . . . . . . . . . . . . . . .
Communities und Community-Unterstützung . . . . . . . . . . . .
Problembeschreibung . . . . . . . . . . . . . . . . . . . . . . . . . .
Zielsetzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Verwandte Themenbereiche . . . . . . . . . . . . . . . . . . . . . .
Aufbau der Arbeit und Einordnung der eigenen Veröffentlichungen
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
2
4
4
5
7
Einführung und Überblick
Eines der wichtigsten Merkmale des Menschen ist sein Bestreben nach Kommunikation mit anderen Menschen, insbesondere mit Gleichgesinnten. Vor diesem Hintergrund kann auch der aktuelle
Internetboom nicht weiter überraschen, denn das Medium Internet bietet fast grenzenlose Kommunikationsmöglichkeiten.
So hat sich das Internet in den letzten Jahren von einem „kleinen“ Netz für Computerspezialisten
zu einem Netz für jedermann gewandelt. Dies belegen unter anderem die weltweit immer schneller
steigende Benutzeranzahl (2 Mio. 1993, 27 Mio. 1996, 50 Mio. 1997, 150 Mio. 2000, 250 Mio. 2002
– je nach Quelle variieren diese Zahlen aufgrund von Problemen bei der Erhebung stark). Ähnlich
verläuft die Entwicklung bei den Dienstangeboten. Gründe für diesen Boom sind unter anderem
der konkrete Kommunikationsnutzen, die massiven Marketingkampagnen der Internet Service Provider (wie z.B. AOL und T-Online) und netzbezogenen Dienstleister (wie z.B. IBM), die staatlichen
Förderungen (wie z.B. die Bürgernetzförderung oder die Vernetzung von Schulen), die zunehmende
Verbreitung moderner Kommunikations- und Computertechnik in Firmen sowie Privathaushalten und
die steigende Benutzerfreundlichkeit der benötigten Zugangssoftware.
Mit der Änderung des Profils der Benutzer weg vom Computer-Spezialisten hin zum Normalbürger
hat sich auch das Angebotsprofil im Internet, insbesondere im heute wichtigsten Bestandteil, dem
1
1 Einleitung
World-Wide-Web, entscheidend geändert. Statt purer wissenschaftlicher Informationen dominieren
heute Kommunikations-, Unterhaltungs- und Verkaufsangebote das World-Wide-Web.
Nachdem immer mehr Benutzer und immer mehr Dienste im Internet verfügbar werden, beginnen
Computer und Netze, eine Art soziale Umgebung zu bilden, in der Menschen sich selbst darstellen,
sich mit anderen treffen, Informationen austauschen, Geschäfte machen, gemeinsam auf Informationssuche gehen können. Computernetze werden „bevölkert“ und „bewohnt“, von Menschen und
ihren Software-Agenten. Sie bilden eine neue Art von Lebensraum. Wie der reale Lebensraum werden Infrastruktur und Dienste gebraucht, Orientierungsmittel, Mittel andere Personen zu finden, seine
Privatsphäre zu schützen (Hoschka u. a. 2001).
Diese Infrastruktur stellen momentan einerseits allgemeine Kommunikationsdienste wie E-Mail dar,
und auf der anderen Seite sogenannte Community-Plattformen (oder Online-Communities). Die ersten dieser Online-Communities entstanden in den USA, meist ohne reales Pendant. Es gibt aber
auch einige teilweise oder komplett mit real existierenden Gemeinschaften identische virtuelle Gemeinschaften bzw. Unterstützungs-Plattformen für reale Gemeinschaften, wie z.B. die oft als Urvater
bezeichnete virtuelle Gemeinschaft „The Well“ 1 (gegründet 1986 durch die Point Foundation). Diese
Gemeinschaft hat heute über zehntausend aktive Mitglieder, obwohl sie sich über einen monatlichen
Mitgliedsbeitrag finanziert.
1.2
Communities und Community-Unterstützung
Hintergrund von Community-Plattformen oder Online-Communities ist die Bereitstellung einer Kommunikationsmöglichkeit für eine durch einen Kontext definierte Menge von Personen. Der gemeinsame Kontext ermöglicht die effiziente Nutzung der Kommunikationsmedien zum Informationsaustausch und zum Finden von Gleichgesinnten oder Experten in einem bestimmten Gebiet.
Eine solche Gruppe von Personen, die sich durch einen gemeinsamen Kontext auszeichnen, bezeichnet man im Rückgriff auf Begriffe der Soziologie üblicherweise als Gemeinschaft oder Community 2 .
1.2.1
Communities
Communities sind also Gruppen von Personen mit einem gemeinsamen Kontext. Weiterhin wird
meist noch eine Kommunikationsmöglichkeit (Kommunikationskanal) und der Wille oder das Bewußtsein zur Mitgliedschaft (freiwillige Zugehörigkeit) sowie eine Kooperation der Community-Mitglieder gefordert. Eine detailliertere Auseinandersetzung mit dem Begriff der Community findet sich
in Kapitel 2 dieser Arbeit.
Bei Communities handelt es sich um keine neue Erfindung aus dem Bereich der Anwendungen vernetzter Rechner. Das Konzept ist untrennbar mit der Kommunikation und Zusammenarbeit zwischen
Menschen verbunden. Dabei wurden bisher meist durch räumliche Nähe definierte Communities
betrachtet, z.B. Dorfgemeinschaften oder Nachbarschafts-Communities, oder durch gemeinsame Interessen und Ziele definierte Communities wie Jagdgemeinschaften oder Sportvereine.
Der Nutzen von Communities für ihre Mitglieder war und ist seit jeher die gegenseitige Hilfe und die
gemeinsame Nutzung von Ressourcen. Das Community-Mitglied ist nicht mehr auf sein eigenes Wis1
2
2
Well: Whole Earth (e)Lectronic Link, siehe http://www.well.com/ oder (Hafner 2001)
Ich bleibe in der weiteren Arbeit hauptsächlich bei dem englischen Begriff „Community“, der sich in der einschlägigen
Literatur durchgesetzt hat.
1.2 Communities und Community-Unterstützung
sen und seine eigenen Fähigkeiten beschränkt, sondern kann auf den Erfahrungs- und Wissensschatz
der gesamten Gemeinschaft zur Erreichung seiner Ziele zurückgreifen. Der Wert von Communities
liegt dabei nur teilweise in der Information, die von den Mitgliedern zusammengetragen wird, sondern mehr in den Mitgliedern selbst, die für die Beantwortung von Fragen erreicht werden können.
1.2.2
Community-Unterstützung
Klassische Gemeinschaften finden Unterstützung für ihre Aufgaben des Informationstransfers und
Findens von Kommunikations- oder Kooperationspartnern (Matchmaking) in regelmäßigen Treffen,
Zeitschriften oder Schwarzen Brettern und Club-Räumen. Mit Online-Medien und Web-Plattformen
können nun auch Gemeinschaften über räumliche Entfernungen hinweg unterstützt werden. Damit
wird der Wirkungsbereich einer Gemeinschaft erhöht oder manche Gemeinschaften gar erst ermöglicht (z.B. wenn zu wenig potentielle Community-Mitglieder in erreichbarer Nähe leben).
Unter Community-Unterstützungssystemen versteht man Software mit Funktionen zur Unterstützung
des Informationsflusses zwischen den Community-Mitgliedern und des Zueinanderfindens der Mitglieder. Heute handelt es sich dabei meist um Web-basierte Software. Die Software wird in Form
von einzelnen Web-Plattformen betrieben. Diese stellen Kommunikations- und Koordinationsdienste bereit und verarbeiten zur Personalisierung dieser Dienste und zur Präsentation des Benutzers
gegenüber anderen Community-Mitgliedern Benutzerprofile.
Die Nutzung solcher Community-Plattformen sollte so einfach sein wie die „Nutzung“ klassischer
Community-Unterstützungswerkzeuge. Insbesondere sollte das für das Wechseln zwischen Community-Plattformen gelten. In der Realität finden sich hier aber meist proprietäre, voneinander isolierte
Lösungen, die häufig nicht einmal die Grundbedürfnisse der Interaktion in Communities berücksichtigen.
Community-Unterstützungssysteme und -Plattformen
Im Zusammenhang mit Community-Unterstützung werden teilweise verschiedene Begriffe synonym
und gleiche Begriffe mit unterschiedlicher Bedeutung benutzt. An dieser Stelle sollen deshalb die im
weiteren zu verwendenden Begriffe für diese Arbeit genauer spezifiziert werden.
Unter einer Community-Plattform verstehe ich dabei keine allgemeine Systemplattform wie einen
Desktop-PC, sondern im Sinne Verteilter Anwendungen eine konkrete Instanz einer Netz-basierten
Unterstützungssoftware, die meist als Client-Server-System realisiert ist und von den Mitgliedern
einer Community zur Kommunikation untereinander benutzt werden kann. Client-Rechner und die
Client-Software werden nicht mit zur Plattform gezählt. Eine Ausnahme hiervon gibt es nur, falls zur
Benutzung der Anwendung proprietäre Client-Software oder Hardware eingesetzt wird.
Unter einem Community-Unterstützungssystem verstehe ich ein bestimmtes Softwareprodukt mit
Funktionalitäten zur Unterstützung von Communities. Wird die Software für eine bestimmte Community oder für eine bestimmte Gruppe von Communities betrieben, dann entsteht dabei eine Community-Plattform als Instanz des Community-Unterstützungssystems.
Die drei Kernbegriffe definieren sich also folgendermaßen:
Community: Gruppe von Personen mit gemeinsamem Kontext (siehe hierzu auch Abschnitt
1.2.1 und Kapitel 2)
3
1 Einleitung
Community-Unterstützungssystem: Software, die zur Unterstützung (oder Ermöglichung) von
Communities eingesetzt werden kann.
Community-Plattform: Instanz eines Community-Unterstützungssystems, d.h. ein CommunityUnterstützungssystem, das für eine bestimmte Community betrieben wird. Bei proprietärer Benutzungsschnittstelle schließt der Plattform-Begriff dabei die Client-seitige Soft- und Hardware
mit ein.
Online-Community: Gruppe von Personen, die (ausschließlich) über eine (Web-basierte) Community-Plattform interagieren; wird oft auch als Synonym für die (Web-basierte) CommunityPlattform benutzt (siehe hierzu auch Abschnitt 2.2).
1.3
Problembeschreibung
Eine wichtige Forderung für den Einsatz von Community-Unterstützungssystemen ist die Interoperabilität zwischen verschiedenen Instanzen der Systeme (also den Plattformen) sowie zwischen verschiedenen Systemen selbst. Diese Interoperabilität wird von heutigen Systemen und Plattformen
aber nur selten bereitgestellt:
Benutzer müssen sich explizit auf verschiedenen Community-Plattformen registrieren und ihre
Profilinformationen wie z.B. demographische Informationen und Interessen immer wieder neu
angeben.
Es gibt keine Möglichkeit für Community-Plattformen, Information untereinander auszutauschen, bzw. für Benutzer, neue Information automatisch an verschiedene Communities zu verteilen und Information automatisch bei verschiedenen Communities abzufragen.
Die Isolation der Plattformen voneinander ist insbesondere deshalb problematisch, da Menschen seit
jeher Mitglied in mehr als einer Community sind. Verschiedene soziologische Muster beruhen gar
auf der gleichzeitigen Mitgliedschaft von Menschen in verschiedenen Communities (siehe auch Abschnitt 2.1.1, S.17). Wenn durch proprietäre Plattformen der Austausch zwischen Communities und
der Wiedereinstieg von „Community-Pendlern“ in eine Community erschwert wird, dann ist dadurch
der Nutzen solcher Unterstützungssoftware in Frage gestellt.
Neben der Lösung des konkreten Interoperabilitätsproblems besteht weiterhin Bedarf an einer grundlegenden Betrachtung des Anwendungsbereichs „Community-Unterstützung“. Bestehende Plattformen nähern sich dieser Aufgabe meist zu sehr von aus anderen Bereichen stammenden Konzepten.
So wird häufig eine Community „um einen Online-Shop herum“ gebaut oder als Ergänzung zu einer
Web-Site eingeführt. Auch wenn solche Konzepte hin und wieder erfolgreich sind, nutzen sie das
eigentliche Potential von Community-Unterstützung kaum aus.
1.4
Zielsetzung
Entsprechend der im vorherigen Abschnitt beschriebenen Probleme im Kontext von CommunityUnterstützung war das Ziel meiner Forschungstätigkeit zunächst, den Bereich Community-Unterstützung mit Motivation und Triebkräften näher zu beleuchten und die Charakteristika von Community-Unterstützungssystemen herauszuarbeiten.
4
1.5 Verwandte Themenbereiche
Im zweiten Schritt sollten dann Lösungen für das Problem der Interoperabilität entwickelt werden
und die Lösungsideen in der Praxis erprobt werden. Konkret soll eine Architektur und Komponenten
für ein modulares Community-Unterstützungssystem konzipiert werden. Den Begriff Architektur definiere ich nach (Buschmann u. a. 1996, S.384) als „a description of the subsystems and components
of a software system and the relationships between them“. Als Teilthema sollte dabei insbesondere
auf die gemeinsame Nutzung von Benutzerprofilinformation und die Definition von anwendungsübergreifenden Benutzerprofilmodellen eingegangen werden.
1.5
Verwandte Themenbereiche
Das Thema „Community-Unterstützung“ steht nicht isoliert im Spektrum der Angewandten Informatik. Die engsten Verbindungen und Überschneidungen gibt es mit den Themenbereichen Wissensmanagement und Rechnergestützte Gruppenarbeit.
Wissensmanagement
Während sich aktuelle Arbeiten im Bereich Wissensmanagement hauptsächlich mit der Externalisierung von Wissen und der Erschließung des Zugriffs auf externalisiertes Wissen beschäftigt (Borghoff
und Pareschi 1998a), geht der Bereich Community-Unterstützung das selbe Thema von Seiten der
Benutzer her an. Hier liegt der Hauptaugenmerk auf dem Zusammenbringen von Menschen zum
direkten Wissensaustausch. Dabei werden aber auch semi-strukturierte Daten von Benutzern erfasst
und durchsuchbar gemacht. Im Unterschied zum puren Wissensmanagement sieht man hier aber
hauptsächlich „warme“ Information, d.h. Information, die mit Personen verbunden ist, z.B. ein (subjektiver) Kommentar zu einem Objekt.
Rechnergestützte Gruppenarbeit, CSCW
Der Bereich Rechnergestützte Gruppenarbeit (Computer-Supported Cooperative Work, CSCW) beschäftigt sich hauptsächlich mit der Unterstützung von Arbeitsgruppen (Borghoff und Pareschi 1998b;
Borghoff und Schlichter 2000). Darunter versteht man Gruppen von Personen, die an einer gemeinsamen (Teil-)Aufgabe arbeiten. Im Unterschied zu Communities kennen sich die Mitglieder dieser
Gruppen meist sehr gut, interagieren häufig miteinander, und die Hauptherausforderung besteht nicht
im Finden von Personen oder in der Weitergabe von Information an Interessierte, sondern in der
Koordination auf gemeinsamen Artefakten.
Auch das Thema der Modularisierung und Interoperabilität ist in der Informatik nicht komplett neu.
Hier gibt es bereits einige Arbeiten in den Bereichen Software-Engineering, Software-Frameworks,
Anwendungsintegration und Agenten.
Software-Engineering, Modulare Programmierung
Schon seit den 1960er Jahren beschäftigt sich die Informatik unter dem Begriff „Software Engineering“ mit der ingenieurmäßigen Erstellung von Software. Dabei waren auch die Aufteilung von
Softwarepaketen in (wiederverwendbare) Module oder Komponenten und die klare Definition von
Schnittstellen zwischen diesen Komponenten ein wichtiges Thema.
5
1 Einleitung
Einige Erkenntnisse dieses Forschungsgebietes werden in Kapitel 3 aufgegriffen um die Grundlagen
für die Definition einer generischen Community-Unterstützungsarchitektur zu legen.
Software-Frameworks, Entwurfsmuster
Das Thema der Modularisierung wurde in Richtung Software-Frameworks weiterentwickelt. Darunter versteht man Sammlungen von Basisklassen, die Ablauflogik enthalten und einfach durch Spezialisierung von Klassen oder durch Erweiterung auf definierten Schnittstellen auf eine bestimmte
Anwendung hin spezialisiert werden können. In diesem Zusammenhang ist auch das Thema „Anpassbarkeit“ zu nennen. Hier geht es um die einfache Adaptierung von Software.
Während Software-Frameworks eine technische Lösung für generalisierte Software bieten, widmen
sich Entwurfsmuster (Design-Patterns) demselben Problem von der konzeptionellen, designerischen
Seite. Sie stellen Muster für Software-Design dar.
In Kapitel 3 wird näher auf Aspekte von Software-Frameworks und Entwurfsmuster eingegangen, die
im hier behandelten Kontext eine Rolle spielen.
Anwendungsintegration
In der Wirtschaftsinformatik gibt es einen Arbeitsbereich namens „Anwendungssystem-Integration
(application integration)“, welcher sich mit der Verknüpfung heterogener Informationssysteme beschäftigt (Mantel und Schlissler 2002).
Eines der größten Probleme bei der Anwendungssystem-Integration ist dabei die Bewältigung der
fachlichen Heterogenität. Hierfür werden standardisierte XML-Geschäftsvokabulare und Geschäftsprozessstandards betrachtet. Mit ebXML, RosettaNet und OASIS sind hier bereits vielversprechende
Standardisierungsbemühungen zu finden.
Weiterhin werden im Zusammenhang mit der Anwendungssystem-Integration verschiedene neue
Technologien aus den Verteilten Anwendungen (z.B. Web-Services) aufgegriffen.
Die in Kapitel 3 dokumentierte Erarbeitung von allgemeinen Datenkonzepten und Schnittstellen geht
auch auf diese Arbeiten näher ein.
Agenten
Dem Problem der Definition möglichst flexibler Schnittstellen widmen sich die Aktivitäten im Bereich der Software-Agenten. Hier wurde das Paradigma für die Kapselung von Funktionalität (klassische Modularisierung) um die Kapselung von Absichten und Wissen erweitert und eine Kommunikationsschnittstelle mit höherer Semantik spezifiziert.
Die Datenmodellierungskonzepte, die in Kapitel 3 vorgestellt werden, sind den Schnittstellen- und
Datenmodellierungskonzepten aus dem Agentenumfeld angelehnt. Dazu wird das Thema (Software-)
Agenten in Abschnitt 3.1.3 näher diskutiert.
Künstliche Intelligenz
Agenten sind aus dem großen Bereich der Künstlichen Intelligenz hervorgegangen. Hier sind vor
allem Bestrebungen zur Kodierung von Wissen und von Absichten oder Plänen zu erwähnen, die
6
1.6 Aufbau der Arbeit und Einordnung der eigenen Veröffentlichungen
auch bei der Definition von offenen Schnittstellen zwischen Komponenten eines Community-Unterstützungssystems eine Rolle spielen werden.
1.6
Aufbau der Arbeit und Einordnung der eigenen
Veröffentlichungen
Zur Erreichung der im Abschnitt 1.4 angesprochenen Ziele habe ich mich in meiner Forschungstätigkeit mit folgenden Aufgaben beschäftigt (siehe auch Abschnitt 2.4 für eine ausführliche Motivation
der verschiedenen Anforderungen an Community-Unterstützungssysteme und eine Strukturierung der
dazu notwendigen Arbeiten):
Definition von Community-Unterstützung und Herleitung der Anforderungen an CommunityUnterstützungssysteme,
Modularisierung von Community-Unterstützungssystemen,
Interoperabilität zwischen Community-Unterstützungssystemen (d.h. der Fähigkeit heterogener Systeme gemeinsam Daten zu nutzen bzw. Daten auszutauschen),
im Zusammenhang mit Interoperabilität speziell die gemeinsame Nutzung von Benutzerprofilen durch mehrere Anwendungen und die Möglichkeiten der Benutzerkontrolle und Privatheit
in diesem Kontext,
Personalisierung oder allgemein Kontextanpassung von Inhalten und (Kommunikations-)Funktionalitäten und
mobilen oder nicht-Standard-Benutzungsschnittstellen für Community-Unterstützungssysteme.
Meine ausführlichen Arbeiten hierzu sind in verschiedenen Veröffentlichungen dokumentiert (siehe
das kommentierte Publikationsverzeichnis weiter unten in diesem Abschnitt). Ziel dieser zusammenfassenden Darstellung der Forschungstätigkeiten ist es, die wichtigsten Teilbereiche der auf die
verschiedenen Veröffentlichungen verteilten Arbeiten an einer Stelle zusammenzufassen und dabei
noch etwas weiterzuentwickeln.
Nach dieser Einleitung fasse ich in Kapitel 2 dazu zuerst Grundbetrachtungen zu Communities und
Community-Unterstützung zusammen und stelle die in meiner Arbeit abgeleiteten allgemeinen Funktionalitäten von Community-Unterstützungssystemen dar.
Anschließend gehe ich in Kapitel 3 auf die bei meiner Beschäftigung mit Community-Unterstützung
erarbeitete Architektur für Community-Unterstützungssysteme ein. Aus den in Kapitel 2 motivierten
Anforderungen werden Datenstrukturen und Dienstschnittstellen herausgearbeitet und detailliert.
In Kapitel 4 gehe ich speziell auf den Austausch und zur gemeinsamen Nutzung von Benutzerprofilen
ein. Hier diskutiere ich die erarbeitete Lösung, das IDRepository, und gebe einen Überblick über die
verschiedenen Design- und Technologie-Aspekte, die hierbei eine Rolle spielen.
Zur Konkretisierung und Evaluierung der Konzepte wurden einige Community-Unterstützungsplattformen aufgebaut und begleitet. In Kapitel 5 werden die wichtigsten dieser Plattformen kurz vorgestellt und auf spezielle Erkenntnisse eingegangen, die an den jeweiligen Beispielen herausgearbeitet
werden konnten.
7
1 Einleitung
Die Arbeit schließt mit einer kurzen Zusammenfassung und einem Ausblick in Kapitel 6.
Nachfolgend sind die Hauptarbeiten ((Koch und Wörndl 2001), (Koch 2002b), (Koch 2002c), (Koch
2002e), (Koch 2002f), (Koch u. a. 2002a), (Koch und Möslein 2003) und (Koch 2003a)) und alle
anderen Veröffentlichungen, die im Kontext dieses Arbeitsgebietes stehen, aufgelistet. Um sie in den
Forschungskontext zu stellen, werden die einzelnen Veröffentlichungen nach den Bereichen sortiert
präsentiert, zu denen sie jeweils ihren Hauptbeitrag liefern.
Funktionalitäten und Architektur allgemein
Die Erarbeitung und Darstellung der allgemeinen Charakteristika von Community-Unterstützungssystemen und die daraus abgeleitete Architektur für diese Systeme stellt den Kern dieser Arbeit
dar. Bei der Architektur wird insbesondere auf den Aspekt der Agenten-basierten Modellierung von
Community-Unterstützungssystemen und auf die spezielle Bedeutung der anwendungsübergreifenden Benutzerprofilverwaltung eingegangen. Weitere Aspekte, die in Zusammenhang mit der Architektur angesprochen werden, sind der komponentenbasierte Aufbau von Kooperationsdiensten und
die Anpassbarkeit von solchen Anwendungen. Die Architektur wurde im Projekt Cobricks (Community Bricks - Bausteine zum Aufbau von Community-Unterstützungssystemen) und seinen Unterprojekten wie Caiman und Pace3 implementiert und zur Realisierung verschiedener Prototypplattformen
eingesetzt.
Die Hauptarbeiten zu Charakteristika von Community-Unterstützungssystemen und zur Architektur
sind in (Koch 2002b), (Koch 2002e), (Koch 2002f), (Koch u. a. 2002a) und (Borghoff u. a. 2001)
dokumentiert. Neben ihrem Beitrag zur Definition der Anforderungen an Community-Unterstützung
(Kapitel 2) stellen all diese Arbeiten das Fundament für Kapitel 3 dieser Arbeit dar. Dort findet sich
neben einer ausführlichen Zusammenfassung auch eine Ergänzung dieser Arbeiten. Weitere wichtige Beiträge finden sich in Veröffentlichungen zu Anwendungen der Basisarchitektur in konkreten
Plattformen. Diese sind im entsprechenden Abschnitt weiter unten aufgeführt.
(Koch 2002b) Michael Koch: An Architecture for Community Support Platforms - Modularization
and Integration. Proc. 6th Intl. Conf. on Work With Display Units - World Wide Work (WWDU2002),
H. Luczak, A. E. Cakir, G. Cakir (Hrsg.), Berchtesgaden, Mai 2002, S.533-535.
In diesem Artikel werden die generischen Community-Dienste der Cobricks-Plattform vorgestellt und
verschiedene Herausforderungen der Interoperabilität diskutiert.
(Koch 2002e) Michael Koch: Interoperable Community Platforms and Identity Management in the
University Domain. International Journal on Media Management, 4(1), Jun. 2002, S.21-30.
Dieser Artikel diskutiert die Anwendung von Community-Plattformen im Universitätsumfeld. Aus den
Spezifika des Umfeldes werden verschiedene Anforderungen an die Interoperabilität von CommunityPlattformen abgeleitet und Lösungen zu Herstellung der Interoperabilität vorgestellt. Weiterhin werden
die ersten Ergebnisse des Einsatzes der Prototypplattformen aus dem Universitätsumfeld vorgestellt.
(Koch 2002f) Michael Koch: Requirements for Community Support Systems - Modularization, Integration and Ubiquitous User Interfaces. Journal of Behaviour and Information Technology, 21(5), 2002,
S.327-332.
Eine Weiterentwicklung von (Koch 2002b) - Es werden allgemeine Anforderungen an CommunityUnterstützungssysteme erarbeitet und die Cobricks-Architektur als Lösung für einen Teil der Anforderungen vorgestellt.
3
8
Siehe hierzu die Cobricks-Projektseiten unter http://www.cobricks.de/cobricks/.
1.6 Aufbau der Arbeit und Einordnung der eigenen Veröffentlichungen
(Koch u. a. 2002a) Michael Koch, Georg Groh, Christian Hillebrand, Natalie Fremuth: Mobile Support
for Lifestyle Communities. Arbeitspapier Nr. 34 des Lehrstuhls für Allg. und Ind. Betriebswirtschaftslehre (AIB), Technische Universität München, ISSN 0942-5098, Nov. 2002.
Dieser Bericht motiviert die Architektur und die Funktionalitäten der Plattform für die Unterstützung
mobiler Communities im Projekt Cosmos.
(Borghoff u. a. 2001) Uwe M. Borghoff, Michael Koch, Martin S. Lacher, Johann H. Schlichter, Knut
Weißer: Informationsmanagement und Communities - Überblick und Darstellung zweier Projekte der
IMC-Gruppe München. Informatik Forschung und Entwicklung, 16(2), Jul. 2001, S.103-109.
Dieser Beitrag beschreibt die zusammen mit der Bundeswehruniversität München (in der IMC Gruppe)
erarbeitete Agenten-basierte Architektur für Community-Unterstützungssysteme.
(Koch 2001a) Michael Koch: Community-Support-Systeme. In: CSCW-Kompendium, G. Schwabe, N.
Streitz, R. Unland (Hrsg.), Springer Verlag, Berlin, 2001, S.286-296.
In diesem Buchbeitrag werden allgemeine Unterstützungsfunktionen für Communities dargestellt.
(Lacher u. a. 2001) Martin S. Lacher, Michael Koch, Wolfgang Wörndl: A Framework for Personalizable Community Web Portals. Proc. Human-Computer Interaction International, New Orleans, LA, Aug.
2001.
Dieser Beitrag beschreibt ein System zur Personalisierung der Web-Benutzungsschnittstelle von Community-Portalen.
(Koch 2000) Michael Koch: Cobricks - Eine agentenbasierte Infrastruktur für Community-Anwendungen.
Proc. Deutsche Computer-Supported Cooperative Work Konferenz (D-CSCW 2000), R. Reichwald, J.
Schlichter (Hrsg.), München, Sep. 2000, Teubner Verlag, Stuttgart, S.265-266.
Dieser Artikel diskutiert erste Ideen zur Cobricks-Plattform.
(Koch und Lacher 2000) Michael Koch, Martin S. Lacher: Integrating Community Services - A Common Infrastructure Proposal. Proc. Knowledge-Based Intelligent Engineering Systems and Allied Technologies, Brighton, UK, Aug. 2000, S.56-59.
Dieser Beitrag beschreibt erste Ansätze zur allgemeinen Architektur für Community-Unterstützungssysteme. Dabei wird noch der streng agentenbasierte Ansatz verfolgt, der später fallengelassen worden
ist.
(Lacher und Koch 2000) Martin S. Lacher, Michael Koch: An Agent-based Knowledge Management
Framework. Proc. AAAI Spring Symposium 2000, Stanford, CA, März 2000, S.145-147.
Dieser Beitrag stellt eine agentenbasierte Community-Unterstützungsarchitektur vor, die hauptsächlich
auf die Anwendung für Wissensmanagement-Plattformen ausgerichtet ist. Viele Grundkonzepte dieser
Architektur sind eng mit der Cobricks-Architektur verwandt.
(Lacher u. a. 2000) Martin S. Lacher, Wolfgang, Wörndl, Michael Koch, Harald Brede: Ontology mapping in community support systems. Technischer Bericht, Fakultät für Informatik, Technische Universität München, Mai 2000.
Dieser Beitrag stellt eine Lösung zur Abbildung verschiedener Inhalts-Kategorisierungen in CommunityUnterstützungssystemen vor.
(Koch und Teege 1999) Michael Koch, Gunnar Teege: Support for Tailoring CSCW Systems: Adaptation by Composition. Proc. 7th Euromicro Workshop on Parallel and Distributed Processing, Funchal,
Portugal, Feb. 1999, IEEE Press, S.146-152.
Dieser Beitrag beschreibt, wie man aspekt-basierte Anpassung mit komponenten-basierter Anpassung
kombinieren kann. Die Ansätze wurden im Gruppeneditor Iris eingesetzt, stellen aber auch eine wichtige
Grundlage für die Anpassungskonzepte bei den Cobricks-Diensten dar.
9
1 Einleitung
(Koch 1998) Michael Koch: Knowledge Management and Knowledge Agents in Campiello. Proc.
Workshop on Intelligent Agents in CSCW, B. Lees, H. J. Müller, C. Branki (Hrsg.), Sep. 1998, Fachbereich Informatik, Universität Dortmund, S.44-52.
Dieser Beitrag beschreibt erste Ideen zur Konzeption einer agentenbasierten Unterstützungsarchitektur
für Communities.
Benutzerprofile
Bei den Architekturüberlegungen ist die anwendungsunabhängige Verwaltung von Benutzerprofilinformation besonders herauszustellen. Nachfolgend aufgeführte Veröffentlichungen gehen speziell auf
dieses Thema ein und arbeiten besonders den Aspekt der Wahrung der Privatsphäre und deren technische Unterstützung heraus. Dabei wird das Thema sowohl allgemein behandelt (Koch und Wörndl
2001), als auch im Kontext verschiedener konkreter Anwendungsszenarien (z.B. die Personalisierung
von Produktvorschlägen in (Koch 2002d)),
Die Hauptarbeiten in diesem Bereich sind (Koch und Wörndl 2001), (Koch 2002c) und (Koch und
Möslein 2003). Diese und die nachfolgend zusätzlich aufgeführten Arbeiten bilden die Grundlage zu
Kapitel 4.
(Koch und Möslein 2003) Michael Koch, Kathrin Möslein: User Representation in E-Commerce and
Collaboration Applications. Proc. 16th Bled eCommerce Conference., S. 649 - 661, Jun. 2003.
Dieser Beitrag baut auf (Koch 2002c) auf und stellt die Anforderungen an Identitätsmanagement für
E-Commerce- und Collaboration-Anwendungen heraus.
(Wörndl u. a. 2003) Wolfgang Wörndl, Johann Zehentner, Michael Koch: Vergleich des Umgangs mit
Privatheit bei Passport und Liberty Alliance. Proc. GI Jahrestagung Informatik 2003 - Teiltagung
Sicherheit, Sep. 2003.
Dieser Beitrag vergleicht die Identitätsmanagement-Lösungen von Microsoft (Passport) und von der
Liberty Alliance hinsichtlich ihrer Unterstützung für Privatheit (Benutzerkontrolle).
(Schubert und Koch 2003) Petra Schubert, Michael Koch: Collaboration Platforms for Virtual Student
Communities. Proc. Hawaii International Conference on System Science (HICSS-36), Jan. 2003.
In diesem Beitrag werden die Anforderungen an Benutzerprofile an Beispiel von zwei Kooperationsplattformen für Studierende herausgearbeitet.
(Koch 2002c) Michael Koch: Global Identity Management to Boost Personalization. Proc. Research
Symposium on Emerging Electronic Markets, P. Schubert, U. Leimstoll (Hrsg.), Basel, Schweiz, Sep.
2002, Institut für Angewandte Betriebsökonomie, Fachhochschule beider Basel, S.137-147.
Dieser Beitrag stellt die Bedeutung von globaler Benutzerprofilverwaltung für Online-Dienste und dabei
speziell für die Personalisierung und für kleine Betreiber heraus. Es werden ausführlich verwandte
Aktivitäten diskutiert und die IDRepository-Lösung vorgestellt.
(Koch u. a. 2002b) Michael Koch, Kathrin Möslein, Petra Schubert: Communities and Personalization
for Individual Products. Proc. British Academy of Management Annual Conference (BAM2002), Sep.
2002.
In diesem Beitrag wird die Bedeutung und grundlegende Funktionsweise von globaler Benutzerprofilverwaltung für zukünftige Plattformen zum Design individualisierter Produkte diskutiert.
(Koch 2002d) Michael Koch: Globale Benutzerprofile und kundenindividuelle Produkte. Proc. Liechtensteinisches Wirtschaftsinformatik-Symposium 2002, Vaduz, Liechtenstein, Jun. 2002.
Dieser Beitrag beschreibt die IDRepository-Lösung im Zusammenhang mit der Individualisierung von
Produkten.
10
1.6 Aufbau der Arbeit und Einordnung der eigenen Veröffentlichungen
(Koch und Schubert 2002) Michael Koch, Petra Schubert: Personalization and Community Communication for Customer Support. Proc. 6th Intl. Conf. on Work With Display Units - World Wide Work
(WWDU2002), H. Luczak, A. E. Cakir, G. Cakir (Hrsg.), Berchtesgaden, Mai 2002, S.530-532.
Dieser Beitrag greift das Thema Personalisierung auf und diskutiert Anforderungen an die Benutzerprofilverwaltung.
(Koch und Wörndl 2001) Michael Koch, Wolfgang Wörndl: Community Support and Identity Management. Proc. Europ. Conf. on Computer-Supported Cooperative Work (ECSCW2001), Bonn, Sep. 2001,
S.319-338.
In diesem Beitrag wird das Grundkonzept des IDRepositories und die Aushandlung von Zugriffsrechten
beschrieben.
Community-Unterstützungsplattformen
Die Überlegungen zu Community-Unterstützungssystemen wurden in mehreren Anwendungsbereichen praxisnah erprobt. Dazu wurden sowohl die allgemeinen Überlegungen zu Anforderungen mit
den konkreten Situation in den verschiedenen Bereichen in Einklang gebracht, als auch die erarbeiteten Konzepte zu Funktionalitäten und Architektur früh umgesetzt und in der Praxis evaluiert und
weiterentwickelt.
Die nachfolgend aufgelisteten Veröffentlichungen beschreiben die Anforderungen und Ergebnisse
aus den Bereichen:
Anwendung von Community-Unterstützung beim Finden von Geschäftspartnern (Projekt „Telekooperation in Beziehungsnetzwerken für informationsbezogene Dienstleistungen“ (TiBiD))
Unterstützung der Kommunikation in Communities im Universitätsumfeld (Projekte „Informationsdrehscheibe“, „UnternehmerTUM“ und „TUMmelplatz“)
Unterstützung von Freizeit-Communities (Projekt „Community Online Services and Mobile
Solutions“ (COSMOS))
Produkt-Communities und Generierung von personalisierten Produktempfehlungen (Projekt
„Generierung und Adaption von personalisierter Produktinformation“ im SFB582)
Wissensmanagement in lose gekoppelten Arbeitsgruppen (Projekt „CommunityItemsTool“)
Die Plattformen und die damit gemachten Erfahrungen sind auch in Kapitel 5 dieser Arbeit kurz
beschrieben.
(Koch 2003a) Michael Koch: Community Support in Universities - The Drehscheibe Project. Proc. Intl.
Conf. on Communities and Technologies, M. Huysman, E. Wenger, V. Wulf (Hrsg.), S. 445 - 464, Sep.
2003.
Beschreibung des Drehscheibe-Systems zur Unterstützung von Communities im Universitätsumfeld sowie erster Erfahrungen vom Einsatz des Systems.
(Stegmann u. a. 2003) Rosmary Stegmann, Michael Koch, Martin Lacher, Thomas Leckner und Volker Renneberg: Generating Personalized Recommendations in a Model-Based Product Configurator
System. Proc. Intl. Joint Conf. On Artificial Intelligence (IJCAI) - Workshop on Configuration, Aug.
2003.
Motivation und Beschreibung des Aufbaus eines Systems zum Einsatz von Personalisierung bei der
Konfiguration von kundenspezifischen Produkten.
11
1 Einleitung
(Piller u. a. 2003) Frank Piller, Michael Koch, Kathrin Möslein und Petra Schubert: Managing High
Variety - How to Overcome the Mass Confusion Phenomenon of Customer Co-Design. Proc. 3rd Annual
Conf. of the European Academy of Management (EURAM2003), Apr. 2003.
Allgemeine Überlegungen zur Anwendung von (automatischer) Personalisierung bei der Konfiguration
speziell auf den Kunden angepasster Produkte.
(Leckner u. a. 2003) Thomas Leckner, Michael Koch, Martin Lacher und Rosmary Stegmann: Personalization meets Mass Customization - Support for the Configuration and Design of Individualized
Products. Proc. Intl. Conf. on Enterprise Information Systems (ICEIS2003), Apr. 2003.
Entwurf eines Systems zur Unterstützung von Kunden bei der Auswahl individualisierter Güter. Neben dem Entwurf des Gesamtsystems wird vor allem auf Benutzerprofile, Produktmodelle und deren
Kombination zur Erzeugung personalisierter Empfehlungen eingegangen.
(Schubert und Koch 2003) Petra Schubert, Michael Koch: Collaboration Platforms for Virtual Student
Communities. Proc. Hawaii International Conference on System Science (HICSS-36), Jan. 2003.
Beschreibung der Unterstützung von Studierenden (durch mobile Schnittstellen) im Projekt Cosmos.
Darstellung aus Sicht von Personalisierung und Erhebung bzw. Nutzung von Benutzerprofilen.
(Koch u. a. 2002a) Michael Koch, Georg Groh, Christian Hillebrand, Natalie Fremuth: Mobile Support
for Lifestyle Communities. Arbeitspapier Nr.34 des Lehrstuhls für Allg. und Ind. Betriebswirtschaftslehre (AIB), Technische Universität München, ISSN 0942-5098, Nov. 2002.
Details zur Implementierung der Cosmos-Infrastruktur und zur Pilotierung im Bereich Lifestyle.
(Koch 2002b) Michael Koch, Georg Groh, Christian Hillebrand: Mobile Communities - Extending
Online Communities into the Real World. Proc. Americas Conf. on Information Systems (AMCIS2002),
Dallas, TX, Aug. 2002.
Beschreibung der Cosmos-Plattformen zur Unterstützung mobiler Communities in den Bereichen Lifestyle und Healthcare.
(Koch 2002e) Michael Koch: Interoperable Community Platforms and Identity Management in the
University Domain. International Journal on Media Management, 4(1), Jun. 2002, S.21-30.
Beschreibung verschiedener Community-Plattformen (und Möglichkeiten dazu) im Universitätsumfeld.
(Koch und Lacher 2001) Michael Koch, Martin S. Lacher: The Comovie Movie Recommender - An
Interoperable Community Support Application. Proc. Human-Computer Interaction International, New
Orleans, LA, Aug. 2001.
Beschreibung einer Plattform für Kino-Communities mit spezieller Berücksichtigung der Empfehlungskomponente mit kollaborativem Filtern.
(Koch u. a. 2001b) Michael Koch, Martin Lacher, Wolfgang Wörndl: The CommunityItemsTool - Interoperable Community Support in Practice. Proc. Workshop on Web-based Infrastructures and Coordination Architectures for Collaborative Entreprises (WETICE 2001), Cambridge, MA, Jun. 2001.
Beschreibung einer Wissensmanagement-Anwendung zum Austausch von Literaturreferenzen, Bookmarks und Kommentaren dazu in einer Community of Practice.
(Koch u. a. 2001c) Michael Koch, Martin Lacher, Wolfgang Wörndl: Das CommunityItemsTool - Interoperable Unterstützung von Interessens-Communities in der Praxis. Proc. 3. Liechtensteinisches
Wirtschaftsinformatik-Symposium, B. Britzelmaier, S. Geberl, S. Weinmann (Hrsg.), Vaduz, Liechtenstein, Mai 2001, Teubner, Stuttgart, S.147-157.
Beschreibung einer Wissensmanagement-Anwendung zum Austausch von Literaturreferenzen, Bookmarks und Kommentaren dazu in einer Community of Practice (Vorarbeit zu (Koch u. a. 2001b)).
12
Kapitel 2
Community-Unterstützung
„Internet-Communities sind keine Internet-Seiten, auf denen sich Menschen
treffen, sondern sie bestehen aus den Menschen, die sich dort treffen.“,
(Schmidt 2000, S.35)
In diesem Kapitel behandle ich das Thema Community und Community-Unterstützung. Ziel
dabei ist es herauszuarbeiten, was ein Community-Unterstützungssystem überhaupt ist, welche
Funktionalitäten dafür charakterisierend sind und welche Anforderungen an zukünftige Community-Unterstützungssysteme gestellt werden. Diese Anforderungen werden dann in den weiteren
Kapiteln aufgegriffen und daraus das neue Architekturkonzept für Community-Unterstützungssysteme hergeleitet.
Kapitelinhalt
2.1
2.1
2.2
Community aus unterschiedlichen Perspektiven . . . . . . . . . . . . . . . . . 13
Virtuelle Communities (Online-Communities) . . . . . . . . . . . . . . . . . . 21
2.3
2.4
Community-Unterstützungssysteme . . . . . . . . . . . . . . . . . . . . . . . . 23
Anforderungen an Community-Unterstützungssysteme . . . . . . . . . . . . . 29
Community aus unterschiedlichen Perspektiven
In den 1950er Jahren wurden knapp hundert verschiedene Definitionen für den Begriff „Community“
gezählt (Hillery 1955, S.118). Heute sind es dank der Einbeziehung elektronischer Kommunikationskanäle in das Bild und durch die Verwässerung des Begriffs in und über die Werbung sicher noch viel
mehr. Figallo drückt dies in folgendem Zitat sehr prägnant aus:
„I saw the word community being associated with so many different things that I began to wonder
if the idea was in danger of being watered down into meaningless jargon“. (Figallo 1998)
Einen ersten Eindruck dafür, was man unter „Community“ versteht, findet sich durch Nachschlagen
des Begriffs im Wörterbuch. In dictionary.com werden beispielsweise folgende Definitionen gegeben:
„A group of people living in the same locality and under the same government.“.
13
2 Community-Unterstützung
oder
„A group of people having common interests.“.
Im folgenden sollen diese Definitionen noch weiter untermauert werden, um eine Basis für die Ableitung von Unterstützungsmöglichkeiten zu gewinnen. Dazu betrachte ich verschiedene historische
und neuere Arbeiten rund um den Begriff „Gemeinschaft“. Nachdem Gemeinschaften im Kontext
von Computernetzen in einer Vielzahl bisheriger Publikationen rein aus dem Blickwinkel des sozialen Interaktionsinteresses gesehen werden (z.B. (Turkle 1995; Rheingold 1993; Stoll 1995; Schuler
1996; Parks und Floyd 1996; Hauben und Hauben 1997)) gebe ich im Folgenden zuerst einen sehr
knappen Überblick auf die Bedeutung des Begriffs in der Soziologie. Die Ausführungen orientieren
sich dabei teilweise an (Schubert 2000).
2.1.1
Gemeinschaften in der Soziologie
Der Begriff „Gemeinschaft“ ist in der Soziologie mit vielen unterschiedlichen Bedeutungen versehen. Die folgenden Basiskonzepte sind den meisten Definitionen gemeinsam: (1) „Gemeinschaften
handeln von Menschen“, (2) „sozialer Interaktion“ und (3) „gemeinsamen Bindungen“.
Weiterhin herrscht Einigkeit, dass ein menschliches Wesen, das einen normalen Sozialisierungsprozess durchlaufen hat, sich durch eine natürliche Affinität zu einer Gemeinschaft auszeichnet:
„The truth is that the world is made of people. People out of communities are like fish
out of water or plants out of soil.“ (Agre 2001)
Die Mitgliedschaft in einer oder mehreren sozialen Gruppen ist für die meisten Menschen ein wesentlicher Bestandteil ihres Lebens.
Gemeinschaft und Gesellschaft
Bis der Soziologe Ferdinand Tönnies 1887 die Unterscheidung zwischen Gemeinschaft und Gesellschaft aufbrachte (Tönnies 1991), wurde der Begriff der Gemeinschaft lange Zeit als zentrales Element sozialer Netzwerke angesehen. Tönnies beschreibt, dass sich das Individuum in der modernen
Gesellschaft immer in zwei Typen sozialer Bindung befindet. Zum einen in einer Verbindung, die
durch gewachsene Strukturen und Zugehörigkeitsgefühl geprägt ist: Familie, Nachbarschaft, Volk.
Diesen Typus nennt Tönnies „Gemeinschaft“. Dagegen steht die „Gesellschaft“, ein Bindungstyp,
der vor allem durch Nutzenüberlegungen bestimmt wird: Ökonomische und politische Verbindungen, Vereine und Versammlungen.
Tönnis beschreibt also Gemeinschaft als einen organischen Sinn von Gemeinsamkeiten, Kameradschaft und Familie, zusammengehalten durch Verständnis, Konsens und Sprache. Nach Tönnies ist
Gemeinschaft überall dort vorhanden, „wo immer Menschen in organischer Weise durch ihren Willen miteinander verbunden sind und einander bejahen“. Gesellschaft stellt er dem gegenüber als
Hyperindividualismus dar, in welchem Beziehungen zwischen Leuten mechanisch, transitorisch und
kontraktorieniert sind. Die Gemeinschaft stiftet für ihre Mitglieder Geborgenheit und Schutz, verpflichtet sie jedoch auch moralisch, etwas für sie zu leisten. Eine rein passive Haltung, also ein
Herumlungern (engl. „lurking“) wird in der Regel nicht toleriert.
Eine ähnliche Haltung vertritt auch Dyson (1997), die zwischen „Community“ und „Culture“ unterscheidet. Sie schreibt:
14
2.1 Community aus unterschiedlichen Perspektiven
„Communities often have a culture, but there is an important disctinction between culture
and community. Culture is a set of rules, perceptions, language, history, and the like. It is
embodied in books and songs, pleople’s mind, and websites [..] By contrast, a community
is a set of relationships.“ (Dyson 1997)
Dyson führt als weitere Eigenschaft, die eine Community ausmacht „die menschliche Interaktion“
an. Eine Gemeinschaft hängt von den Menschen ab, die sie formen. Sie ist nicht passiv sondern
ihre Mitglieder investieren in ihre Existenz. Um ein Mitglied zu sein, muss man in der Gemeinschaft
präsent sein, zu ihr beitragen und den anderen Mitgliedern bekannt sein.
Gemeinschaft als soziales Netzwerk
Van Vliet und Burgers (1987) beschreiben Gemeinschaften als Zusammenwirken der konstituierenden Elemente „soziale Interaktion“ und ein gemeinsames „Werte- und Symbolsystem“. Der Mensch
strebt in seinem Inneren nach Ordnung. Er bewegt sich lieber im gesicherten Gefüge einer Gruppe
bekannter Menschen als alleine als Individuum. Ein heute zu beobachtender Trend ist die Abnahme
in der Anzahl an Communities. Dieser Wegfall der sozialen Gemeinschaft ist begleitet von einem
steigenden Bedürfnis nach Ersatz-Gemeinschaften (z.B. realisiert über elektronische Medien).
Schubert (2000) greift die Beschreibung von van Vliet und Burgers auf und definiert:
„Gemeinschaften sind Zusammenschlüsse von Mitgliedern mit übereinstimmenden Moralund Zielvorstellungen, die auf der Grundlage eines institutionellen Rahmenwerks (implementierte Organisation (Protokolle, Rollen)) in einem gemeinsamen semantischen Raum
(gemeinsames Werte- und Symbolsystem (Sprache)) miteinander in Beziehung treten (Interaktion).“ (Schubert 2000, S.72)
Bei den für die Herausbildung einer Community notwendigen Übereinstimmungen (Gemeinsamkeiten) zwischen den Mitgliedern wird häufig zwischen verschiedenen Typen unterschieden. Schuler
(1996) unterscheidet hier beispielsweise drei verschiedene Arten von Gemeinschaften:
Gemeinschaften aufgrund geographischer Zusammengehörigkeit
Gruppen mit gemeinsamen Interessen (Interessensgemeinschaften)
Zusammenhalt von Gruppenmitgliedern durch Gemeinschaftsgefühl
Dies wurde nicht immer so gesehen. In frühen Arbeiten wurde hier meist nur die geographische
Zusammengehörigkeit (gemeinsame geographische Umgebung) diskutiert (Hillery 1955). Erst in
neueren Arbeiten verliert der gemeinsame Ort als charakterisierender und einigender Faktor immer
mehr an Bedeutung. Stattdessen werden persönliche Beziehungen, über die Menschen miteinander
verwoben sind, immer wichtiger. Nicht mehr Orte, sondern soziale Netzwerke, basierend auf gemeinsamen Interessen, werden als Grundlage für Communities gesehen. Wellman und Gulia meinen
hierzu in (Wellman und Gulia 1999):
„... communities do not have to be solidary groups of densely knit neighbors but could
also exist as social networks on kin, friends, and workmates who do not necessarily live
in the same neighborhoods.“
15
2 Community-Unterstützung
Carotenuto u. a. (1999) definieren Community ähnlich, aber mit leicht unterschiedlichem Fokus:
„A community is a voluntary association of people who are not directly dependent on
each other for success.“
Auch wenn die Mitglieder einer Community nicht direkt voneinander abhängig sind, identifizieren
viele Autoren „gemeinschaftliches Handeln“ als wichtiges, dem „sozialen Netzwerk“-Aspekt entstammendes Charakteristikum von Communities. So sieht auch Wenger (1998) bei Communities
gemeinsame Handlungen und das Lernen bei diesen Handlungen als die zentralen Elemente an:
„Members of a community are informally bound by what they do together from engaging
in lunchtime discussions to solving difficult problems and by what they have learned
through their mutual engagement in these activities.“
Wenger beschreibt Communities also nicht anhand von Eigenschaften, sondern legt einen Grund für
den Zusammenschluss von Personen zu einer Community dar: Gemeinsame Aktivitäten sowie der
daraus resultierende Lernerfolg für den Einzelnen.
Diese Definition ist mit dem von Wenger geprägten „Community of Practice“-Konzept verbunden.
Basierend auf diesen Konzept kann auch folgende Beschreibung gewählt werden: Communities als
„informelle Personengruppen oder -netzwerke, die aufgrund gemeinsamer Interessen und/oder Problemstellungen über einen längeren Zeitraum hinweg miteinander kommunizieren, kooperieren, Wissen und Erfahrungen austauschen, neues Wissen schaffen und dabei voneinander lernen.“
Diese Charakterisierung einer Community als eine Gruppe von Personen, die sich im Rahmen eines
gemeinsamen Kontextes (gemeinsames Thema, gemeinsamer Ort) gegenseitig helfen, greift auch
Greenspun (1999) auf wenn er definiert „A community is a group of people with varying degrees of
expertise in which the experts attempt to help the novices improve their skills“.
Identität und Gewahrsein
Schon im Abschnitt zu Gemeinschaft und Gesellschaft wurden Interaktion und Identität als Schlüsselfunktionen sozialer Gemeinschaften herausgestellt. Identität ist dabei aus soziologischer Sicht
das „dauernde innere Sich-Selbst-Gleichsein, die Kontinuität des Selbsterlebens eines Individuums,
die im wesentlichen durch die dauerhafte Übernahme bestimmter sozialer Rollen und Gruppenmitgliedschaften sowie durch die gesellschaftliche Anerkennung als jemand, der die betreffenden Rollen
innehat bzw. zu der betreffenden Gruppe gehört, hergestellt wurde“ (Köhntopp 2000). Die Mitglieder
einer Gemeinschaft müssen also miteinander interagieren, anderen Mitgliedern (partiell) bekannt sein
und ihre Identität in der Gemeinschaft durch Kontinuität bewahren.
Fehlende oder unausgeglichene Interaktion und Präsenz den anderen gegenüber führt zu einem nach
Außen gerichteten Verlangen oder psychischer Beklemmung. Identität hilft einer Person, sich im
sozialen Gefüge einzuordnen, was den Kontext oder Ankerpunkt für ihr Benehmen und Handeln
bildet.
Ishida (1998) stellt beispielsweise als charakteristische Eigenschaft von Communities das Wir-Gefühl
in der Community heraus, also eine Art Bewußtsein über die Existenz der Community. Auch Mynatt
u. a. (1997) betonen neben der Interaktion das Mitgliedschaftsgefühl und die Grenzen:
16
2.1 Community aus unterschiedlichen Perspektiven
„[A community] is a social grouping which exhibit in varying degrees: shared spatial
relations, social conventions, a sense of membership and boundaries, and an ongoing
rhythm of social interaction.“ (Mynatt u. a. 1997, S.211)
Das Bewußtsein über die Existenz der Community ist eng verbunden mit dem Bewußtsein über die
Existenz und Identität anderer Community-Mitglieder. Das klassische Gruppen-Gewahrsein (group
awareness) spielt also auch bei Communities eine wichtige Rolle (Schlichter u. a. 1998).
Beim Thema Identität ist auch das Thema Anonymität anzusprechen. Nicht wenige Autoren sehen
die durch Anonymität erreichte Senkung der Hemmschwelle zur Kontaktaufnahme als die Chance zu
einem wahren Miteinander im Internet an. Die Vorteile von Anonymität sind unbestritten. Allerdings
behindert Anonymität zugleich eine wirkungsvolle soziale Kontrolle sowie den Aufbau von sozialen Bindungen zwischen Community-Mitgliedern. Ebenso ist es nur schwer möglich, Beiträge von
anonym agierenden Community-Mitgliedern einzuschätzen. Donath u. a. (1999) schreibt hierzu:
„For assessing the reliability of information and the trustworthiness of a confidant, identity is essential. And care of one’s identity, one’s reputation is fundamental to the formation of community.“
In vielen Communities (speziell in solchen, die sich nicht direkt treffen) hat sich aus diesen Gründen
eine Mittelweg etabliert. Die Mitglieder sind in der Community unter einem eindeutigen Pseudonym
bekannt, das aber nicht unbedingt einen Rückschluss auf ihre wirkliche Identität zulässt.
Rollen in Communities
Der amerikanische Autor Gladwell (2000) nähert sich der Charakterisierung von Communities von
einer Rollen-basierten Sichtweise. Er geht u.a. auf die Informationsübermittlung und Zusammenarbeit in Communities ein und nennt drei wichtige Typen von Rollen für Community-Mitglieder:
Mavens, Salesmen und Connectors. Vorweggenommen sei hier schon erwähnt, dass die drei Rollen meist nicht zur klaren Kategorisierung der Mitglieder einer Community herangezogen werden
können. Häufig deckt ein und dieselbe Person mehrere Rollen ab. Die Rollen sind aber sehr hilfreich, wenn es darum geht zu reflektieren, wie der Wissensaustausch in und zwischen Communities
funktioniert und welche Unterstützungsmöglichkeiten dafür angeboten werden könnten und sollten.
Weiterhin sei vorausgeschickt, dass die von Gladwell herausgearbeiteten Rollen auf einer anderen
Ebene zu sehen sind als die in Kapitel 4 behandelten Benutzerrollen. Während es sich bei letzterem
um ein Hilfmittel zur Definition von Zugriffsrechten handelt, fassen die Rollen von Gladwell wichtige
Aufgaben und Kommunikationsmuster bei der Interaktion in Communities zusammen.
Mavens
Mit „maven“ (engl. für „Kenner“) sind die Mitglieder einer Community gemeint, die in einem bestimmten Bereich Expertenwissen besitzen. Das sind z.B. die Personen, die man fragt, wenn man
eine Kaufentscheidung treffen will.
Salesmen
Diese Rolle sorgt dafür, dass die Tipps von Mavens zur Meinung einer größeren Masse von Menschen werden. Salesmen (engl. für „Verkäufer“) besitzen vielleicht kein Expertenwissen, können
aber Empfehlungen so begeistert weitergeben, dass sie von den Empfängern gerne aufgenommen
werden.
17
2 Community-Unterstützung
Information
Community A
Maven
Connector
Maven
Information
Salesman
Maven
Community B
Information
Abbildung 2.1: Mavens als Informationsentdecker und Salesmen als Verteiler in einer Community,
Connector als Schnittstelle zwischen Communities
Im Gegensatz zum Maven weiß der Salesman nicht, welche Produkte wirklich unter bestimmten
Kriterien die Besten sind. Wenn er aber von einem Produkt begeistert ist (und dazu muss er es noch
nicht einmal gekauft haben), dann wird er dies weitererzählen und seine Begeisterung weitertragen.
Connectoren
Zu guter letzt braucht man noch Personen, die Trends aus einer Community heraus in eine andere
tragen. Connectoren sind dazu in verschiedenen Gruppen und wandeln Information aus einer Gruppe
in Informationen um, die für die andere Gruppe relevant ist.
Den Connector macht nicht nur aus, dass er Mitglied in den verschiedenen Gruppen ist, sondern
er muss auch die Fähigkeit haben, Leute und Ideen aus den verschiedenen Bereichen zusammen zu
bringen.
Gruban (2001) beschreibt in diesem Zusammenhang folgendes Beispiel: Hat sich durch Mavens und
Salesmen in einer Gruppe von Technikbegeisterten herumgesprochen, dass ein bestimmtes Mobiltelefon besonders interessante Funktionen hat, so bleibt diese Information zunächst in dieser Gruppe.
Bekommt aber der Connector mit, dass sich in der Theatergruppe jemand ein Mobiltelefon kaufen
will, so besinnt er sich auf die Gespräche in der Technikgruppe und empfiehlt demjenigen ein Gerät,
das auf seine Anforderungen – im Gegensatz zu den Spielereien, die einem Techniker wichtig sind –
passt.
Auf Communities bezogen heißt das, dass es Personen geben muss, die Information von draußen in
die Community hinein tragen, diese aber so anpassen, dass sie für die Mitglieder relevant sind. Diese
Aufgabe übernehmen Connectoren, die gleichzeitig wiederum Erfahrungen aus der Community in
andere Communities mitnehmen.
Mit der Rolle der Connectoren wurde auch schon der Umstand angesprochen, dass Communities
keine voneinander isolierten Inseln darstellen. Normalerweise ist eine Person Mitglied in mehr als
einer Community und kann damit als Connector den Wissensaustausch zwischen den Communities
unterstützen. Die Mitgliedschaft in mehreren Communities wirft aber auch Anforderungen an die
Unterstützung von Communities auf. Wir werden diesen Aspekt am Ende dieses Kapitels nochmal
aufgreifen.
18
2.1 Community aus unterschiedlichen Perspektiven
2.1.2
Gemeinschaften aus technischer Sicht
Neben diesen, sehr auf „Mensch und Gesellschaft“ konzentrierten Definitionsversuchen für den Community-Begriff, gibt es auch noch „technischere“ Definitionen, die Community allgemein als eine
Menge von Agenten mit einem gemeinsamen Protokoll beschreiben.
Lechner u. a. (2001) schreiben dazu beispielsweise:
„Eine Gemeinschaft wird - aus technischer Sicht betrachtet - durch ein Medium und eine
Menge von Agenten konstituiert und ist charakterisiert durch den logischen Raum mit
Syntax und Semantik, durch ein Kanalsystem für den Transport von Informationen und
eine Organisation mit Rollen und Protokollen. Die Nachrichten, die ausgetauscht werden, dienen dem Austausch von Wissen, der (unverbindlichen) Kommunikation von Absichten, der Verhandlung von Verträgen und der Erfüllung von Verträgen. Unter Agenten
verstehen wir Menschen, Softwareartefakte und alle organisatorischen Einheiten, die auf
einem Markt auftreten können.“
Eine technische Motivation haben auch konstruktive Definitionen des Begriffs Community anhand
von konkreten Aktivitäten, die zwischen den Community-Mitgliedern bzw. Agenten stattfinden. Entsprechend der Grunddefinition von Community steht hier das gemeinschaftliche Handeln zuoberst.
Um gemeinschaftlich Handeln zu können, müssen die Community-Mitglieder miteinander kommunizieren. Dazu müssen sie geeignete Kommunikationspartner identifizieren und dann die Kommunikation mit den Kommunikationspartner abwickeln. Nach dieser Betrachtung stellt eine Community
einen Kontext dar, in dem das Finden von Interaktionspartnern und die Abwicklung von Interaktion
zur Durchführung von partiellem gemeinschaftlichem Handeln möglich wird.
Solche Definitionen erlauben einen einfachen Übergang zu Anforderungen an Unterstützungstechnologie (worauf wir später in diesem Kapitel auch noch zurückkommen werden).
2.1.3
Kategorisierungen zu Communities
In einschlägigen Arbeiten zu Community-Unterstützung wird immer wieder versucht, die Menge
möglicher Communities anhand einiger Hauptcharakteristika in verschiedene Typen zu unterteilen
und für diese Typen dann spezielle Unterstützungslösungen zu definieren. In (Carotenuto u. a. 1999)
werden beispielsweise die beiden Charakteristika „Fokus“ und „Gemeinsamkeiten“ herausgegriffen.
Beim Fokus wird unterschieden zwischen einem engen Fokus und einem breiten Fokus, bei den
Gemeinsamkeiten werden die beiden Ausprägungen „gemeinsame Aktivitäten“ und „gemeinsamen
Interessen“ berücksichtigt.
Diese Unterscheidung führt zu folgenden Typen von Communities 1 :
Community of Interest (gemeinsame Interessen und breiter Fokus)
Community of Practice (gemeinsame Aktivitäten)
Community of Purpose (gemeinsame Interessen und enger Fokus)
1
Zusätzlich zu den hier aufgelisteten drei Community-Typen wird in (Carotenuto u. a. 1999) als Verfeinerung der ’Community of Purpose’ noch der Typ ’Community of Passion’ eingeführt.
19
2 Community-Unterstützung
Community of Interest (COI)
Communities of Interest haben einen diffusen Fokus auf eine Menge gemeinsamer Interessen. Eine
solche Community bündelt also Personen mit Wissen über und Interessen an bestimmten breit gefassten Themengebieten. Die Hauptmotivation für die Mitgliedschaft ist es über ein Themengebiet auf
dem Laufenden zu bleiben, Informationen im Kontext der Interessen auszutauschen und Wissensträger zu identifizieren Ishida (1998).
Community of Purpose
Von Community of Purpose spricht man, wenn es einen engen Fokus auf ein gemeinsames Interesse
gibt. Im Gegensatz zur Community of Interest steht hier nicht das allgemeine Gewahrsein über die
Entwicklungen in einem breiten Themengebiet im Vordergrund, sondern meist die (gegenseitige)
Erfüllung ganz konkreter (Informations-)Bedürfnisse. Beispiele für solche konkreten Bedürfnisse
sind die Organisation gemeinsamer Veranstaltungen oder die Erstellung gemeinsamer (Software-)
Produkte.
Community of Practice (COP)
Im Gegensatz zur Community of Interest besteht die Gemeinsamkeit bei der Community of Practice
nicht nur aus einem gemeinsamen Interesse, sondern aus Aktivitäten, die gemeinsam durchgeführt
werden oder aus gleiche Aktivitäten, welche die Community-Mitglieder (mehr oder weniger) unabhängig voneinander durchführen.
Die Grunddefinition zu Community of Practice stammt von E. Wenger:
„In a nutshell, a community of practice is a group of people who share an interest in a domain of
human endeavor and engage in a process of collective learning that creates bonds between them:
a tribe, a garage band, a group of engineers working on similar problems.“. (Wenger 1998)
Wenger nennt drei essentielle Charakteristika für Communities of Practice:
das Fachgebiet (the domain)
Es gibt ein Minimum an Wissen, das eine Person haben muss, um Mitglied zu sein. Personen mit zu geringem Wissen über das Fachgebiet können den Austauschprozess nicht sinnvoll
unterstützen.
die Gemeinschaft (the community)
Die einzelnen Personen teilen ihr Wissen mit den anderen und sie unterstützen einander beim
Wissenserwerb. Das macht sie zu einer Gemeinschaft.
die Aktivität (the practice)
Die Mitglieder haben sich um eine Aktivität herum eine gemeinsame Wissensbasis zur praktischen Problemlösung geschaffen. Dabei kann es sich z.B. um Erfahrungsberichte, Werkzeuge
oder Vorgehensweisen handeln.
Für Communities of Practice reicht also das relativ unscharfe Ziel und der Willen zum gemeinsamen
Wissenerwerb aus.
20
2.2 Virtuelle Communities (Online-Communities)
2.1.4
Zusammenfassung und Konsolidierung
Allen hier angesprochenen Definitionen ist gemeinsam, dass sich Menschen freiwillig zusammenschließen, um gegenseitig von der Gemeinschaft mit anderen auf die eine oder andere Art zu profitieren. Die Community bildet ein Netzwerk zwischen Menschen, das sich durch eine (wie auch
immer geartete) Gemeinsamkeit der Mitglieder sowie der Interaktion zwischen ihnen definiert. Dieses soziale Netzwerk bildet die Grundlage für gemeinsame Aktivitäten, für das Lernen in der Gruppe,
etc.
Giorgio de Michelis hat die Ideen zu Community in Referaten auf der i3 Summerschool in Ivrea
(August 2001) und auf der Dienstleistungstagung des BMBF (Oktober 2001, (de Michelis 2001))
sehr gut zusammengefasst. Er sieht eine Community vom Standpunkt des Wertes, den sie für ihre
Mitglieder hat: „A community is where social value is created“. Diesen Wert sieht er in
(1) „social ties consituting a flexible and diversified help network“ und
(2) „shared knowledge and memory creating a strong social identity“.
Eine Community stellt also eine soziale Identität zur Verfügung, bietet einen Platz zum Leben und
zum Lernen und stellt ein Hilfsnetzwerk zur Verfügung.
Von Seiten der Soziologie sagt de Michelis weiterhin:
„A community is a social aggregate, whose members share an experience, a practice, a
tradition, a place, and a language.“
Wichtig sind ihm dabei vor allem die gemeinsame Sprache und Traditionen (gemeinsame Historie),
sowie das Gewahrsein eines gemeinsamen Platzes. Diese Definition knüpft eng an die technische
Definitionen von Lechner u.a. im vorherigen Abschnittes an. Bei Lechner u.a. war der gemeinsame
Platz durch ein Kanalsystem für den Transport von Informationen, die gemeinsame Sprache durch
einen (gemeinsamen) logischen Raum mit Syntax und Semantik definiert.
In dieser Arbeit soll keine neue Definition von Community eingeführt werden, sondern hauptsächlich
auf die eben genannten Schwerpunkte von de Michelis Bezug genommen werden. Diese Charakterisierung als Netzwerk zum Informationsaustausch und zur gegenseitigen Hilfe, mit Grenzen und
Gemeinsamkeiten der Mitglieder sowie mit Identität und Awareness eignet sich sehr gut dazu, aktuelle Entwicklungen zu beschreiben und Funktionalitäten für Unterstützungswerkzeuge abzuleiten.
2.2
Virtuelle Communities (Online-Communities)
„If it’s there and you can see it it’s REAL
If it’s there and you can’t see it it’s TRANSPARENT
If it’s not there and you can see it it’s VIRTUAL
If it’s not there and you can’t see it it’s GONE!“
Der Begriff „Virtual Community“ geht auf H. Rheingold zurück. Er stellt in seinem 1993 erschienenen gleichnamigen Buch erstmals eine Beziehung zwischen dem Virtuellen der Mailboxen bzw. des
Internets und dem Begriff Community her (Rheingold 1993). Rheingold beschreibt Diskussionen einer kleinen Gruppe von Menschen mit Zugang zu Online-Systemen über verschiedene Themen. Jede
Themengruppe hatte ihren eigenen Bereich und so wurden die ersten Communities geboren, die sich
nur aus ihrer Diskussion über vernetzte Rechner kannten.
21
2 Community-Unterstützung
Die Grundidee der Virtuellen Community ist aber schon so alt wie die Vernetzung von Rechnern
selbst. J.C.R. Licklider, der die Idee vom Internet entscheidend prägte, schrieb bereits in den 1960ern:
„... life will be happier for the on-line individual because the people with whom one
interacts most strongly will be selected more by commonality of interests and goals than
be accidents of proximity.“ (Licklider und Taylor 1968)
David Bohnett, einer der Mitbegründer von GeoCities – eine der größten Plattformen für virtuelle
Gemeinschaften – definiert den Begriff der virtuellen Gemeinschaft folgendermaßen:
„Wir definieren eine Gemeinschaft durch vier Komponenten: erstens das gemeinsame Interesse, zweitens das positive Feedback, entweder psychologisch oder ökonomisch (das
positive Feedback, das aus dem Einstieg und der Teilnahme an der Gemeinschaft entsteht), drittens die ökonomische Infrastruktur, die den Erhalt und das Wachstum der Gemeinschaft unterstützt, und viertens Mechanismen, die bestimmen, wie sich Mitglieder
in die Gemeinschaft einbringen sollen und müssen. Der letzte Punkt ist meiner Meinung
nach auch der Lackmustest, ob man eine Site wirklich als Community bezeichnen kann.“
(Krempl 1998)
Carotenuto u. a. (1999) beschreibt Virtuelle Communities schließlich als Communities, in denen der
überwiegende Teil der Kommunikation und Interaktion zwischen den Community-Mitgliedern mittels elektronischer Medien stattfindet. Synonym zu dieser technischen Definition wird häufig auch
der Begriff „Network Community“ benutzt. So beschreiben Carroll u. a. (1996) eine Network Community als: „a group of people whose communication and collaboration over networks strengthens
their shared goals and concerns.“.
Während die bisher erwähnten Arbeiten Virtuelle Communities rein aus der Sicht der Stärkung oder
Ermöglichung beliebiger Gemeinschaften sehen, beschäftigen sich andere Arbeiten speziell mit Virtuellen Communities als Modell zur Unterstützung von Beziehungen zwischen Verkäufern und Käufern im Electronic Commerce (Armstrong u. a. 1995; Hagel und Armstrong 1997; Figallo 1998; Lechner u. a. 1998; Schubert und Koch 2002).
Bei Virtuellen Communities handelt es sich also um Communities, deren Mitglieder nur oder zumindest überwiegend über elektronische Kommunikationsmittel kommunizieren.
Trotz der grundlegend gleichen Definition gibt es einige wichtige Unterschiede zwischen realen und
virtuellen Gemeinschaften:
Im Gegensatz zu realen Gemeinschaften unterliegen virtuelle Gemeinschaften Einschränkungen in der Kommunikation. Da ihre Mitglieder größtenteils rein textorientiert kommunizieren
(kein Audio und kein Video), können einige Elemente der menschlichen Kommunikation, die
nonverbalen Elemente wie z.B. Gesten und Gesichtsausdrücke, nicht übertragen werden. Um
dies abzumildern werden ersatzweise in den Text eingebettete Symbole, sogenannte Emoticons, verwendet.
Die Textbasiertheit, verbunden damit, dass die Mitglieder nur sehr selten Details zu ihrer realen
Identität preisgeben müssen, hat den Nebeneffekt, dass viele Merkmale der Mitglieder wie z.B.
Aussehen, Alter, Aussprache, Geschlecht, gesellschaftliche Stellung und Umfeld, Bildungsstand, die in realen Gemeinschaften oft gruppenbestimmend sind, in virtuellen Gemeinschaften nur eine untergeordnete Rolle spielen. Damit ergibt sich gegenüber realen Gemeinschaften
eine Art von Anonymität (Wood und Smith 2001), die sowohl positiv als auch negativ wirken
kann (siehe hierzu auch den Abschnitt zu Identität und Gewahrsein auf S.16).
22
2.3 Community-Unterstützungssysteme
Eine Grundvoraussetzung für das Funktionieren einer Gemeinschaft ist ein starkes Gruppenbewußtsein, die sogenannte „Group Awareness“. Gruppenbewußtsein wird in erster Linie durch
die Kenntnis der Zusammensetzung der Gruppe bei jedem Mitglied erreicht. In realen Gemeinschaften mit angemessener Größe ist diese Kenntnis aufgrund des direkten Kontakts selbstverständlich. In virtuellen Gemeinschaften wird meist versucht mit Hilfe von Listen und Profilen
der anwesenden Mitglieder diese Problematik zumindest teilweise zu kompensieren.
Die moderne Kommunikationstechnik ermöglicht es virtuellen Gemeinschaften, im Gegensatz
zu realen, über sehr große Distanzen hinweg zu existieren und funktionieren. Der geographische Standort der einzelnen Mitglieder ist in virtuellen Gemeinschaften größtenteils unwichtig.
Einzige Voraussetzung ist ein Netzzugang am jeweiligen Standort des Mitglieds. Auf Basis der
zunehmenden mobilen Kommunikationstechnik ist nicht nur der Standort unwichtig, es wird
desweiteren möglich gleichzeitig mobil zu sein und an Gemeinschaften teilzunehmen. Virtuelle Gemeinschaften sind somit gegenüber realen Gemeinschaften orts- und zeitunabhängig.
Durch die damit erreichte größere Reichweite werden manche Gemeinschaften erst möglich.
Ein Beispiel hierfür sind Communities von Personen, die an seltenen Krankheiten leiden. Hier
findet sich häufig in weitem Umkreis um den Wohnort keine andere Person mit demselben
Leiden (Leimeister u. a. 2002, 2003).
Der Einsatz von vernetzten Rechner zur Unterstützung von Communities wird vielfach noch mit dem
„Schaffen“ von rein virtuellen Gemeinschaften gleichgesetzt. Betrachtet man allerdings konkrete Anwendungsfälle, dann findet man meist Gemeinschaften, die größtenteils ohne Rechnerunterstützung
miteinander interagieren und die Anwendungen auf vernetzten Rechensystemen (z.B. dem Internet)
lediglich zur Unterstützung und Bereicherung ihrer Interaktion einsetzen. Auch bei Communities,
die als rein virtuelle Community begonnen haben, entwickeln sich häufig Tendenzen sich persönlich
zu treffen. Der Bereich der Community-Unterstützung umfasst also mehr als die Bereitstellung von
Portalen für weit verteilte Gruppen.
2.3
Community-Unterstützungssysteme
Der Begriff „Community“ steht für Gruppen von Personen, die Gemeinsamkeiten haben und sich gegenseitig unterstützen. Die Idee hinter Community-Unterstützung ist es erstens, diesen Gruppen eine
Möglichkeit zur (orts- und zeitunabhängigen) Kommunikation zu geben, und zweitens, die Kenntnis
von Existenz und Zusammensetzung dieser Gruppen zu nutzen, um die Mitglieder der Community
oder andere Personen bei individuellen oder kollaborativen Aufgaben zu unterstützen.
Generell sind sowohl für stationäre als auch mobile Communities gewisse Dienste von besonderem
Interesse, die in engem Zusammenhang mit den Merkmalen stehen, die solche Communities definieren. In diesem Abschnitt geben wir zuerst eine Übersicht über Community-Unterstützung und
Unterstützungswerkzeuge und betrachten dann, welche Dienste zur Community-Unterstützung benötigt werden.
2.3.1
Historie
Community-Unterstützung begann nicht erst mit der Verfügbarkeit vernetzter Computer. Unterstützung für die Bildung und Pflege einer Community kann allgemein in klassische, nicht durch (vernetzte) Rechner unterstützte Ansätze wie private Briefe, Flugblätter, (Mitglieder-)Zeitschriften, Schwarze
23
2 Community-Unterstützung
Bretter, spezielle Radio- und Fernsehprogramme, und Ansätze, die auf vernetzten Rechnern basieren
(Bulletin Boards, MUDs, MOOs, Community-Netzwerke), unterteilt werden.
Beide Varianten der Community-Unterstützung haben Vorteile und Nachteile. Der klassische Ansatz
zeichnet sich durch Verfügbarkeit, Vertrautheit und Einfachheit der Nutzung aus. Für elektronische
Medien spricht die Dynamik, die Geschwindigkeit, die Leichtigkeit der Replikation und Verteilung
sowie die potentielle Reichweite. Nachteile sind die Nutzungsbarrieren, Probleme mit dem Zugriff
und eine geringe Verfügbarkeit.
Die Nutzung vernetzter Rechner zur Unterstützung von Communities kann in die Anfänge des Internet zurückverfolgt werden. Der zweite Dienst des Internet-Vorläufers Arpanet, der File-TransferService (FTP), wurde bald nachdem er verfügbar war „missbraucht“, um asynchrone Nachrichten von
einer Person zur anderen zu übertragen – E-Mail war erfunden. Mailinglisten folgten und bald waren
Foren-Dienste (Newsgroups) verfügbar – sowohl im Arpanet als auch auf alternativen Netzwerken,
die durch lose gekoppelte Rechner gebildet wurden (z.B. FidoNet).
Besonders hervorzuheben sind hier die Entwicklungen der sogenannten Community-Netzwerke. Diese sind in den 1980er Jahren in USA in Form von Bulletin-Board Systemen entstanden. Eine Besonderheit daran war, dass die Zielgruppe nicht eine homogene Gruppe von Technikbegeisterten war,
sondern eine durch räumliche Zusammengehörigkeit (Nachbarschaft) definierte Gruppe von „Normalbürgern“. Aus diesem Grund bestanden die Dienste der Community-Netzwerk-Betreiber nicht
nur aus der Bereitstellung und Moderation der Bulletin-Boards, sondern auch aus Unterstützung beim
Zugang zu den Systemen oder zum Internet.
Schuler (1995) beschreibt Community-Netzwerke folgendermaßen:
„Community networks are an attempt to use computer network technology to address the
needs of the community.“
Ein Community-Netzwerk wird also klar als Werkzeug gesehen, das eine bestehende, reale Community unterstützen soll. Als frühe Beispiele für Community-Netzwerke seien Big Sky Telegraph
genannt, das die Kommunikation zwischen Lehrern in den ländlichen Gegenden von Montana, USA,
unterstützte, oder das Public Electronic Network (PEN) in Santa Monica, USA, das den Bürgern
von Santa Monica einen Online-Zugang zur Stadtverwaltung bereitstellte. Ein weiteres oft zitiertes
Beispiel ist das Seattle Community Network (www.scn.org).
In Europa entstanden erste Community-Netzwerke Anfang der 1990er Jahre. Besonders zu erwähnen
ist hier „de digitale Stad Amsterdam“ (1994) und das Milano Civic Network.
Seit dem Siegeszug des World-Wide-Web entwickeln sich viele der bisher auf proprietärer ClientSoftware basierenden Bulletin-Board-Systeme und Community-Netzwerke zu Web-basierten Diensten.
Auch sind viele neue Plattformen mit ähnlichen Funktionalitäten (d.h. Publikation von Beiträgen und
von Kommentaren zu Beiträgen, Chat) entstanden. Weiterhin haben sich verschiedene andere Anwendungsklassen und nicht-Web-basierte Dienste entwickelt deren Haupt- oder Nebenziel die Unterstützung von Communities ist.
2.3.2
Anwendungsklassen
Bei Community-Unterstützungssystemen auf Basis vernetzter Rechner kann man verschiedene Anwendungsklassen identifizieren. News- und Chat-Systeme stellen einen Treffpunkt und ein Kommunikationsmedium bereit. Buddylist-Systeme liefern detaillierte Awareness-Information. OnlineCommunities bieten einen Ort zum Kommunizieren und eine breite Palette an Funktionalität, um
24
2.3 Community-Unterstützungssysteme
Community-Information zu publizieren und abzufragen. Recommender-Systeme nutzen Benutzerprofile und Bewertungen, die Benutzer vergeben haben, um Empfehlungen zu berechnen. Andere
Systeme konzentrieren sich auf das Finden von Experten oder auf explizites Matchmaking.
News- und Chat-Systeme
Diese Systeme gibt es schon seit den Anfängen der Vernetzung von Rechnern. Es handelt sich um
(Verteilte) Anwendungen, in denen (synchron oder asynchron) textbasierte Diskussionen zu bestimmten Themen (Interessensbereiche) geführt werden können. Eines der ersten und immer noch stark
genutzten asynchronen Systeme dieser Art ist „Usenet News“. Bei synchronen Plattformen ist das
System IRC (Internet Relay Chat) das Bekannteste. Ein Beispiel für eine neuerere (Web-basierte)
asynchrone Plattform ist unter www.communityware.com zu finden. Die Anwendungen unterstützen
sowohl den Austausch von Information als auch das Matchmaking über Awareness, da man durch
nicht anonyme Beiträge auf andere Community-Mitglieder aufmerksam werden kann, um dann direkt mit ihnen in Kontakt zu treten.
Als ältesten Community-Dienst im Internet finden sich bei den News- und Chat-Systemen auch die
breitesten Architekturvarianten. Das Spektrum reicht von Systemen, die nur auf einem (Web-)Server
zugänglich sind, bis hin zu einer Internet-weiten Vernetzung verschiedener Server wie bei UsenetNews oder IRC. Für die weltweit verteilten Dienste gibt es inzwischen auch verschiedene Lösungen
zur Integration in Web-Umgebungen (z.B. Google Groups, www.google.de). Eine interessante Zwischenlösung ist weiterhin das Coolboard Community System (www.coolboard.com). Hier werden
zwar eigenständige Bulletin-Boards auf unterschiedlichen Web-Servern eingerichtet, verschiedene
Boards können aber verbunden werden. Immer wenn eine Nachricht auf einem Board publiziert
wird, erscheint sie auch auf den anderen damit verbundenen Boards.
Buddylist-Systeme
Hierunter versteht man Systeme, die einem nach dem Anmelden anzeigen, welche seiner Kollegen
oder Freunde gerade online erreichbar sind. Diese Werkzeuge liefern also Awarenessinformation
zu den Mitgliedern einer meist explizit definierten Community oder eines Teams. Oft wird noch
zusätzliche Information zur Erreichbarkeit der Personen angegeben, z.B. ob eine Person im Büro
anwesend ist, gerade in einer Besprechung sitzt oder außerhalb des Büros unterwegs ist. Weiterhin
ist meist eine Verbindung zu Chat- oder Mail-Systemen integriert. Bekannte Beispiele für solche
Systeme sind ICQ oder AOL Instant Messenger. Siehe (Michalski 1997) für mehr Information zu
dieser Anwendungsklasse.
Recommender, Matchmaker
Dies sind Systeme, die versuchen, die Vorlieben eines Benutzers herauszufinden und ihm dann Vorschläge zu machen, die ihn interessieren könnten. Grundlage der Empfehlungsgenerierung sind normalerweise Benutzerprofile, die in inhaltsbasierten (regelbasierten) oder kollaborativen Filterverfahren dazu verwendet werden, aus einer Menge von Möglichkeiten (z.B. Produkte oder Nachrichten)
die für den Benutzer passenden auszuwählen.
Diese Systemklasse zählt zum Bereich der Community-Unterstützungssysteme, da häufig Informationen zu den Beziehungen von Benutzern untereinander zur Filterung herangezogen werden, oder
25
2 Community-Unterstützung
Informationen aus einem gemeinsamen (Community-)Informationsraum zur Durchführung oder zur
Ergänzung der Empfehlung benutzt werden. Siehe hierzu auch die weiterführenden Hinweise zum
„Partizipativen Produktkatalog“ im folgenden Abschnitt zu Online-Shops. Beispiele für Empfehlungssysteme sind MovieCritic, MovieLens (Sarwar u. a. 2000) und die verschiedensten Personalisierungs- und Empfehlungsanwendungen im Bereich des Electronic Commerce (z.B. die Buchempfehlung bei Amazon.com (Linden u. a. 2003)).
Neben dem Empfehlen von Informationen oder Produkten können Recommender-Systeme auch andere Personen empfehlen. D.h. auf andere Personen (in der Community) hinweisen, die in einer
bestimmten Frage helfen könnten oder mit denen sich ein Kontakt generell lohnen könnte. Solche
Matchmaking-System nutzen Kenntnisse von Beziehungen und Interessen um Benutzer zu finden,
die gleiche Interessen oder sonstige Gemeinsamkeiten haben. Teilweise findet sich auch eine Analyse und Visualisierung von Beziehungen zwischen Benutzern basierend auf Rohdaten wie dem Protokoll von E-Mail-Kommunikation. Beispiele aus der Systemklasse der Matchmaker sind Yenta (Foner
1997) und ReferralWeb (Kautz u. a. 1997).
Community-Portale
Häufig werden verschiedene Community-Funktionalitäten in andere Systeme integriert bzw. um andere Funktionen herum gruppiert. Das beste Beispiel dazu sind Portale und Online-Shops mit Community-Funktionalität oder (Web-)Informations-Portale mit Community-Funktionalität.
Online-Shops
Der Fokus bei Online-Shops ist der Vertrieb eines bestimmten Sortiments von Produkten. Motiviert
von (Hagel und Armstrong 1997) haben verschiedene Betreiber von Online-Shops ihre Dienste mit
Community-Funktionalität ergänzt. Ziele dabei waren die Erhöhung der Kundenbindung und die
Verbesserung der Kundenbetreuung durch Ermöglichung der Kommunikation unter den Kunden. Als
Möglichkeiten des gemeinschaftlichen Handelns wurden dabei vor allem der Informationsaustausch
unter den Kunden und das gemeinschaftliche Bestellen von Waren betrachtet. Hagel und Armstrong
(1997) gehen in diesem Zusammenhang auch darauf ein, dass diese Schaffung von Kommunikationsmöglichkeiten für Kunden die Machtverteilung zwischen Produzenten und Kunden deutlich verändert.
Schubert (2000) beschreibt sehr detailliert das Konzept hinter der Nutzung von Community-Funktionalität bei Online-Shops. Sie betitelt das generalisierte Konzept dabei mit „Partizipativer Produktkatalog“. Grundkonzepte hierbei sind die Ermöglichung und Zugänglichmachung von Produktbewertungen durch und für Kunden. Meist wird dieser Dienst noch um Empfehlungsfunktionen ergänzt.
Ein prominentes Beispiel, das viele solche Community-Funktionalitäten umsetzt ist der Online-Shop
von Amazon.com.
Informations-Portale
(Web-)Informations-Portale bieten meist ein Informationsangebot, das von einem Editor-Team oder
Fremdanbietern zusammengestellt und gepflegt wird. Neben der Möglichkeit zur personalisierten
Auswahl aus dem redaktionellen Informationsangebot werden auch solche Portale vielfach um die
Möglichkeit zum Informationsaustausch zwischen den Benutzern ergänzt. Beispiele hierfür sind Foren zu den einzelnen redaktionellen Inhalten bei heise.de oder zeit.de. In Anlehnung an die Diskussion zu Online-Shops kann dies als „Partizipativer Produktkatalog“ für Informationsprodukte betrachtet
26
2.3 Community-Unterstützungssysteme
werden. Neben der Anreicherung der Informationen bietet diese Funktionalität dabei auch wieder die
Möglichkeit, durch Awareness andere Personen zu finden.
Wissensmanagement
Einer der Nutzen von Beteiligung in Communities war die Erweiterung des eigenen Wissens- und
Erfahrungsschatzes auf den der ganzen Community. Die Mitglieder der Community arbeiten gemeinschaftlich an Austausch und der Nutzbarmachung von Wissen. Die Community bietet einen
Kontext für eingestellte Information und in der Community agierende Personen und sorgt dadurch
für eine automatische Vorfilterung.
Viele Anwendungen zum Wissenmanagement in Unternehmen stützen sich deshalb auf CommunityKonzepte. Dienste in solchen Wissenmanagement-Anwendungen sind die Bereitstellung von Kommunikationsmöglichkeiten und Matchmaking-Funktionalitäten. Beispiele für solche Anwendungen
sind das ShareNet-System bei Siemens ICN und Eureka bei Xerox. Nachdem es sich hierbei um
Communities handelt, die meist um die Gemeinsamkeit einer Tätigkeit bzw. eines Verfahrens herum
gruppiert sind, spricht man häufig auch von „Communities of Practice“ (Wenger 1998).
2.3.3
Abgrenzung
Community-Unterstützungssysteme decken einen breiten Bereich von Funktionalitäten ab. Trotzdem lohnt sich die Abgrenzung von einigen anderen verwandten Konzepten, speziell Groupware und
Portale.
Communityware versus Groupware
Mit „Groupware“ werden Werkzeuge zur Unterstützung von Arbeitsgruppen bezeichnet (Borghoff
und Schlichter 2000). Dabei wird angenommen, dass eine Arbeitsgruppe aus einer eher kleinen
Zahl von Personen besteht, die sich gegenseitig kennen, ein gemeinsames Ziel verfolgen bzw. in
einen gemeinsamen Prozess eingebunden sind. Der Fokus der Anwendungen liegt meist auf der
Unterstützung von Koordination zwischen den Gruppenmitgliedern.
Community-Unterstützungssysteme dagegen gehen von einer (größeren) lose gekoppelten Gruppe
von Personen aus, die sich eher nicht alle gegenseitig kennen. Hauptfunktionalitäten sind deshalb das
Finden von Personen und die Kommunikation an sich. Die Unterstützung von Koordination spielt bei
der Unterstützung von Communities kaum eine Rolle.
Communityware versus Portale
Neben Groupware haben Portale die größte Ähnlichkeit zu Community-Unterstützungssystemen.
Portale haben als Hauptmerkmale, dass sie einen gemeinsamen Einstiegspunkt zu Diensten bilden,
der für jeden Benutzer personalisierbar ist. Momentan sind diese Dienste hauptsächlich die Bereitstellung redaktioneller Inhalte sowie von Transaktionsdiensten (z.B. die Abwicklung von Bestellungen
oder Anmeldungen).
Normalerweise isolieren Portale ihre Benutzer voneinander. Die Kommunikation zwischen den Benutzern oder das Gewahrsein von anderen Benutzern wird also nicht unterstützt. Wie im vorhergehen-
27
2 Community-Unterstützung
den Unterabschnitt ausgeführt, ist allerdings ein Zusammenwachsen von Portalen und CommunityUnterstützungssystemen zu bemerken. Um die redaktionellen Inhalte und Transaktionsdienste herum
werden Kommunikations- und Awareness-Funktionalitäten bereitgestellt.
2.3.4
Community-Frameworks
Zusätzlich zu den in Abschnitt 2.3.2 aufgeführten konkreten Anwendungen und Plattformen gibt es
weiterhin verschiedene kommerzielle und nicht-kommerzielle Lösungen zur Vereinfachung des Aufbaus von Community-Plattformen. Solche Lösungen sind meist Web-basiert, stellen Basisfunktionalitäten wie Benutzerverwaltung und Inhalteverwaltung bereit und erlauben eine mehr oder weniger
einfache Erweiterung und Konfiguration.
Beispiele für Community-Frameworks sind das ArsDigita Community System und der Cassiopeia
Community Application Server (www.cassiopeia.com). Auch dieser Klasse zuzurechen sind der
Web-Applikationsserver Zope (www.zope.org) und Web-basierte Groupware-Portale wie phpGroupware (www.phpgroupware.org).
Nachdem sich diese Lösungen im Kontext von Community-Unterstützung teilweise ähnlichen Probleme gestellt haben, wie die dieser Arbeit zugrundeliegende Systementwicklung (einfacher Aufbau
von Plattformen, einfache Anpassbarkeit), können die dort realisierten Lösungen in manchen (implementierungsnahen) Bereichen als Anregung benutzt werden.
Zum ArsDigita Community System legt Greenspun (1999) zum Beispiel bereits 1999 eine erste pragmatische Lösung für eine modulare Architektur vor. Er definiert
„The big solution is a configurable set of software modules that will
1. keep a database of users, how to contact them, and how private they want their personal
information kept
2. keep a database of site content, who contributed it, and how each piece relates to the others
3. keep track of which users have looked at which pieces of content
4. keep track of which users are costing the community time and money
5. keep track of how users are coming into the site and which external links they are selecting
(clickthroughs)
6. if a commercial site, keep track of which advertisers’ banner ads have been served and to
whom and whether or not they were effective
7. help the site maintainers keep in contact with different classes of users“
Diese Aufstellung zeigt ein klares Verständnis der Charakteristika von Community-Unterstützung,
und entspricht in großen Teilen bereits dem Vorschlag, den ich in Abschnitt 2.4.2 mache und in
Kapitel 3 detailliere.
Trotz des Nutzens von Community-Frameworks als Anregung, insbesondere für technische Teillösungen zur Konfigurierbarkeit einer Plattform, finden sich dort bisher noch keine Lösungen für die
eigentlich gewünschte Interoperabilität. So wird insbesondere bei der Definition der Komponetenschnittstellen und Datenmodelle wenig Wert auf Generalität gelegt.
28
2.4 Anforderungen an Community-Unterstützungssysteme
2.4
2.4.1
Anforderungen an Community-Unterstützungssysteme
Anforderungsschwerpunkte
Aus den in diesem Kapitel dargestellten allgemeinen Betrachtungen zu Communities ergeben sich
verschiedene Anforderungen an deren Unterstützung. Um die Anforderungsschwerpunkte herauszuarbeiten, fasse ich im Folgenden die wichtigsten Charakteristika von Communities und der Aktivität
in Communities zusammen und bespreche kurz die daraus folgenden Anforderungen an CommunityUnterstützungssysteme und -Plattformen.
1. Personen sind normalerweise Mitglieder in verschiedenen Communities
Für Community-Unterstützungs-Plattformen bedeutet dies, dass es einfach sein sollte verschiedene Plattformen parallel zu nutzen. Der aktuelle Stand ist hier nicht befriedigend. Auch mit
intuitiven Web-Benutzungsschnittstellen und einer Single-Sign-On-Lösung (d.h. dasselbe Login und dasselbe Passwort auf allen Plattformen) ist der Aufwand, regelmäßig mit verschiedenen Plattformen zu interagieren zu groß für die meisten Benutzer. Es gibt einen großen
Bedarf an nicht-interaktiven Werkzeugen oder Benutzungsschnittstellen zum einfachen Veröffentlichen von Informationen auf verschiedenen Plattformen und zum einfachen Abfragen von
Informationen bei verschiedenen Plattformen.
Hierfür schlagen wir eine Trennung von Benutzungsschnittstelle und Community-Diensten
vor, die eine Realisierung von persönlichen Informationsagenten zum Zugriff auf verschiedene
Plattformen erlaubt. Eine Alternative dazu wäre der Zugriff auf alle Informationen über eine
der Plattformen, die dafür Informationen von den anderen Plattformen bezieht. Auch hier hätte
man nur eine Benutzungsschnittstelle, die der Benutzer zu bedienen hat. Erste Ansätze zur
Vereinfachung der Interaktion mit verschiedenen Plattformen sind auch schon darin zu sehen,
dass Notifikationen aus den Plattformen auf einer E-Mail-Adresse gebündelt werden können.
2. Communities können ad-hoc und durch jedermann initiiert werden
Dies bedeutet für Unterstützungsplattformen, dass es möglich sein muss, sie einfach einzurichten und anzupassen. Um dies möglich zu machen wird eine modulare und einfach anpassbare
Grundarchitektur für Community-Unterstützungssysteme benötigt.
3. Persönliche Interaktion und Wissen über andere Mitglieder ist wichtig in einer Community
Community-Unterstützung bedeutet nicht, dass von Mitgliedern Information gesammelt wird
und diese Information anderen Mitgliedern anonym zur Verfügung gestellt wird. Der Austausch von Information in einer Community sollte immer als Kommunikation zwischen Autor
der Information und Konsument der Information gesehen werden. Die Verbindung einer Information mit dem Autor ist insbesondere wichtig für die Interpretation der (oft subjektiven)
Aussagen. Ein weiter Grund für die Notwendigkeit einer engen Verknüpfung zwischen Information und Autor ist die Nutzung von publizierter Information zur Identifikation von potentiellen Partnern für direkte Kommunikation und für die Vermittlung von Awareness zu Aktivitäten
von Community-Mitglieder.
Im Zusammenhang mit über Communities ausgetauschte Information und auch getrennt davon ist also die Identifikation von anderen Mitgliedern und die Vermittlung von Informationen
zu anderen Mitgliedern eine wichtige Funktion von Communities. Aus diesem Grund müssen
29
2 Community-Unterstützung
Community-Unterstützungssysteme Zugriff auf die Profile andere Benutzer bereitstellen. Neben Fragen der Aquise und Kodierung solcher Informationen wirft dies vor allem Probleme
bezüglich der Wahrung der Privatsphäre der Community-Mitglieder auf.
4. Interaktion mit Community-Unterstützungssystemen passiert nicht nur von Desktop-PCs aus
Der Zugriff auf Community-Plattformen muss von überall aus und während verschiedenster
Tätigkeit möglich sein. Speziell wird mobiler und ubiquitäre Zugang zu Community-Plattformen benötigt. Dies schließt auch Benutzungsschnittstellen ein, die von mehreren Personen
gleichzeitig genutzt werden können (wie Tapeten-ähnliche berührungssensitive große Wandbildschirme).
Aus diesen grundlegenden Anforderungen ergeben sich die wichtigsten Arbeitsgebiete im Zusammenhang mit der Bereitstellung von Community-Unterstützung:
Schaffung einer modularen Architektur um eine einfache Anpassbarkeit, Interoperabilität und
Nutzung mehrerer Plattformen über eine Benutzungsschnittstelle zu erlauben.
Realisierung einer plattform-übergreifenden Verwaltung von Benutzerprofilen und Zugriffsrechten darauf und Nutzung dieser Information für die Bereitstellung von Awareness und Personalisierung.
Entwurf ubiquitärer und mobiler Benutzungsschnittstellen zum Zugriff auf die CommunityPlattformen.
Modularisierung,
Interoperabilität
CommunityUnterstützung
Benutzerprofile,
Awareness, Personalisierung
ubiquitäre
Benutzungsschnittstellen
Abbildung 2.2: Arbeitsgebiete im Zusammenhang mit Community-Unterstützungssystemen
In der weiteren Arbeit werden die ersten beiden Arbeitsgebiete näher behandelt und Lösungen dafür
hergeleitet. Neue und ubiquitäre Benutzungsschnittstellen für Community-Unterstützungssysteme
werden nicht näher behandelt. Durch die mit der Modularisierung kommende Trennung von Diensten
und Benutzungsschnittstellen ist es allerdings sehr einfach möglich, verschiedenste ubiquitäre Schnittstellen zu realisieren. In (Koch u. a. 2001d), (Koch und Schlichter 2001), (Agostini u. a. 2000), (Grasso u. a. 2000), (Grasso u. a. 1999), (Koch u. a. 1999) und (Grasso u. a. 1998) sind meine bisherigen
Arbeiten in diesem Bereich dokumentiert.
30
2.4 Anforderungen an Community-Unterstützungssysteme
2.4.2
Unterstützungsfunktionalitäten
Nach der Behandlung von Communities und Community-Unterstützung soll in diesem Abschnitt eine
Verallgemeinerung der Unterstützungsfunktionalitäten vorgenommen werden, um eine Grundlage für
die Konzeption einer generischen Unterstützungsplattform zu legen.
De Michelis (2001) führt folgende allgemeinen Ideen zur Community-Unterstützung aus:
„support practice (not rules)“
„support the learning process (community knowledge)“
„integrate places, create new places“
„support communities (plural!) - take into account that people live in many communities continous movement“
In den vorhergehenden Abschnitten wurde Community-Unterstützung als Unterstützung einer Gruppe von Personen bei der Kommunikation untereinander und beim Sich-Finden beschrieben. Die dabei
herausgearbeiteten Hauptfunktionalitäten für Community-Unterstützung sind:
Unterstützung der direkten Kommunikation zwischen Community-Mitgliedern (über eine Community-Plattform)
Unterstützung der indirekten Kommunikation zwischen Community-Mitgliedern durch Möglichkeiten zum Publizieren und Recherchieren von Information - Im Gegensatz zu reinen Informationsystemen ist hier wichtig, dass die Verbindung zwischen publizierendem Benutzer
und Information erhalten und einfach nachvollziehbar bleibt. Es handelt sich bei der auf
Community-Plattformen publizierten Information nämlich meist um subjektive Information
mit Bezug zum publizierenden Benutzer (um „warme“ Information) - hierzu zählt auch die
Möglichkeit Kommentare zu Informations-Items zu publizieren.
Unterstützung des Findens von anderen Community-Mitgliedern (zum Zwecke der direkten
Kommunikation) - Wie bei der indirekten Kommunikation kann dies über Pull-Mechanismen
oder über Push-Mechanismen (Empfehlungen, Awareness) geschehen.
Bereitstellung von Awareness über Benutzer und Aktivitäten auf der Plattform - Es werden
proaktiv und personalisiert Informationen über möglicherweise interessante Informationen und
Kontakte dargestellt.
Aus diesen grundlegenden Unterstützungskonzepten und den Erfahrungen bei der Umsetzung verschiedener Plattformen (siehe hierzu auch Abschnitt 3.6) ist die im folgenden motivierte Strukturierung für die Funktionalitäten einer Community-Plattform (und damit eines generischen CommunityUnterstützungssystems) entstanden.
Eine Community-Plattform muss zuerst einmal synchrone und asynchrone direkte Kommunikationskanäle bieten. Dabei sind verschiedene Möglichkeiten zur Adressierung von Kommunikationsempfängern und zum Erreichbarkeitsmanagement vorzusehen (Koch u. a. 2002a). Dieser Funktionalitätsblock wird in der Mitteilungsverwaltung abgedeckt.
31
2 Community-Unterstützung
Für die indirekte Kommunikation ist es notwendig, Informationen zu publizieren und über längere
Zeit für potentielle Interessenten zu speichern und zur Erstellung von Anmerkungen verfügbar zu halten. Diese Funktionalität mit den Pull- und Push-Mechanismen zum Zugriff darauf (inkl. Awareness)
ist in der Inhalteverwaltung realisiert.
Für die Personalisierung und Empfehlungsgenerierung der Kommunikations- und Inhaltsdienste werden Informationen über die Community-Mitglieder benötigt. Ein weiterer Anwendungsbereich für
Mitgliederdaten ist das Matchmaking und die Mitglieder-Awareness. Aus diesem Grund muss eine
Community-Plattform als zentrale Komponente eine Mitgliederprofilverwaltung besitzen. Die Mitgliederprofilverwaltung muss transparent für die Mitglieder sein, zu denen Daten gespeichert sind
und muss auch für andere Mitglieder (eingeschränkt) zugänglich sein.
Welche Benutzer der Plattform zusammen gehören, wird in Benutzerlisten verwaltet. Dies trägt dem
Umstand Rechnung, dass eine Plattform häufig mehrere Communities bedient, bzw. sich in einer
Community offene und geschlossene Unter-Communities entwickeln.
Zusammengefasst ergeben sich also folgende Funktionalitäten für ein Community-Unterstützungssystem:
Benutzerprofilverwaltung
Inhalteverwaltung
Kategorienverwaltung und Benutzerlistenverwaltung
Mitteilungsmanagement
Awareness/Matchmaking
Personalisierung, Empfehlungsgenerierung (für Mitteilungen und Inhaltsverwaltung)
Diese Funktionen sollten über verschiedene Benutzungsschnittstellen zugänglich sein. Im folgenden
Kapitel 3 wird diese Aufteilung als Basis für ein Modularisierungkonzept für Community-Unterstützungssysteme wieder aufgegriffen. Als zusätzlicher Dienst wird dort auch noch die Kontextverwaltung
eingeführt.
32
Kapitel 3
Modularisierung von
Community-Unterstützungssystemen
„People cannot share knowledge if they do not speak a common language.“,
(Davenport und Prusak 1998)
Ein Ziel dieser Arbeit ist es, ein Konzept für interoperable Community-Unterstützungssysteme
zu erarbeiten. Dabei soll sowohl der Aufbau neuer Unterstützungsplattformen aus vorhandenen Bausteinen, als auch die Zusammenarbeit mehrerer Plattformen und die Zusammenarbeit
von Client-Werkzeugen mit Community-Plattformen möglich sein. Grundidee dazu ist die komponentenorientierte Konstruktion von Community-Plattform, d.h. die Aufteilung von Community-Plattformen entsprechend ihren Hauptfunktionalitäten in generische Module, die über klare
Schnittstellen verfügen und sich einfach kombinieren, konfigurieren und nutzen lassen. In diesem
Kapitel wird die in meiner Arbeit abgeleitete Architektur für Community-Unterstützungssysteme vorgestellt und es werden die Systeme präsentiert und diskutiert, die Teile der Architektur
umsetzen.
Kapitelinhalt
3.1
3.2
3.3
3.4
Grundkonzepte der Modularisierung
Datenkonzepte . . . . . . . . . . . . .
Community-Dienste . . . . . . . . . .
Konfigurierung . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
34
40
54
64
Grundidee des Architekturkonzeptes für Community-Unterstützungssysteme ist es, Komponentenkonzepte und Modularisierung so zu nutzen, dass Community-Unterstützungssysteme aus generischen Bausteinen aufgebaut und angepasst werden können, sowie einfach erweitert werden können.
Durch offene Schnittstellen soll erreicht werden, dass Community-Unterstützungssysteme einfach
miteinander kommunizieren können und von verschiedensten Werkzeugen aus angesprochen werden
können (nicht nur von Web-Browsern aus). Dazu ist die Identifikation von konkreten Komponenten
und die Modellierung von allgemeinen Schnittstellen und Datenstrukturen notwendig. Nach einer
Einführung in die Themen Modularisierung und Agenten-basierter Modellierung (Abschnitt 3.1) wird
deshalb in diesem Kapitel aus den Anforderungen an Community-Unterstützung eine Aufteilung in
Komponenten zusammen mit den jeweiligen Schnittstellen hergeleitet und ausgeführt (Abschnitte 3.2
und 3.3), sowie auf die Konfigurierung der Komponenten allgemein eingegangen (Abschnitt 3.4).
Basis dieses Kapitels sind die im Projekt Cobricks und seinen Unterprojekten erarbeiteten und getesteten Unterstützungsfunktionalitäten und Architekturkonzepte. Dieses Kapitel fasst die in folgenden
33
3 Modularisierung von Community-Unterstützungssystemen
Veröffentlichungen erarbeiteten und dokumentierten Ergebnisse konsistent zusammen und führt sie
weiter: (Koch 2002b), (Koch 2002e), (Koch 2002f), (Koch u. a. 2002a), (Borghoff u. a. 2001), (Koch
2001a), (Koch u. a. 2001a), (Koch u. a. 2001b), (Koch u. a. 2001c), (Koch und Lacher 2001), (Koch
2000) und (Koch und Lacher 2000). Insbesondere werden in diesem Abschnitt die Schnittstellen und
Datenstrukturen des erarbeiteten Architekturmodells konkretisiert. Bei der Konzeption des Modells
für Community-Unterstützungssysteme wurden dabei viele Ideen aus dem Umfeld der Agentenmodellierung und -programmierung aufgegriffen. Aus diesem Grund werden diese Themen auch im
ersten Abschnitt dieses Kapitels ausführlich aufgegriffen. Die Realisierung selbst ist dann allerdings
als einfache Komponenten-Lösung mit klassischen Schnittstellen ausgeführt.
3.1
Grundkonzepte der Modularisierung
Das Thema „Modularisierung“ bei Software ist so alt wie die Programmierung selbst. Das Ziel dabei
ist es meist ein Softwaresystem in Komponenten zu zerlegen bzw. aus Komponenten aufzubauen, die
wiederverwendbar sind,
einfach testbar sind,
zu verschiedenen Anwendungen kombinierbar sind.
Hieraus leitet sich auch die Grunddefinition von „Komponente“ ab. Eine Komponente besteht aus
verschiedenen (Software-)Artefakten. Sie ist wiederverwendbar, abgeschlossen, stellt Dienste über
wohldefinierte Schnittstellen zur Verfügung, verbirgt ihre Realisierung und kann in Kombination mit
anderen Komponenten eingesetzt werden, die zur Zeit der Entwicklung nicht unbedingt vorhersehbar
sind. Szyperski (1998, S.34) schreibt beispielsweise:
„A software component is a unit of composition with contractually specified interfaces and explicit context dependencies only. A software component can be deployed independently and is
subject to composition by third parties.“
Im Zusammenhang mit Software-Engineering und Entwurfsmethoden wurde dabei vor allem auf
Schnittstellenbeschreibung und auf allgemeine Vorgehensmodelle zum Finden geeigneter Komponenten oder Module eingegangen.
Herausforderungen und mögliche Probleme beim Entwurf von komponentenbasierten Systemen werden in verschiedenen Veröffentlichungen diskutiert (z.B. (Sparling 2000; Overhage 2002)). Overhage
(2002) gibt schlussfolgernd drei Gründe dafür an, warum sich die Umsetzung von komponentenorientierten Anwendungsentwicklungen in der Praxis als schwierig erwiesen hat:
Mangel an technischen Standards
Fehlen einer (konzeptionellen) Komponenten-Terminologie mit einheitlichem Spezifikationsrahmen
Fehlen fachlicher Standards
34
3.1 Grundkonzepte der Modularisierung
Ein weiteres Problem mit komponentenorientierten Systemen ist, dass die für eine klare Entkoppelung der Komponenten notwendige strenge Kontrolle der Beziehungen zwischen Daten über die
Komponentengrenzen hinweg häufig vernachlässigt worden ist.
In dieser Arbeit soll für den konkreten Anwendungsbereich der Community-Unterstützungssysteme
eine geeignete Modularisierung gefunden werden, d.h. ein fachlicher Standard für diesen Bereich entwickelt werden. Dabei wird vor allem auf die Anforderungen an Community-Unterstützungssysteme
eingegangen, die in Kapitel 2 erarbeitet worden sind. Im Folgenden werden zuerst die zu benutzenden Grundkonzepte diskutiert (Abschnitt 3.1) und dann die Datenstrukturen und die Modularisierung
für den Community-Unterstützungsbereich konkret motiviert (Abschnitte 3.2 und 3.3).
Möglich gemacht haben Modularisierung die Einführung von (rekursiven) Prozeduraufrufen und lokalen Variablen in die Konzepte von Programmiersprachen. Neuere Konzepte und wichtige Technologien im Zusammenhang mit Modularisierung sind dabei:
Entwurfsmuster (Design-Patterns)
Verteilte Anwendungen (RPC, SOAP, Web-Services)
Agenten
Diese Technologien realisieren dabei verschiedene Abstraktionsebenen: Entwurfsmuster werden zur
Darstellung allgemeiner Konzepte der Zusammenarbeit verwendet. Die Arbeiten um Agenten beschäftigen sich mit der Modellierung von komplexen Zusammenarbeitsbeziehungen und mit der
Realisierung dieser Interaktion auf hohem Abstraktionsniveau. Im Kontext Verteilter Anwendungen
(bzw. Verteilter Objekte) werden schließlich Möglichkeiten zur Realisierung verteilter Komponentensysteme auf niedrigem Abstraktionsniveau untersucht und realisiert.
Nachfolgend werden diese Grundtechnologien der Modularisierung kurz dargestellt und ihre Anwendung im Bereich der Community-Unterstützungssysteme diskutiert. Im folgenden Abschnitt beginnt
dann die Vorstellung und Motivation einer konkreten Lösung für den Anwendungsbereich.
3.1.1
Entwurfsmuster
Beim Entwurf von (objektorientierten) Softwaresystemen stellt sich die Aufgabe, passende Objekte
zu finden und diese in der richtigen Granularität in Klassen umzusetzen und Beziehungen zwischen
ihnen zu definieren. Das Problem dabei ist, dass eine große Erfahrung zum Finden guter Lösungen für
komplexe Entwürfe notwendig ist. Dieses Expertenwissen war nur sehr schwer zu dokumentieren.
Mit „Design Patterns“ (Entwurfsmuster) wurde auf der OOPSLA-Konferenz 1987 die schon seit
längerem in der Architektur benutzte Idee, Entwurfsmuster zur Darstellung von Designerfahrung zu
benutzen, vom Softwareengineering aufgegriffen und „software design patterns“ eingeführt. Im Jahr
1995 erschien dann das vielbeachtete Buch „Design Patterns“ von Gamma et al. mit einer Sammlung
von Entwurfsmustern für Software.
Entwurfsmuster sind allgemein ein Konzept um immer wieder auftretende Probleme sowie bewährte
Lösungen schriftlich zu dokumentieren. In strukturierter Form wird festgehalten, in welchem Kontext das Problem auftritt, welche Anforderungen zu beachten sind und welche Lösungen sich dafür
anbieten.
Entwurfsmuster kann man für die Entwicklung jeder Art von Softwaresystem einsetzen. Im Kontext
von Community-Unterstützungssystemen würden sich Entwurfsmuster anbieten, um Kombinationen
35
3 Modularisierung von Community-Unterstützungssystemen
von verschiedenen Funktionalitäten und Entwurfsoptionen bei der Gestaltung einer CommunityUnterstützungsanwendung festzuhalten. Ähnliche Arbeiten hat Borchers (2000) für Interaktionsdesign durchgeführt. Auch für Human-Computer-Interaction (HCI) und Groupware allgemein gibt
es schon Ansätze zur Beschreibung von Basiskonzepten mit Entwurfsmustern (siehe hierzu (Erickson 2000; Schuemmer u. a. 2002)). Nachfolgend als Beispiel eine Pattern-Beschreibung des RoomKonzeptes aus dem Groupware-Bereich (Schuemmer u. a. 2002):
NAME ROOM
INTENT Provide the group with a place, where they can meet for collaboration.
FAMILY Collaborative Virtual Environment
Also Known As Area, Place
PROBLEM When distributed users want to collaborate, they have to deal with many technical issues
to initiate the collaboration. They have to set up communication channels and make the shared
material available to all group members. Results of the shared collaboration often need to be captured
for later reference. All these tasks are error-prone and require technical expertise, which users often
don’t have.
SCENARIO (...)
CONTEXT Users are distributed and want to work synchronously together using communication
channels and documents. Communication takes place using external tools that introduce additional
overhead regarding the connection management. Documents cannot easily be shared because the
group has no common place to leave the documents. There are technological novices in the group,
which need a simple to use interface to find and join cooperation.
SOLUTION Therefore: Model a virtual place for collaboration as a room, which can hold documents
and participants. Ensure that users, who are in the same room at the same time, can communicate by
means of a communication channel that is automatically established between all users in the room.
Make sure that all users can perceive all documents that are in the room. That includes that changes
on these documents are visible to all members in the room.
PARTICIPANTS The room contains users and documents and provides a communication channel
as well as shared editors. Each room has a well-defined border that defines, what is in the room and
what is outside the room. A room has an identification that allows the user to find it. (...)
RELATED PATTERNS
– Door: Doors are means for controlling the access to a room and therefore providing the rooms
participants with privacy. They also help to interpret a set of rooms as a coherent world, in
which interaction can take place.
– (...)
– Shared Workspace: A shared workspace allows the users to work synchronously on a shared
document. Often shared workspaces form the document-interface of a room. This then means
that a room contains the document that is edited in the shared workspace.
Die Idee von Entwurfsmustern für Community-Unterstützungssysteme soll in dieser Arbeit aber nicht
weiter verfolgt werden. Patterns sind für den Entwurf neuer Systeme gedacht – zur Kommunikation und zum Erfahrungsaustausch zwischen (Software-) Designern. Reale Einsatzpotentiale für
Community-Unterstützungssysteme sind eher bei der Kombination von Funktionalitäten für eine konkrete Plattform und weniger beim Entwurf von generischen Softwarekomponenten zu erwarten. Wir
werden also mit klassischen Methoden generische Community-Unterstützungskomponenten entwerfen und diese dann mit verschiedenen Methoden kombinieren und anpassen. Zu letzterem könnten
Pattern-Ideen später einen interessanten Beitrag liefern.
36
3.1 Grundkonzepte der Modularisierung
3.1.2
Verteilte Anwendungen und Komponenten
Komponentenorientierte Systeme zeichnen sich durch die zentrale Eigenschaft aus, dass die Komponenten nur über klar definierte Schnittstellen von anderen Teilen des Systems abhängig sind. Für
einen ausführlichen Überblick über Komponenten(technologien) siehe (Szyperski 1998).
Unter einer verteilten Anwendung versteht man ein Softwaresystem, das sich aus verschiedenen
Komponenten zusammensetzt, welche potentiell auf verschiedene Rechner verteilt werden können,
und welche zur Erfüllung ihrer Aufgabe miteinander kommunizieren müssen (Borghoff und Schlichter 2000). Durch die Aufteilung der Komponenten auf verschiedene Adressräume und heterogene
Ausführungsumgebungen besteht bei Verteilten Systemen eine besondere Notwendigkeit zur klaren
Definition von Schnittstellen zwischen den Komponenten.
Erste Technologien zur Unterstützung der Realisierung von Verteilten Systemen waren entfernte Prozeduraufrufe (Remote Procedure Calls, RPC). Zusammen mit Objekt- und Komponentenmodellen
wie DCOM und Corba stellt dies die technische Grundlage für die Zusammenstellung einer Anwendung aus verschiedenen Komponenten dar.
Aufbauend auf diesen Basisdiensten sind inzwischen weiterreichende Technologien wie EnterpriseJava-Beans (EJB) oder Web-Services verfügbar. Dabei handelt es sich meist um Frameworks aus
einem RPC-Mechanismus (RMI bei EJB, SOAP bei Web-Services) zusammen mit Standards für das
Finden und Ansprechen von Objekten und für das Publizieren von Schnittstellen.
Unter Web-Services versteht man beispielsweise Software-Komponenten, die mittels Internet-Standards wie XML und SOAP interagieren. Sie können von anderen Web-Services genutzt werden, von
Service-Providern für beliebige Nutzer angeboten werden oder auch für die Benutzung durch Endbenutzer direkt ausgestattet werden. Im Vergleich zu klassischen Web-Angeboten sollen mit WebServices der eigentliche Dienst und die Benutzungsschnittstelle getrennt werden. Für eine detailierte
technische Beschreibung zu Web-Services sei auf die Seiten des World-Wide-Web-Consortiums W3C
unter www.w3c.org verwiesen.
Gemeinsam ist all diesen Konzepten, dass Komponenten mit ihren technischen Schnittstellen modelliert werden. Dabei geht man heute meist von Objekten und Funktionsschnittstellen dieser Objekte
(bzw. der Klassen aus denen sie instantiiert sind) aus. Folgendes Beispiel zeigt eine Beschreibung
einer Schnittstelle in Corba-IDL:
module idrepository {
typedef sequence<string> StringList;
interface IDRepositoryCorbaInterface {
string getDataGroup(in string identityID,
in string datagrouppath);
void putDataGroup(in string identityID,
in string datagrouppath,
in string xml);
StringList getGroupPaths(in string identityID);
StringList getUserProfileList();
};
};
Die Grundidee der Trennung von Client und Server, von Basisdienst und Benutzungsschnittstelle soll
auch für die Konzeption einer Community-Unterstützungs-Infrastruktur herangezogen werden. Die
Dienstkomponenten sollten völlig unabhängig von möglichen Benutzungsschnittstellen sein.
37
3 Modularisierung von Community-Unterstützungssystemen
Hauptnachteil der heutigen Komponentenkonzepte ist die auf niedriger Abstraktionsebene gehaltene
Schnittstellen-Semantik. Durch eine entsprechend abstrakte Definition der Schnittstelle und allgemeine Datenstrukturen lässt sich dieses Problem allerdings mildern. Siehe hierzu auch den folgenden
Abschnitt zu Agenten(-schnittstellen).
3.1.3
Agenten
Ein Agent ist charakterisiert als eine abgrenzbare Softwareeinheit, die zur Erreichung der von ihrem
Benutzer oder Entwickler vorgegebenen Ziele und unter der Wahrung seiner Interessen flexibel und
autonom mit ihrer Umgebung und anderen Agenten interagiert (Weiß 2001).
Ausgehend von diesem Agentenkonzept zielt agentenorientiertes Software-Engineering vor allem auf
Anwendungen ab, die mindestens eines der folgenden Merkmale aufweisen:
Es sind viele dynamisch interagierende Komponenten involviert,
die nicht unbedingt alle a priori bekannt sind
die eine Fremdkontrolle nicht oder nur beschränkt gestatten (z.B. aufgrund individueller und
konfliktträchtiger Ziele, Interessen, Rechte und Pflichten)
zwischen denen elaborierte Kommunikations- und Koordinationsprozesse erforderlich sind.
Solche Anwendungen finden sich mit zunehmender Rechnervernetzung und Plattform-Interoperabilität in verschiedensten Bereichen.
Es gibt drei herausragende Merkmale von Agenten: Flexibilität, Autonomie und Interaktivität. Dabei
bedeutet Flexibilität, dass ein Agent sowohl zu reaktivem (d.h. Umweltveränderungen in angemessener Zeit berücksichtigendem) als auch zu proaktivem (d.h. in Hinblick auf Zwischen- und Endziele
vorausschauendem) Verhalten fähig ist. Autonomie besagt, dass ein Agent bei Bedarf selbständig und
unabhängig Entscheidungen über von ihm auszuführende zielrelevante Handlungen treffen kann und
in diesem Sinn Kontrolle über seinen internen Zustand und sein Verhalten besitzt. Schließlich impliziert Interaktivität insbesondere, dass Agenten auf hohem Niveau in Wechselwirkung treten können, also etwa im Rahmen von automatisierten Verhandlungen, Vertragsabschlüssen und verteilten
Planungs- und Problemlösungsprozessen.
Eine weitgehend akzeptierte Minimaldefinition für den Begriff Agent ist:
„An autonomous agent is a system situated within and a part of an environment that
senses that environment and acts on it, over time, in pursuit of its own agenda and so as
to effect what it senses in the future.“ (Franklin und Graesser 1996)
Im Gegensatz zu (verteilten) Objekten, welche nur Identität, Zustand und Verhalten kapseln, kapseln Agenten zusätzlich noch Freiheitsgrade und Ziele und bieten eine flexiblere Kommunikationsschnittstelle. Es handelt sich nicht um zwei konkurrierende Modelle, sondern um zwei qualitativ
verschiedene Abstraktionsebenen. Das Agenten- und das Objektkonzept ermöglichen auf qualitativ
verschiedenen Ebenen gleichermaßen relevante System- und Entwicklungssichten, die sich sinnvoll
ergänzen statt gegenseitig ausschließen (Weiß 2001).
Die Eigenschaft der Kommunikation ist für alle Agenten existentiell. Die Kommunikation schafft für
den Agenten die Voraussetzung, die Umwelt wahrzunehmen und diese über den eigenen Zustand zu
38
3.1 Grundkonzepte der Modularisierung
informieren bzw. Aufgaben zu übernehmen. Zur Umwelt des Agenten zählt das ihn „beherbergende“
Agentensystem, die Benutzer des Agentensystems und andere Agenten, welche auf dem beherbergenden oder einem anderen Agentensystem agieren.
Die Kommunikation zwischen Agenten stellt deshalb den umfangreichsten Teil der Forschung zu
Agenten dar. Es wird unterschieden zwischen den Kommunikationsmechanismen, welche sich mit
den technischen Details des Versendens, Transportierens und des Entgegennehmens von Nachrichten
beschäftigen, und der Kommunikationssprache, die sich mit Syntax und Semantik einer Sprache für
den Austausch von Wissen beschäftigt. Ziel bei letzterem ist die Formalisierung von Konversationen
zwischen Agenten ohne zuviel Ausdrucksmächtigkeit zu verlieren. Diese Ansätze sind auch für die
Konzeption von Community-Unterstützungssystemen interessant. Einerseits könnten die Komponenten des Systems als Agenten modelliert werden, die untereinander interagieren, andererseits könnten
Benutzeragenten mit den (Agenten-)Komponenten des Systems interagieren.
Die Grundidee bei der notwendigen Formalisierung der Kommunikation zwischen Agenten orientiert
sich an Versuchen zur Analyse menschlicher Konversationen in der Sprechakttheorie. Diese Ansätze
gehen zurück auf den Philosophen Ludwig Wittgenstein (1889-1951). Ausgehend von den Arbeiten
Wittgensteins und Entwicklungen der Sprachphilosophie haben in den 1960er Jahren die Philosophen
John Austin (1911-1960) und John R. Searle (geb. 1932) die heutige Sprechakttheorie begründet
(Searle 1969, 1979). Grundlage ist dabei die Analyse der Sprache als bedeutungsvolle Handlungen
(Akte) von Kommunikationspartnern. Im einzelnen beschäftigt sich die Sprechakttheorie mit der
Frage, wie sich Äußerungen auf die Zukunft des Sprechers und der Zuhörer auswirken, sowie mit der
Frage, welche Handlungen durch Wortfolgen veranlasst werden.
Die Anwendung von Sprechakten in der Agentenkommunikation sieht so aus, dass zwischen Agenten
ausgetauschte Nachrichten als Sprechakte markiert werden und damit (formal) spezifiziert wird, was
der Sender mit dieser Nachricht erreichen möchte. Im Kopf der Nachricht ist der Typ des Sprechakts
explizit mittels vordefinierter Schlüsselworte spezifiziert. Ebenso finden sich im Nachrichtenkopf
Referenzen auf die Nachrichten auf die Bezug genommen wird sowie Angaben über Sender und
Empfänger der Nachricht. Neben dem Nachrichtenkopf gibt es noch einen Nachrichtenrumpf mit
Aussagen oder Anfragen. Diese sind in einer Sprache formuliert, die neben der Domäne, über die in
dieser Sprache Aussagen und Anfragen formuliert werden können, auch im Nachrichtenkopf spezifiziert ist. Neben den Sprechakten ist hier die Trennung von Domänendefinition und von der Formulierung von Aussagen (über beliebige Domänen) sehr wichtig für die allgemeine Einsetzbarkeit und
Erweiterbarkeit der Schnittstelle (Singh 1994, 1998).
Zur Modellierung der Daten wird häufig auf Logik-Sprachen zurückgegriffen, bei der Modellierung
der Domänen auf das Konzept der Ontologien (siehe hierzu den Abschnitt 3.2.1 zu Wissensrepräsentation). Folgende Beispiele zeigen Ausschnitte von FIPA-ACL Nachrichten mit der Prädikatbasierten Inhaltssprache SL:
Nachfrage nach Item-Anmerkungen, deren Attribut „rating“ den Wert 3 hat:
REQUEST, ontology=community-item, language=sl2
content=’(=(iota ?x (is-item-annotation ?x (set)
(set (has-value(rating 3))))))’
Eintragen einer neuen Item-Anmerkung:
INFORM, ontology=community-item, language=sl2
content=’(add :item-annotation (item-annotation
:itemid=12 :rating=3))’
39
3 Modularisierung von Community-Unterstützungssystemen
Für die Modellierung von Komponenten für die Community-Unterstützung würde sich der bei Agenten verfolgte Schnittstellen-Ansatz anbieten. Das heißt, eine Modellierung von Kommunikation als
einfache Sprechakte auf der Basis einer allgemeinen Repräsentation allgemeiner Datenkonzepte.
An der abstrakten Schnittstelle zwischen den Komponenten müssen
Informationen und Aussagen zu Grundkonzepten von Communities und Community-Informationen ausgetauscht (abgefragt, mitgeteilt) werden können, und
Aktionen auf Community-Objekten ausgelöst werden können.
Es stellt sich allerdings die Frage, ob die Lösung in Form „echter“ Agenten realisiert werden soll, oder
in Form „normaler“ verteilter Softwarekomponenten. Der Unterschied liegt hauptsächlich in der Bereitstellung von Schnittstellen über RPCs anstelle von Agenten-Kommunikationssprachen. Die Idee
der Sprechakte und der Trennung von Domänendefinition und Formulierung von Aussagen in bzw.
über eine Domäne kann in beiden Fällen realisiert werden. Nachdem die in dieser Habilitationsschrift
dokumentierte Arbeit im Kontext einiger konkreter Projekte steht, in denen einsatzfähige und robuste Systeme entwickelt werden sollten, die Agententechnologie (Agenten-Kommunikationssprachen
und Agentenplattformen) aber erstens noch nicht so ausgereift scheint und zweitens keinen besonderen Mehrwert bietet, haben wir uns für die klassische Lösung mit (Agenten-ähnlichen) generischen
Datenstrukturen entschieden.
Im weiteren soll dieser Ansatz weiterverfolgt werden. Es sollen die Grunddatenkonzepte in Communities identifiziert und modelliert werden (Abschnitt 3.2) und dann Komponenten identifiziert werden,
deren Schnittstellen mit diesen Datentypen arbeiten (Abschnitt 3.3). Bei der Modellierung von Komponentenschnittstellen wird dabei der strenge Agentenansatz etwas aufgebrochen und Aktionen als
domänenspezifische Performative in Form von (entfernten) Funktionsaufrufen und Callbacks modelliert (siehe hierzu auch Abschnitt 3.3).
3.2
Datenkonzepte
Nach der kurzen Diskussion verschiedener Modularisierungskonzepte und verwandter Themen soll
im weiteren Kapitel das für Community-Unterstützungssysteme entwickelte Modularisierungskonzept vorgestellt werden. Wie zuvor motiviert worden ist, sind dazu zuerst die Grunddatenkonzepte,
die über die Schnittstellen auszutauschen sind zu identifizieren und zu modellieren. In diesem Abschnitt sollen deshalb diese Konzepte ausgehend von der allgemeinen Funktionalitätsbetrachtung in
Kapitel 2 herausgearbeitet werden.
Betrachtet man die Aktivitäten in Communities und die Aufgaben von Community-Unterstützung,
dann lassen sich drei grobe Bereiche für Datenkonzepte unterscheiden:
1. Benutzerbeiträge (also was die Community-Mitglieder publizieren),
2. Benutzerrepräsentationen (also wie die Community-Mitglieder selbst im System repräsentiert
sind), und
3. Domänenrepräsentation, d.h. die Strukturierung der konkreten Anwendungsdomäne - zur Einordnung und Verbindung von Instanzen der Benutzer- und Inhaltskonzepte.
40
3.2 Datenkonzepte
Dieses Ergebnis deckt sich auch mit pragmatischen Ergebnissen früherer Arbeiten, wie z.B. von
Greenspun (1999), der als Kernmodule einer Community-Plattform identifiziert: „1) User Database,
2) Content Database, 3) User/Content Map“.
Die Datenkonzepte sollten möglichst allgemein modelliert werden, um verschiedene Verwendungen
und eine einfache Erweiterung zu unterstützen. Zur Modellierung solcher Datenkonzepte bieten sich
erprobte Verfahren und Werkzeuge aus dem Bereich der Wissenrepräsentation an. Bevor wir die
identifizierten Datenkonzeptbereiche weiter detailieren, wird deshalb im nächsten Abschnitt zuerst
allgemein auf Methoden zur Wissensrepräsentation eingegangen und eine geeignete Methode ausgewählt.
3.2.1
Wissensrepräsentation
Über die Komponentenschnittstellen sollen Fakten und Fragen kommuniziert werden. Ein entscheidender Aspekt dabei ist die Darstellung der Information in den Fakten und die Darstellung der Fragen.
Es handelt sich hierbei allgemein um Fragestellungen der Wissensrepräsentation.
Wissensrepräsentation ist die symbolische Darstellung von Wissen in bzw. über einen Gegenstandsbereich. Dabei unterscheidet man meist zwischen deklarativer und prozeduraler Wissensrepräsentation.
Deklarative Darstellungen von Wissensinhalten geben Beschreibungen von Sachverhalten, die keine
Angaben über Konstruktion und Gebrauch von Wissen enthalten - Beispiel: „[email protected] arbeitet an der Technischen Universität München“ (Fakt) oder „Konferenzbände sind Publikationen“
(Regel). Prozedurale Wissensdarstellungen dagegen beschreiben Verfahren zur Konstruktion, Verknüpfung und Anwendung von Wissen - beispielsweise ein Verfahren zur Berechnung der Summe
zweier Zahlen. In diesem Abschnitt gehe ich nur auf die deklarative Wissensrepräsentation ein.
Ziel von deklarativen Konstrukten ist es, möglichst allgemein Wissen über Objekte auszudrücken
bzw. abzufragen. Zur Definition von Objekten werden dabei häufig Frames genutzt. Darunter versteht man eine allgemeine Folge von hierarchisch organisierten Attribut-Wert-Paaren. Eine Sprache
um allgemeine Aussagen zu treffen ist häufig auf Basis der Prädikatenlogik aufgebaut. Hierbei nimmt
man meist Vereinfachungen gegenüber der allgemeinen Prädikatenlogik vor. Im FIPA-ACL-Standard
ist beispielsweise mit SL eine Prolog-ähnliche Sprache zur Formulierung von Aussagen in verschieden mächtigen Variationen (SL0, SL1, SL2, SL) beschrieben.
Neben den eben erwähnten Basiskonzepten Frames und Prädikatenlogik gibt es noch verschiedene
andere verwandte Konzepte zur deklarativen Wissensrepräsentation. Zu nennen sind hier insbesondere Semantische Netze, Objekt-Attribut-Wert-Tripel und Ontologien (Fensel 2001; Hesse 2002). Im
weiteren werden die wichtigsten Konzepte, Frames und Prädikatenlogik noch etwas genauer behandelt. Dann gehe ich noch auf Ontologien als verallgemeinerndes Konzept ein.
Frames
Bei Frames handelt es sich um einen Ansatz aus der objektzentrierten Wissenrepräsentation. Mit
einem Frame lassen sich Strukturen in Objekten und Beziehungen zwischen Objekten darstellen.
Dazu sind Frames als Aggregation von Aspekten (sogenannte „Slots“) definiert, die zusammen ein
stereotypes Objekt, eine stereotype Handlung oder ein stereotypes Ereignis repräsentieren. Dieses
Konzept ist vergleichbar mit Objektklassen und deren (Objekt-)Attribute. Die Slots oder Attribute
können wieder von komplexem Wert sein (d.h. ein anderes Frame enthalten). Zusätzlich zu Namen
und Wertebereich der Attribute kann angegeben werden, ob die Attribute optional sind, und es können
41
3 Modularisierung von Community-Unterstützungssystemen
Default-Werte für Attribute definiert werden. Ein Frame beschreibt also eine Objektklasse und legt
durch die Definition von Attributen typische Merkmale dieser Klasse fest.
Neben der Nutzung von Frames in Frames zur Definition des Datentyps eines Slots können Frames in
(Vererbungs-)Hierarchien organisiert werden (is-a-Beziehung). Ein von einem anderen abgeleiteter
Frame erbt die Definition aller Attribute und Einschränkungen oder Defaultbelegungen des ElternFrames und kann selbst zusätzliche Attribute definieren oder Einschränkungen enger definieren.
Beispiel:
(defframe :user (slots (:firstname String) (:gender [’m’,’w’])))
(defframe :muser of :user (slots (:gender ’m’) (:beard Boolean)))
Prädikatenlogik
Im Gegensatz zu den objektzentrierten Frames handelt es sich bei der Prädikatenlogik um einen nichtobjektzentrierten Ansatz.
Die Logik wurde als Mittel zur Formalisierung des intuitiven Schlussfolgerungsbegriffs entwickelt.
Dazu entstanden eine Reihe von Kalkülen (logikbasierte Wissensrepräsentationsformalismen), die es
erlauben aus Axiomen mittels Ableitungsregeln Theoreme herzuleiten bzw. zu beweisen. Der für die
Wissensrepräsentation bedeutendste und der theoretisch fundierteste Kalkül ist die Prädikatenlogik
erster Ordnung. Obwohl diese weder in formalen Wissenspezifikationssprachen noch in Repräsentationssprachen in ihre ursprünglichen Form verwendet wird, dient sie häufig als Bezugspunkt oder als
Ausgangspunkt zur Entwicklung spezieller, den Anforderungen realen Domänen- oder Anwendungswissens angepasster Variationen oder Erweiterungen.
Basis der Prädikatenlogik ist die Aussagenlogik. In der Aussagenlogik werden atomare Aussagen,
wie z.B. A=„Der Mond kreist um die Erde“ und B=„Die Sonne kreist um die Erde“ durch Verknüpfungszeichen UND, ODER und NICHT zu komplexeren Aussagen, sog. Formeln, zusammengesetzt.
Ziel ist dabei die Bestimmung der Wahrheitswerte von Formeln, ohne die Aussagen inhaltlich zu
interpretieren.
Die Prädikatenlogik stellt eine Erweiterung der Aussagenlogik dar. Durch Einbeziehung von Variablen, Funktionszeichen, Prädikatzeichen (z.B. =,>,<) und Quantoren (für alle, es existiert) zusätzlich
zu den oben genannten Verknüpfungszeichen, ist es möglich, sehr komplexe mathematische Sätze zu
formulieren, welche auch Wissen kodieren können.
Ein Nachteil der nicht-objektzentrierten Wissensrepräsentation in regelbasierten Systemen ist die
mangelnde Strukturiertheit: Ausschließlich die Regeln beinhalten aktives Wissen. Bei den Fakten
hingegen handelt es sich um eine unstrukturierte und passive Menge. So stehen die in Fakten festgelegten Definitionen zweier Attribute desselben Objektes zuerst einmal isoliert nebeneinander. Eine
bessere Strukturierung gibt es in der objektzentrierten Wissensrepräsentation. Hier werden die Fakten
zu Strukturen zusammengefasst.
Als Verbindung der beiden Formen der Wissensrepräsentation sind sogenannte Beschreibungslogiken
(description logics) entstanden. Hierbei handelt es sich um Einschränkungen der Prädikatenlogik
(z.B. Verzicht auf Variablen) die um strukturierte Informationsobjekte erweitert wurden. Auf die
strukturierte Information kann zugegriffen werden und es können damit Deduktionen durchgeführt
werden.
Im Kontext von Beschreibungslogiken findet sich üblicherweise auch die Zweiteilung einer Wissensbasis in
42
3.2 Datenkonzepte
Terminologie (TBox)
Hierunter versteht man die Definition von Konzepten und Axiomen in der Domäne, die das
zugrundeliegende Modell definieren und benutzt werden können um aus Fakten neues Wissen abzuleiten. Solche Definitionen können in Form von Prädikatdefinitionen mit oder ohne
Quantoren erfolgen.
Beispiel:
is-publisher(item(X), A), has-category(X, C) ->
has-interest(A, C)
Aussagen über Einschränkungen (ABox)
Hierunter versteht man Fakten, also konkrete Aussagen über Instanzen. Häufig unterscheidet
man noch zwischen Konzepteinschränkungen, also der Definition, dass ein Objekt Instanz eines
bestimmten Konzeptes ist, und Rolleneinschränkungen, also der Definition, dass zwei Objekte
auf eine bestimmte Art miteinender in Beziehung stehen. Diese verschiedenen Typen von
Einschränkungen lassen sich aber auch als die Anwendung ein- und mehrstelliger Prädikate
sehen.
Beispiele:
is-publisher(’item-12’, ’kochm’)
item(’item-12’)
Ontologien
Der Begriff Ontologie1 steht für ein allgemeines Konzept, das verschiedene Aspekte unterschiedlicher Hilfsmittel zur Handhabung von Wissen zusammenfasst. Ontologien erlauben Ableitungen (semantische Netze), benutzen Klassifizierungen (Taxonomien), beschrieben Begriffe, auf die sich eine
Gruppe von Benutzern geeinigt hat (Thesauri), und sie dienen der Navigation in Wissensbeständen
(Verzeichnisstrukturen und Topic Maps).
Staab (2002) definiert Ontologien als formale Modelle einer Anwendungsdomäne, die dazu dienen,
den Austausch und das Teilen von Wissen zu erleichtern. Neben dieser auf (Gruber 1993) zurückgehenden Definition finden sich viele Definitionsversuche des Begriffs Ontologie über die Funktion
(siehe hierzu auch (Fensel 2001)):
„facilitate knowledge sharing an reuse“
„provide explicit conceptualization that describes semantics of data“
„provide shared and common understanding of domain that can be communicated between
people and application systems“
„provide machine-processabel semantics of information sources that can be communicated
between different agents (software and humans)“
1
Das Wort ’Ontologie’ ist zusammengesetzt aus dem Griechischen ’ontos’ für Sein und ’logos’ für Wort. Es ist eine
vergleichsweise neue Bezeichnung aus dem 19. Jahrhundert, die benutzt wird, um die Lehre vom Sein zu unterscheiden
von der Lehre des Seienden in den Naturwissenschaften. Die ursprünglich von Aristoteles benutzte Bezeichnung war
’Kategorie’. Aristoteles verwendete Kategorien, um alles, worüber gesprochen werden kann, zu klassifizieren.
43
3 Modularisierung von Community-Unterstützungssystemen
„implemented artefact that attempts to constrain the indended meaning of a vocabulary“
Auf der methodischen Seite werden Techniken der objektorientierten Modellierung konsequent so
weiterentwickelt, dass die Modelle nicht bloß zur Strukturierung von Software dienen, sondern auch
ein explizites Element der Benutzungsschnittstelle darstellen und zur Laufzeit verwendet werden.
Auf der soziokulturellen Seite erfordern Ontologien daher die Einigung einer Gruppe von Anwendern
auf die jeweiligen Begriffe und deren Zusammenhänge.
Von diesen allgemeinen Betrachtungen wollen wir zu einer konstruktiven Definition von Ontologien
kommen. Dazu betrachten wir, welche Mittel zur Strukturierung einer Domäne in Ontologien zur
Verfügung stehen. Aktuelle Ontologie-Ansätze unterscheiden hier zwischen:
Konzepten, die wichtige Begriffe definieren und strukturieren (Klassen, Entitäten)
Eigenschaften der Konzepte (Slots, Attribute, Rollen)
Beziehungen zwischen den Konzepten
Regeln zur Generierung von zusätzlichem Wissen
Teil der Modellierung von Konzepten, Eigenschaften und Beziehungen ist dabei auch die Festlegung
der Vokabulare von Termen und Relationen.
Im Vergleich zu Frames und Prädikatenlogik sind Ontologien am ehesten mit Beschreibungslogiken
vergleichbar. Sie vereinen die Definition von strukturierten Konzepten mit der Definition von Regeln
mit denen man über Deduktion neues Wissen generieren kann.
Ontologien sind üblicherweise über Ontologie-Beschreibungssprachen definiert. Solche Beschreibungssprachen können sehr einfach (nur Definition von Konzepten), Frame-basiert (Konzepte und
Eigenschaften) oder logikbasiert sein. Beispiele für Beschreibungssprachen sind CycL (Lenat und
Guha 1990; Lenat 1995) und KIF (Genesereth 1991) als Repräsentanten der auf Prädikatenlogik basierten Sprachen, Ontolingua (Gruber 1992) und Frame-Logik (Kifer u. a. 1995) als Frame-basierte
Ansätze mit einem Prädikatenlogik-Framework. Entity-Relationship-Diagramme und UML Klassendiagramme können auch als Ontologie-Beschreibungssprachen gesehen werden. Siehe beispielsweise (Meersman 1999) für eine nähere Diskussion der Zusammenhänge und Unterschiede von Ontologien und Datenbankmodellen.
Frame-Logik wird beispielsweise als Beschreibungssprache bei Ontobroker genutzt (Fensel 2001,
S.28f). Es handelt sich dabei um eine Sprache zur Spezifikation objektorientierter Datenbanken,
Frame-Systemen und Logikprogrammen (Kifer u. a. 1995). Frame-Logik integriert verschiedene konzeptuelle Modellierungsmechanismen in ein kohärentes Logik-Framework. Dazu stellt Frame-Logik
Klassen, Attribute mit Wertebereichsbeschränkungen, is-a-Hierarchien mit verschiedenen Kombinationsmöglichkeiten und Logik-Axiome zur weiteren Spezifikation von Beziehungen zwischen den
Elementen der Ontologie und ihrer Instanzen zur Verfügung.
Wissensrepräsentation für Community-Unterstützungs-Komponenten
Von den verschiedenen Konzepten zur Modellierung allgemeiner Informationen scheint das Ontologie-Konzept das vielversprechendste zu sein. Es vereint objektzentrierte Strukturierung von Informationen sowie allgemeinere Ansätze der Prädikatenlogik zur Regel-basierten Erweiterung des
44
3.2 Datenkonzepte
Informationsraums. Insbesondere ist von Vorteil, dass zu Ontologien momentan im Kontext des Forschungsbereichs „Semantic Web“ vielfältige Konzeptions- und Implementierungsarbeiten laufen. So
werden auch die Anwendungen von Ontologien in Wissensmanagement-Portalen und Online-Communities untersucht (Staab u. a. 2000).
Für die Wissensrepräsentation in und zwischen den zu konzipierenden Community-UnterstützungsKomponenten wird deshalb ein Ontologie-basierter Ansatz gewählt. Daten werden als Objekte mit
Slots (Attributen) und als Beziehungen zwischen diesen Objekten definiert.
Dabei wird folgende Konkretisierung vorgenommen:
Konzepte werden als Klassen (Frames) definiert.
Zwischen den Konzepten können ‘is-a’-Beziehungen definiert werden.
Weitere Beziehungen zwischen Konzepten können optional über Regeln repräsentiert werden.
Zu den Konzepten werden Attribute definiert. Eine Attributdefinition beinhaltet die Definition
von Attributnamen, Wertebereich und von optionalen Default-Werten.
Manche der Attribute definieren Beziehungen zwischen konkreten Instanzen der Konzepte Ein Beispiel dafür ist das Attribut “publisher” bei Inhalten, über das eine Beziehung zu konkreten Benutzern (Benutzerobjekten) hergestellt wird.
Durch Regeln können über die Attribute (Wertebereiche, explizite Beziehungen zwischen Instanzen) hinausgehende Informationen repräsentiert werden.
In der weiteren Arbeit identifiziere ich nun zuerst die Basisdatenkonzepte und modelliere diese mit
ihren Attributen und Beziehungen untereinander. Bei Bedarf werden dazu dann auch noch Regeln
angegeben, die komplexe Abhängigkeiten kodieren oder neue Konzepte definieren. Durch geeignete
Wahl der Konzepte und Regeln ist die angestrebte Generalität und einfache Erweiterbarkeit realisierbar.
Verwandte Arbeiten zur Informationsmodellierung in einem speziellen Anwendungsbereich finden
sich bei der Erarbeitung von Datenrepräsentationsstandards (Festlegungen von Konzepten und Vokabularen) für andere Domänen. Dies wurde in letzter Zeit vor allem für Domänen rund um Electronic
Business und Customer Relationship Management vorangetrieben. Beispiele für solche Standards
sind ebXML (siehe dazu www.ebxml.org) oder das BizTalk-Framework von Microsoft.
3.2.2
Benutzerbeiträge
Bei Beiträgen eines Benutzers zum Community-Informationsraum können die folgenden Basistypen
unterschieden werden:
Neue Information zur Kenntnisnahme durch (nicht genauer spezifizierte) andere CommunityMitglieder
Kommentare und Bewertungen zu existierenden Informationen (auch wieder zur Kenntnisnahme aller Mitglieder)
Mitteilungen an eine spezifische Empfängergruppe
45
3 Modularisierung von Community-Unterstützungssystemen
Informationen zu sich selbst (zur Kenntnisnahme durch andere Mitglieder)
Bei Informationen zum Benutzer selbst handelt es sich um Benutzerprofilinformationen. Diese werden in Abschnitt 3.2.4 und in Kapitel 4 näher behandelt. Es bleiben als Benutzerbeiträge noch Informationen für den Community-Informationsraum, Kommentare zu diesen Informationen im Community-Informationsraum und Mitteilungen. Während Mitteilungen an eine spezifische Untermenge
der Community-Mitglieder gerichtet sind, die zum Zeitpunkt des Abschickens festgestellt wird (vergleichbar zu E-Mail), stehen Informationen und Kommentare zu Informationen allen Mitgliedern
einer (Unter-)Community zur Verfügung und werden persistent auch für zukünftige Mitglieder gespeichert.
J. Koch (2002a, S.44) definiert im Zusammenhang mit der Ermittlung von Benutzerinteressen Artefakte und Items als „Instanz einer Repräsentation von Information, mit der der Nutzer zu tun hat“. Wir
schränken im Folgenden den Item-Begriff ein auf Informationen, die von Community-Mitgliedern
explizit für andere Community-Mitglieder publiziert worden sind.
Informations-Items
Ein Vorteil von Community-Informationssystemen ist die Möglichkeit der automatischen Filterung
von Informationen - und dadurch die Handhabbarmachung größerer Informationsmengen.
Um eine Filterung und Suche im Informationsraum zu erlauben, sollten die Informationen zumindest
semi-strukturiert sein. D.h. neben den (Freitext-)Inhalten, die nur für andere Benutzer bestimmt sind,
müssen strukturierte Meta-Informationen enthalten sein, die automatisch ausgewertet werden können.
Nachdem es verschiedene Informationstypen mit verschiedenen Meta-Informationen geben kann,
empfiehlt sich eine Typisierung der Informations-Objekte (oder (Informations-)Items, wie sie im Weiteren genannt werden). Jedem Item-Typ sind eine Menge von notwendigen und optionalen Attributen
zugeordnet, welche auch Freitext oder sonstige unstrukturierte Daten enthalten können.
Bei der Realisierung unserer verschiedenen Beispiel-Plattformen (siehe Kapitel 5) haben wir beispielsweise die folgenden Typen identifiziert und ausgeführt:
Mitteilung
Terminankündigung - mit verschiedenen Untertypen für die Art des Termins, der angekündigt
wird (z.B. einmalig, regelmäßig)
Bookmark
Literaturreferenz - mit verschiedenen Untertypen für Zeitschriftenartikel, Bücher, Konferenzbände, Beiträge in Konferenzbänden etc.
Konferenzankündigung
Jobankündigung
Projektankündigung - mit Untertypen für die einzelnen Projekte, z.B. an der Universität Systementwicklungsprojekte und Diplomarbeiten
Wie man an den Beispielen sieht, handelt es sich bei den Typen um einen Wald von Typkonzepten,
die teilweise aufeinander aufbauen bzw. voneinander abgeleitet sind.
46
3.2 Datenkonzepte
Damit die Verwaltung der Information nicht in durch Typen getrennte Bereiche zerfällt, sondern über
Typgrenzen hinweg funktioniert, ist es notwendig eine gemeinsame Menge von Attributen für alle
Items festzulegen. Aus den Anforderungen an die Attribute der einzelnen Typen haben wir deshalb
folgende Basisattribute für alle Typen abgeleitet:
Titel (title)
Abstract/Beschreibung (content)
Gültigkeitsdatum (expirationdate)
Zeitraum (startdate, enddate)
Ort (location)
Attribute wie Titel und Beschreibung müssen dabei in mehreren Sprachversionen vorliegen können.
Die Attribute zur Spezifikation eines Ort und einer Zeit(spanne) werden vor allem für kontextsensitive Dienste wie im Projekt Cosmos (siehe Abschnitt 5.5) benötigt. Neben den Basisattributen sind
noch Attribute notwendig, die Informationen über den Erzeuger eines Items, das Erzeugungsdatum,
Identität des Benutzers, der die letzte Änderung vorgenommen hat, und Datum der letzten Änderung
geben.
Das Grundkonzept des Items wird also folgendermaßen modelliert:
ITEM
Slot
title[sprache]
Beschreibung
Titel in unterschiedlichen Sprachversionen
Typ
String
content[sprache]
Textinhalt (unstrukturiert) des Items in
unterschiedlichen Sprachversionen
String
startdate
Bei Veranstaltung der Zeitpunkt des Starts,
ansonsten Termin, ab dem die Mitteilung
anderen zu Kenntnis gebracht werden soll
Bei Veranstaltungen der Endezeitpunkt
Zeitpunkt bis zu dem die Mitteilung
aktuell ist, d.h. ab dem sie nicht mehr
angezeigt werden soll und automatisch
gelöscht werden kann
Ort auf den sich das Item bezieht
Ersteller des Items
DateTime
enddate
expirationdate
location
creatorlogin
creationdate
updatelogin
updatedate
Zeitpunkt der Erstellung
Benutzer, der die letzte Änderung am Item
durchgeführt hat
Zeitpunkt der letzten Änderung
Wertebereich
Kodierung der
Sprache nach
ISO 639 (siehe
auch RFC1766)
Kodierung der
Sprache nach
ISO 639
DateTime
DateTime
Coordinates
USER
DateTime
USER
Referenz
auf
Konzept USER
Referenz
auf
Konzept USER
DateTime
Durch die Attribute ‘creatorlogin’ und ‘updatelogin’ werden Beziehungen zum Konzept USER definiert:
47
3 Modularisierung von Community-Unterstützungssystemen
is-created-by(ITEM, USER), is-creator(USER, ITEM)
is-updated-by(ITEM, USER), has-updated(USER, ITEM)
Neben den Standarddatentypen String, Text und DateTime werden dabei die Datentypen USER und
Coordinates benutzt. USER verweist auf einen registrierten Benutzer und Coordinates gibt Information zu einem Ort. Die Kodierung von Ortsinformation wurde im Projekt Cosmos erarbeitet (siehe
hierzu u.a. (Groh 2002) und (Koch u. a. 2002a)).
Basierend auf dem allgemeinen Item-Frame können Frames für spezielle Item-Typen definiert werden. Dabei können, wie bei Frames besprochen, zusätzliche Attribute definiert oder die Wertebereiche
bzw. Defaultwerte vorhandener Attribute geändert werden. Neben den besprochenen Attributen muss
zu einem Item also auch immer gespeichert werden, auf welcher Klasse (Item-Typ) es basiert.
Item-Attachments
In der praktischen Anwendung hat sich gezeigt, dass die Items sehr hilfreich zur Kodierung von
Community-Wissen sind. Benutzer haben aber häufig den Wunsch geäußert, zu Items noch Binärdateien oder Links auf Informationen und Dateien außerhalb des Community-Informationsraums
speichern zu können. Um dies zu ermöglichen, wurde das Item-Modell noch um sogenannte ItemAttachments erweitert, welche solche Links oder Binärdateien kodieren.
ITEMATTACHMENT
Slot
Beschreibung
title
Titel/Teaser des Anhangs (eventuell
wieder in unterschiedlichen
Sprachbersionen)
mimetype
(Medien-)Typ des Anhangs
size
uri
content
publisher
publisheddate
Länge des Anhangs in Bytes
URI-Verweis auf externen Anhang
Inhalt bei lokalen Anhängen
Benutzer, der den Anhang dem Item
zugeordnet hat
Zeitpunkt der Erstellung/Zuordnung des
Anhangs
Typ
String
Wertebereich
String
Typname nach
RFC2046, 2048
Integer
RFC2396
Blob
USER
Referenz
auf
Konzept USER
DateTime
Wie beim Konzept Item definieren manche der Attribute wieder Beziehungen zum Konzept Benutzer. Nicht als Attribute aufgenommen sind zusätzliche Informationen, welche eine Beziehung zum
Konzept Item definieren:
USER
is-publisher(USER, ITEMATTACHMENT),
is-published-by(ITEMATTACHMENT, USER)
ITEM
has-attachment(ITEM, ITEMATTACHMENT),
is-attachment-from(ITEMATTACHMENT, ITEM)
48
3.2 Datenkonzepte
Item-Kommentare
Eine Community lebt von „warmer“ (d.h. personenbezogener) Information und von der Kommentierung der Information (d.h. von indirekten Konversationen basierend auf Informationsitems). Kommentare könnten als eigenständige Items gesehen werden, die über eine spezielle Beziehung mit den
Item, die sie kommentieren in Beziehung stehen. Dadurch ließen sich beliebige Verbindungen zwischen Items und Kommentaren und auch zwischen Kommentaren selbst modellieren. In der Praxis
hat sich allerdings gezeigt, dass es sinnvoll ist, Kommentare zu Items als eigenes Konzept vorzusehen.
Dies kann wahlweise als Ableitung vom Item-Konzept oder unabhängig davon geschehen. Wir haben
uns dafür entschieden Item-Kommentare als Spezialisierung des Item-Konzeptes zu modellieren. Damit stehen die vielen Möglichkeiten von Items (z.B. Anhänge) automatisch auf für Item-Kommentare
zur Verfügung. Außerdem ist es damit einfach möglich Kommentare zu Kommentaren zu nutzen.
Der erste Typ von Kommentar, der hier vorzusehen ist, ist der Freitextkommentar. D.h. ein Kommentar in Form von frei eingegebenem Text (oder als Grafik, Audio oder Video), der nur zur Interpretation
durch andere Benutzer vorgesehen ist. Hierbei sind zwei Varianten möglich:
Konversation: Jeder Benutzer darf zu jedem Item mehr als einen Kommentar abgeben - die
Kommentare werden entweder chronologisch sortiert oder falls sie auf vorhergehende Kommentare bezogen sind in Baumstrukturen organisiert. Das Informationsitem stellt in diesem
Fall nur noch einen Kontext für die Konversation dar.
Kommentar: Jeder Benutzer darf zu jedem Item genau einen Kommentar abgeben. Das publizieren eines neuen Kommentars (einer neuen Bewertung) überschreibt den bisher gesetzten
Kommentar.
Freitextkommentare unterstützen die (indirekte) Kommunikation zwischen den Community-Mitgliedern im Kontext von Informationsitems. Sie erlauben allerdings keine automatische Gewinnung von
Information zu den Benutzern oder automatische Zusammenfassung. Zu diesem Zweck werden häufig zusätzlich zur Freitexteingabe konkrete Bewertungen von Items erlaubt. Diese Information kann
dann automatisch ausgewertet werden.
ITEMANNOTATION extends ITEM
Slot
Beschreibung
rating
Bewertung des Items
Typ
Real
Wertebereich
[0, 1]
Kommentare erben vom Konzept Item Beziehungen zu User und ItemAttachment. Zusätzlich stehen
sie zum Konzept Item folgendermaßen in Beziehung:
ITEM
annotation-for-item(ITEMANNOTATION, ITEM),
has-annotation(ITEM, ITEMANNOTATION)
Beispiel für weitere Informationen, die über Regeln aus den vorhandenen Informationen gewonnen
werden können:
has-annotated(USER(x), ITEM(i)):
es gibt ITEMANNOTATION(a):
49
3 Modularisierung von Community-Unterstützungssystemen
has-annotation(i, a), is-publisher(x, a)
is-co-annotator(USER(x), USER(y)):
es gibt ITEM(i):
has-annotated(x, i) AND has-annotated(y, i)
Mitteilungen
Am Anfang dieses Abschnitts wurde unterschieden zwischen Informationen, die Community-Mitglieder (außerhalb eines speziellen Kontextes) für nicht näher definierte Benutzergruppen beitragen die Items -, Kommentare zu diesen Items und Mitteilungen an eine mehr oder weniger genau spezifizierte Menge von Benutzern.
Der Unterschied zwischen Items und Mitteilungen war, dass Items in den Community-Informationsraum aufgenommen werden, während Mitteilungen nur der spezifizierten Mitgliedergruppe zugestellt
werden und Mitgliedern, die später hinzukommen nicht mehr zur Verfügung stehen.
Was bei Items Attribute bzw. Meta-Informationen sind, ist bei Mitteilungen die Empfängerspezifikation. In den verschiedenen Projekten wurden dazu die folgenden Anforderungen erarbeitet:
konkrete Empfängerliste
Empfänger durch Attribute definiert
– Standort der Empfänger
– beliebige andere Benutzerattribute
MESSAGE
Slot
subject
content
recipientspec
sender
sendtime
Beschreibung
Titel der Nachricht
Inhalt der Nachricht
Spezifikation der Empfänger
der Nachricht
Typ
String
Text
String
Sender der Nachricht
Zeitpunkt des Versendens
USER
DateTime
Wertebereich
Abfrage über Attribute im
Benutzerprofil (siehe auch
Abschnitt 4.4.1)
Referenz auf Konzept USER
Durch das Attribut ‘sender’ wird eine Beziehung zum Konzept USER definiert:
is-sent-by(MESSAGE, USER), is-sender(USER, MESSAGE).
3.2.3
Domäneninformation - Kategorisierung
Im Informationsmanagement hat sich in den letzten Jahren eine zweistufige Auszeichnung von Information durchgesetzt. Einerseits werden Informationsobjekte Meta-Informationen zugeordnet um eine Suche und Filterung zu erlauben. Diese Meta-Informationen sind in Item-Typ-Schemata
festgehalten. Auf der anderen Seite werden häufig als spezielle Meta-Information Einordnungen in
Kategorien vorgesehen. Das bedeutet, dass eine Menge von Kategorien definiert wird und Items einer
oder mehrere dieser Kategorien zugeordnet werden können.
50
3.2 Datenkonzepte
Bei Kategorien handelt es sich allgemein um eine Strukturierung der Domäne über Konzepte mit
Attributen wie Titel (in verschiedenen Sprachen), die untereinander in Beziehung stehen können. Mit
der Relation sub-category() können die Kategorien in einem Wald angeordnet werden, mit der
Relation related-to() können Beziehungen zwischen den Kategorien dokumentiert werden, die
nicht in den Baumstrukturen zum Ausdruck kommen.
In dieser Arbeit beschränken wir uns auf Kategorien und Itemtypen als Mittel der Domänenmodellierung. Über Kategorien werden von Benutzer beigetragene Informationen und Benutzer selbst mit
der Domäne und damit wieder miteinander in Beziehung gebracht.
Kategorien können entweder durch die Designer einer Community-Plattform vorgegeben werden
oder sogar dynamisch von den Community-Mitgliedern erzeugt und ergänzt werden. Ansätze dazu finden sich beispielsweise in (Farquhar u. a. 1995).
CATEGORY
Slot
title[sprache]
Typ
String
Wertebereich
creator
Beschreibung
Name der Kategorie in verschiedenen
Sprachversionen
Erzeuger der Kategorie
USER
Referenz
auf
Konzept USER
creationtime
Zeitpunkt der Erzeugung der Kategorie
DateTime
Kategorien dienen hauptsächlich der Einordnung der Kernkonzepte Item und USER:
CATEGORY
sub-category(CATEGORY, CATEGORY)
related-to(CATEGORY, CATEGORY)
ITEM
is-of-category(ITEM, CATEGORY)
USER
is-interested-in(USER, CATEGORY)
Über die Kategorien können dann weitere Beziehungen definiert werden:
is-interested-in(USER x, ITEM i):
is-interested-in(x, CATEGORY(c)), is-of-category(i, c)
3.2.4
Benutzerdaten
Neben Benutzerbeiträgen müssen Daten zu den Benutzern (Community-Mitgliedern) selbst gespeichert werden. Solche Daten werden von der Plattform selbst für Matchmaking und Personalisierung
benötigt und werden im Rahmen von Awareness-Funktionalitäten anderen Benutzern präsentiert.
Wir unterscheiden bei Benutzerdaten Daten zu einem einzelnen Benutzer (die sogenannten Benutzerprofile) und Daten zur Untergliederung der Benutzer in Untergruppen.
Benutzerprofile
Das Thema Benutzerprofile wird ausführlich in Kapitel 4 behandelt. Dort werden u.a. auch die wichtigsten Teile eines Benutzerprofils motiviert und ausgearbeitet. Konkret handelt es sich dabei um
51
3 Modularisierung von Community-Unterstützungssystemen
demographische Daten
Informationen zu Interessen
Informationen zu Bewertungen
Informationen zu Beziehungen zu anderen Benutzern
Informationen zu Voreinstellungen/Präferenzen
PIM-Informationen
Zu den Informationen zu Beziehungen zu anderen Benutzern gehören die auf vielen CommunityPlattformen zu findenden Buddylisten. Dabei handelt es sich um Listen von Benutzern, zu denen
der Profil-Eigentümer in einer speziellen Beziehung steht. Die Art der Beziehung wird durch den
Namen der Liste ausgedrückt. Jeder Benutzer kann eine oder mehrere persönliche Buddylisten anlegen. Durch die Ermöglichung verschiedener Buddylisten haben wir eine allgemeine Möglichkeit zur
Erfassung von Beziehungen zwischen Community-Mitgliedern geschaffen. In Abschnitt 4.3.3 wird
dieses Thema noch weiter ausgeführt.
Nachfolgende eine vereinfachte Modellierung eines Benutzerprofils als Menge von Attributen:
USER
Slot
basic.firstname
basic.lastname
basic.gender
pim.network.buddylist.family
...
Beschreibung
Vorname
Nachname
Geschlecht
Buddylist ’family’
Typ
String
String
Character
Set of USER
Wertebereich
’m’, ’w’
Im Buddylist-Attribut ist dabei eine Beziehung zwischen USER-Instanzen definiert:
USER
is-buddy-of(USER, LISTNAME, USER)
Untergruppen
In Communities finden sich häufig verschiedene nicht-disjunkte Untergruppen (Sub-Communities),
die Mitglieder zusammenfassen, die sich mit einem Teilaspekt der ganzen Community beschäftigen.
Diese Information und die dadurch ausgedrückte Beziehung der Mitglieder einer solchen Untergruppe soll dokumentiert werden um darüber Mitteilungen adressieren zu können, Items in den Zugriffsrechten einzuschränken oder spezielle Awareness-Informationen anzeigen zu können.
Zur Dokumentation dieses Zusammenhangs haben wir sogenannte „SharedBuddyLists“ eingeführt.
Wie der Name schon sagt, handelt es sich dabei nach dem Modell der Buddylists um Listen von
Mitgliedern, die unter einem bestimmten Titel geführt werden. Im Gegensatz zu Buddylists sind
diese Listen aber nicht einem speziellen Benutzerprofil zugeordnet, sondern sind für alle Personen,
die auf der Liste aufgeführt sind, (lesend und schreiben) zugänglich. Während persönliche Buddylists
Teil des Profils eines Benutzers sind und nur von diesem gepflegt und eingesehen werden können, sind
52
3.2 Datenkonzepte
SharedBuddyLists öffentlich sichtbar (wenn nicht explizit eingeschränkt) und jedes Mitglieder einer
SharedBuddyList kann andere Community-Mitglieder auf die Liste setzen.
Neben der Analogie zu Buddylists kann auch eine Analogie zu Kategorien gesehen werden. Bei SharedBuddyLists handelt es sich um Kategorien, denen nicht nur ein Name, sondern auch eine Menge
von Mitgliedern zugeordnet ist. Nachdem SharedBuddyLists wie Kategorien zur Spezifikation von
Interesse und zur Spezifikation von Empfängern für Nachrichten benutzt werden sollen, modellieren
wir sie als Spezialisierung von Kategorien.
SHARED-BUDDYLIST extends CATEGORY
Slot
Beschreibung
access
Zugang und Sichtbarkeit
Typ
String
Wertebereich
[public, closed,
invisible]
Benutzer stehen zum Konzept SHARED-BUDDYLIST über die Beziehung is-member-of() in
Verbindung:
is-member-of(USER, SHARED-BUDDYLIST)
3.2.5
Nutzung von Ontologien und Kontext-Information
Die drei Basis-Datenkonzepte User, Item und Category werden also als Attribut-Wert Paare dargestellt. Zu jedem der Datenkonzepte gibt es eine Hierarchie von Klassen, welche definieren, welche
Attribute mit welchem Datentyp in der Klasse definiert sind. In unserer Prototypimplementierung
sind diese Klassen für jedes der Datenkonzepte durch eine eigene Ontologie definiert.
Einen wichtigen Teil der Attribute machen bei allen drei Basis-Datenkonzepten die Attribute aus, die
auf andere Datenkonzepte verweisen. Dabei sind Verweise auf ein konkretes Entity oder auf eine
Menge von Entities möglich. Wir haben in der Prototypimplementierung weiterhin vorgesehen, dass
man angeben kann, von welcher Unterklasse die referenzierten Entitäten sein müssen. Mit diesem
Hilfsmittel können alle in den vorhergehenden Abschnitten besprochenen Attribute definiert werden.
Bei der Nutzung solcher Referenzen hat sich insbesondere bei USER-USER Referenzen (siehe hierzu
auch das folgende Kapitel), aber auch bei anderen Referenztypen gezeigt, dass zur automatischen
Nutzung noch zusätzliche Information über den Typ der Referenz oder Beziehung notwendig ist. Wir
haben dies durch die Aufwertung der Referenzen zu einem zusätzlichen Basis-Datenkonzept, den
sogenannten „Kontexten“ (Context), gelöst.
Ein Kontext stellt die Verbindung eines Quellobjekts zu einem oder mehreren Zielobjekten dar. Neben
der Festlegung der Typen von Quell- und Zielobjekten können zu einem Kontextobjekt wie bei allen
anderen Datenkonzepten weitere Attribute definiert werden. Auch können und sollen verschiedene
Klassen für Kontextobjekte definiert werden. Beispielklassen für Kontextobjekte wären die UserUserSet-Beziehung und davon abgeleitet die Buddylist-Beziehung (mit dem Attribut des BuddylistNamens). Bei Attributen, welche auf andere Datenkonzepte verweisen, wird nun die Kontextklasse
angegeben um die Beziehung näher zu spezifizieren.
Genauere Informationen zu dem Kontextkonzept und seiner Realisierung finden Sie in der Spezifikation zum Cobricks-2 System2 .
2
Siehe http://www.cobricks.de/
53
3 Modularisierung von Community-Unterstützungssystemen
3.2.6
Zusammenfassung
In diesem Abschnitt haben wir eine in Inhalts-, Benutzer- und Domänen-Konzepte unterteilte Framebasierte Modellierung der Basisdatenkonzepte bei der Community-Unterstützung und der Beziehungen zwischen diesen Konzepten vorgestellt (siehe auch Abbildung 3.1). Als zusätzliches Konzept zur
Beschreibung der wichtigen Referenzen zwischen den Datenkonzepten wurden die Kontexte eingführt, welche wie die anderen Basisdatenkonzepte Frame-basiert modelliert wurden. Diese FrameModellierung für alle Datenkonzepte ist einfach um Regeln für eine Ontologie-basierte Modellierung
erweiterbar.
Item
buddylist
published-by
Item
Annotation
User
ItemAttachment
f- o ry
i s go
te
ca
i nt
er
es
in t edme
mb
o f er-
Item
Item
User
annotates
Context
SharedBuddy
List
Category
related-to
subcategory
Category
Abbildung 3.1: Datenkonzepte und Verbindungen der Konzepte
3.3
Community-Dienste
Ziel dieses Kapitels ist es, Komponenten und Schnittstellen zu identifizieren, mit deren Hilfe einfach
adaptierbare Community-Plattformen aufgebaut werden können, die dann auch einfach miteinander
interagieren können. Im vorangegangenen Abschnitt wurden dazu als ersten Schritt die Datenkonzepte identifiziert und modelliert. In diesem Abschnitt sollen die Komponenten der Plattform selbst
herausgearbeitet werden. Über die Beschreibung in diesem Abschnitt hinausgehende Details finden
Sie in der Spezifikation der Prototypimplementierung zu dieser Arbeit, dem Cobricks-System 3 .
3
Siehe hierzu http://www.cobricks.de/
54
3.3 Community-Dienste
3.3.1
Komponenten und Funktionalitäten
Bei der Identifikation der Komponenten werden die schon in Kapitel 2 ausgearbeiteten Basisdienste
herangezogen:
Benutzerprofilverwaltung
Inhalteverwaltung
Kategorienverwaltung und Benutzerlistenverwaltung
Kontextverwaltung
Mitteilungsmanagement
Awareness/Matchmaking
Personalisierung
Die Grundmodule orientieren sich also entweder an den Basisdaten, die in der Plattform verwaltet werden sollen, und machen diese über öffentliche Methoden nach außen verfügbar (für andere
Komponenten oder andere Plattformen), oder an Basisdiensten, die dem Benutzer zur Unterstützung
angeboten werden sollen.
Der im letzten Abschnitt angesprochenen großen Bedeutung der Referenzen zwischen den Datenobjekten tragen wir durch eine zusätzliche Komponente zur Verwaltung der Kontexte Rechnung. Hier
wird alle Kontextinformation (explizite und implizit in den anderen Komponenten definierte) an einer
Stelle gesammelt und zur Verfügung gestellt.
Nachdem Komponenten unabhängig von einer Benutzungsschnittstelle sein sollten und für mehrere
Benutzungsschnittstellen zur Verfügung stehen sollten, gibt es zusätzlich noch Komponenten zur
Realisierung von Benutzerinteraktion. Weiterhin existieren noch Komponenten zur Realisierung von
Datenaustausch mit anderen Plattformen (siehe Abbildung 3.2).
Web portal
Personalisierung
Inhalte
und
Anmerkungen
Kategorien
Matchmaking
Benutzerprofil
Kontexte
Mitteilungen
Import/
Export
Abbildung 3.2: Community-Unterstützungssystem Architekturüberblick
Wie in Kapitel 4 noch ausführlich diskutiert wird, verfolgen wir bei der Benutzerdatenverwaltung
einen Ansatz, der Datenspeicherung und Dienste voneinander trennt. Aus diesem Grund ist die Verwaltung ausgelagert. In den Plattformen gibt es nur eine Komponente, welche die Daten der lokal
registrierten Benutzer zwischenspeichert.
55
3 Modularisierung von Community-Unterstützungssystemen
Ein ähnlicher Ansatz wäre auch bei der Datenverwaltung für Items vorstellbar. Hier wird aber eine Plattform-zentrierte Verwaltung verfolgt. Grund dafür ist, dass die auf Community-Plattformen
gesammelten Informationen meist sehr speziell für die Community erstellt sind oder von den Mitgliedern gar nicht nach außen weitergegeben werden wollen. In unserem Modell ist ein Datenaustausch
zwischen Plattformen vorgesehen. Beim Einsatz von Prototypen der Plattform haben wir aber festgestellt, dass nur wenig Interesse an dieser Funktionalität besteht. Stattdessen wird der Ansatz des
Ansprechens mehrerer Plattformen über Benutzer-Agenten weiter verfolgt (siehe auch Abbildung
3.3).
Web portal
Personalisierung
HTTP
Kategorien
Inhalte
und
Anmerkungen Kontexte
Matchmaking
Benutzerprofil
Mitteilungen
BenutzerAgent
RPC
Import/
Export
RPC
Web portal
Personalisierung
Kategorien
Inhalte
und
Anmerkungen Kontexte
IDRepository
Matchmaking
Benutzerprofil
Mitteilungen
Import/
Export
Abbildung 3.3: Interaktion mit und zwischen Community-Plattformen
Unser Grundmodell für modulare, parametrisierbare Community-Plattformen sieht also folgendermaßen aus:
zentrale Benutzerprofilverwaltung (IDRepository)
verschiedene Community-Plattformen
– Benutzerprofilcache
– Inhalteverwaltung
– Kategorienverwaltung und Benutzerlistenverwaltung
– Kontextverwaltung
– Mitteilungsmanagement
– Awareness/Matchmaking
– Personalisierung
– Web-Benutzungsschnittstelle (für Web-Zugriff auf die eine Community-Plattform)
– Datenaustauschkomponente (zum Austausch mit anderen Plattformen)
verschiedene Endbenutzer-Clients (Benutzer-Agenten), die auf ein oder mehrere Plattformen
zugreifen
56
3.3 Community-Dienste
Die Aufteilung von Benutzerprofilverwaltung, Community-Plattform und Endbenutzer-Clients spiegelt eine mögliche Aufteilung auf Rechner und Verantwortungsbereiche wieder.
Die Komponenten kommunizieren über klare Schnittstellen miteinander. Dabei sind sowohl direkte
Funktionsaufrufe als auch der Empfang von Ereignismeldungen möglich. In folgenden Abschnitten
werden die einzelnen Komponenten noch näher herausgearbeitet.
3.3.2
Benutzerprofilverwaltung
Ein zentraler Dienst bei der Community-Unterstützung ist die Erfassung und Verfügbar-Machung von
Information zu den Community-Mitgliedern. Dabei ist zu unterscheiden zwischen der Bereitstellung
für Dienste der Plattform wie die Personalisierung und der Bereitstellung direkt für andere Benutzer
(für Awareness-Dienste).
Herausforderungen bei der Handhabung von Benutzerprofilen sind neben der Modellierung der Informationen die Beschaffung der Information und die Garantierung der vom Benutzer gewünschten
Privatheit.
Dieses Thema soll in diesem Abschnitt nur gestreift werden. Es wird separat in Kapitel 4 dieser
Arbeit behandelt.
(Lokale) Rechteverwaltung
Ein Teil der Benutzerprofilverwaltung ist die Funktionalität, die lokale Zugriffsrechte auf einer Plattform definiert. Die Grundphilosophie bei Communities ist dazu zuerst einmal, dass alle Mitglieder
dieselben Rechte haben. Eine sinnvolle Festlegung wäre hier:
Jeder (angemeldete) Benutzer darf Inhalte erzeugen
Jeder Benutzer darf (beliebige) Inhalte annotieren
Jeder Benutzer darf die von ihm erzeugten Inhalte und Annotationen modifizieren und löschen
Jeder Benutzer darf Mitteilungen versenden
Jeder Benutzer darf die (öffentlichen) Informationen zu anderen Benutzern durchsuchen und
einsehen
Jeder Benutzer darf Kategorien anlegen, editieren und löschen
In der Praxis hat sich allerdings gezeigt, dass teilweise Nutzer (Administratoren, Moderatoren) mit
zusätzlichen Rechten ausgestattet werden sollen und teilweise Rechte eingeschränkt werden sollen.
Aus diesem Grund haben wir uns dazu entschlossen, die Rechte nicht fest in die Plattform zu kodieren, sondern separat als Teil der lokalen Benutzerverwaltung zu verwalten. Konkret sind für die
einzelnen Objekte, die auf einer Plattform existieren, und alle Aktionen, die auf ihnen möglich sind,
Rechte (capabilities) definiert. Diese Liste ist für neue Komponenten erweiterbar. Rechte können
der breiten Basis an Arbeiten zu rollenbasierter Zugriffskontrolle (z.B. (Ferraiolo und Kuhn 1992))
folgend in Form von Rollen zusammengefasst werden und dann Benutzern zugewiesen werden.
57
3 Modularisierung von Community-Unterstützungssystemen
USERComponent
searchUser(query) -> Set of USER
getUserAttribute(USER, aname) -> Object
setUserAttribute(USER, aname, avalue)
getUserModel(USER) -> USERMODEL
createUser() -> USER
deleteUser(USER)
getPermissions(USER) -> Set of CAPABILITY
checkPermission(USER, CAPABILITY)
addPermission(USER, CAPABILITY)
removePermission(USER, CAPABILITY)
3.3.3
Inhalteverwaltung
Aufgabe der Inhalteverwaltung ist die Verwaltung im vorherigen Hauptabschnitt behandelten Items
und aller Daten, die mit diesen Items zu tun haben. Das sind im einzelnen:
Items und Item-Anmerkungen (Instanzen)
Item-Anhänge
Einordnungen von Items in Kategorien (allgemein (Kontext-)Referenzen von Items auf andere
Datenobjekte)
Diese Daten müssen erzeugt, abgefragt, aktualisiert und gelöscht werden können. Hierfür müssen an
der Schnittstelle der Komponente Methoden angeboten werden.
Um die Berücksichtigung der Zugriffsrechte zu garantieren, ist es nun notwendig, dass die Identität
des aufrufenden Benutzers bei der Durchführung der Anfrage bekannt ist. Nachdem die Durchführung der Authentifizierung von der konkreten Benutzungsschnittstelle abhängig ist, müssen hier verschiedene Möglichkeiten vorgesehen werden. Dies wird durch folgendes zweistufige Vorgehen realisiert: Auf der untersten Ebene gibt es eine Funktion, die die Identität des aufrufenden Benutzers als
Aufrufparameter geliefert bekommt. Diese Funktion kann aber nur innerhalb des Prozesskontextes
aufgerufen werden (also beispielsweise von der Web-UI-Komponente, welche die Authentifizierung
durchgeführt hat). Nach Außen bietet die Komponente oder die Komponentenplattform eine entsprechende Funktion an, welche die Identität eindeutig ermittelt und diese Information an die innere
Schicht weitergibt.
Die konkrete Abwicklung des Zugriffs und des Umgangs mit Items wird in der Benutzungsschnittstelle realisiert. In der Item-Komponente müssen aber die Basis-Unterstützungsmöglichkeiten vorgesehen werden: Pull-Zugriff, d.h. der Benutzer (bzw. sein Client) fragt explizit nach Items, die einer
gewissen Spezifikation genügen, und Push-Zugriff, d.h. der Benutzer oder sein Client haben implizit
oder explizit Interesse registriert und erhalten automatische Mitteilungen zu neuen oder gerade zum
Kontext passenden Items.
Sowohl beim Pull- als auch beim Push-Zugriff stellt sich die Frage, wie Anfragen an die Daten
(Suchanfragen) spezifiziert werden können. Wichtig hier ist, dass keine Einschränkungen für spätere
Erweiterungen der Datenmodelle entstehen. Nachdem die Inhaltedaten auch mit Benutzerdaten und
Kategoriendaten in Verbindung stehen, sollten Anfragen auch auf diese Beziehungen ausgedehnt
58
3.3 Community-Dienste
werden können. Wir haben hierzu eine Lösung entwickelt, die auf allgemeinen Abfragesprachen
basiert. Diese Lösung wird in Abschnitt 3.4 näher vorgestellt.
Während Pull-Zugriffe einfach durch Methodenaufruf realisiert werden, muss für Push-Zugriff noch
mehr festgelegt werden. Als Grundannahme wird dazu davon ausgegangen, dass alle Information
über Interessen (sowohl explizit ausgesprochene Abonnements als auch implizit aus anderen Informationen zum Benutzer ableitbare Informationen) im Benutzerprofil gespeichert sind und somit von
der Benutzerprofilkomponente verwaltet werden. Die Funktionalität um aus Neuigkeiten Mitteilungen zu generieren, könnte nun in der Item-Komponente, in der Benutzerprofilkomponente, in der
Message-Komponente oder in einer neuen Komponente angesiedelt werden. Nachdem eine solche
Komponente, die aus Benutzerinteressen und Ereignissen Mitteilungen generiert nicht nur auf ItemEreignisse beschränkt sein sollte, verbietet sich eine Ansiedlung in der Item-Komponente. Nachdem
es sich allgemein um ein „über Ereignisse in der Community auf dem Laufenden bleiben“ handelt,
haben wir uns dafür entschieden, die Funktionalität in einer neuen Awareness-Komponente anzusiedeln (siehe hierzu auch Abschnitt 3.3.6).
ITEMComponent
createItem(USER, ITEMTYPE) -> ITEM
deleteItem(USER, ITEM)
updateItem(USER, ITEM, aname, avalue)
addItemAnnotation(USER, ITEM, ITEMANNOTATION)
removeItemAnnotation(ITEMANNOTATION)
updateItemAnnotation(ITEMANNOTATION, aname, avalue)
addItemAttachment(USER, ITEM, ITEMATTACHMENT)
removeItemAttachment(ITEMATTACHMENT)
updateItemAttachment(ITEMATTACHMENT, aname, avalue)
searchItems(query) -> Set of ITEM
getItemModel(ITEM) -> ITEMMODEL
3.3.4
Kategorien und Benutzerlisten
Zur Kategorisierung von Information und zur Gruppierung von Community-Mitgliedern in Untergruppen wurden im vorherigen Kapitel mit Kategorien und SharedUserList zwei eng verwandte Konzepte eingeführt. Im Grund handelt es sich dabei nur um verschiedene Klassen des allgemeinen
Kategorien-Konzeptes.
Die CategoryComponent hat die Aufgabe solche Kategorien und die Beziehungen dazwischen zu verwalten. Neben den Basisfunktionen können hier weiterhin Funktionen zur kollaborativen Erstellung
von Kategorienbäumen und zur Abbildung von Kategorien aufeinander angeboten werden.
So wurde im CommunityItemsTool ein Ansatz getestet, der jedem Community-Mitglied eine eigene Kategorisierung erlaubt. Neben einer Community-Kategorisierung gibt es also noch die einzelnen User-Kategorisierungen (User-Folder). Im Projekt Caiman (Dissertationsprojekt von Martin
Lacher) wird gerade untersucht, wie automatische Unterstützung bei der Abbildung verschiedener
Kategorisierungen (Taxonomien) aufeinander realisiert werden kann. Neben der Anwendung in der
Community-Plattform (zum Abbilden persönlicher Kategorisierungen aufeinander) kann diese Lösung auch in der Import/Export-Komponente zur Abbildung mehrerer Community-Kategorisierungen
aufeinander angewandt werden.
59
3 Modularisierung von Community-Unterstützungssystemen
CATEGORYComponent
createCategory() -> CATEGORY
deleteCategory(CATEGORY)
updateCategory(CATEGORY, attributes)
searchCategories(query) -> Set of CATEGORY
createSharedBuddyList() -> SHARED-BUDDYLIST
addToSharedBuddyList(SHARED-BUDDYLIST, USER)
removeFromSharedBuddyList(SHARED-BUDDYLIST, USER)
getCategoryModel(CATEGORY) -> CATEGORYMODEL
3.3.5
Kontexte
Bei Kontexten handelt es sich um Referenzen zwischen Datenobjekten, also um Beziehungen von
einem Datenobjekt (User, Item oder Category) zu einem oder mehreren Datenobjekten vom selben
Typ oder von einemunterschiedlichen Typ.
Kontexte können wie alle anderen Datenkonzept mit Attributen näher beschrieben werden und sind
in einer Ontologie mit unterschiedlichen Kontext-Klassen definiert.
Die ContextComponent hat die Aufgabe eine explizite Verwaltung von Kontexten zu erlauben, sowie
den Zugriff auf explizit definierte Kontexte und auf implizit in den anderen Komponenten definierte
Kontexte zu erlauben.
CONTEXTComponent
createContext() -> CONTEXT
deleteContext(CONTEXT)
updateContext(CONTEXT, attributes)
searchContext(query) -> Set of CONTEXT
getContextModel(CONTEXT) -> CONTEXT
3.3.6
Mitteilungsmanagement
Neben der indirekten Kommunikation über Inhalte stellt die direkte Kommunikation zwischen den
Community-Mitgliedern eine wichtige Unterstützungsmöglichkeit dar.
Wie schon in Abschnitt 3.2 diskutiert worden ist, sind hier Freitext-Mitteilungen mit verschiedener Adressatenspezifikation notwendig. Die Adressaten sollen sowohl durch Aufzählung, als auch
durch Spezifikation anhand von Kontextattributen spezifiziert werden können. Zur Ausgestaltung der
Mitteilungsfunktionalität sind vor allem noch die Themen Zustellungskanäle und Kommunikationspräferenzen bzw. Privatheit zu besprechen.
Unter Zustellungskanälen bzw. Kommunikationskanälen versteht man verschiedene Wege, auf denen Mitteilungen die Community-Mitglieder erreichen können. Die Realisierung und die Auswahl
der Kanäle könnte einer externen Messaging-Lösung übertragen werden. Wir haben uns aber dafür entschieden, das Kanalmanagement in der Community-Plattform selbst abzuwickeln, da nur
hier ausreichend Information zu Zweck der Kommunikation und zu den Kommunikationspartnern
(und ihren Beziehungen untereinander) vorhanden ist. Aus diesem Grund ist es in der MessageKomponente möglich, verschiedene Kommunikationskanäle anzusprechen. Momentan werden die
60
3.3 Community-Dienste
folgenden Kanäle unterstützt (eine modulare Erweiterung ist aber einfach möglich):
lokale Mailbox (in Message-Komponente verwaltet)
E-Mail
Instant Messaging / volatile Notifikationen
SMS
Um eine Erweiterung dieser Kanalliste zuzulassen, werden die Kanäle nach groben Kriterien klassifiziert: Pull (Interne Mailbox, E-Mail), Push-wichtig (SMS), Push-wenn-gerade-online (Messaging,
volatile Notifikationen). Mit Hilfe von benutzerspezifischen Regeln kann für Nachrichten basierend
auf den Nachrichtenattributen und den Attributen im Benutzerprofil des Absenders und des Empfängers festgelegt werden, welchen Weg Nachrichten nehmen. Ein Beispiel für eine solche Regeldefinition ist in Abschnitt 4.4.1 für Benutzerprofil-Zugriffsrechte angegeben. Weitere Information zu den
Mitteilungsregeln finden sich in der Entwicklerdokumentation zum Projekt Cosmos (Groh 2002).
Neben Community-Mitgliedern als Nachrichtenversender gibt es noch den Spezialfall, dass die Plattform selbst Nachrichten an Benutzer verschickt. Dies geschieht aufgrund von implizit oder explizit
geäußerten Präferenzen angestoßen durch Ereignisse, die durch Benutzeraktionen auf der Plattform
ausgelöst werden. Nachdem es sich dabei um eine Awareness-Funktionalität handelt, ist die konkrete
Funktionalität in der Awareness-Komponente realisiert.
MESSAGEComponent
sendMessage(USER, MESSAGE)
getMessagesFromLocalMailbox() -> Set of MESSAGE
deleteMessageFromLocalMailbox(MESSAGE)
Die Spezifikation der Empfänger und der Wichtigkeit einer Mitteilung erfolgt als Attribute im MESSAGE-Objekt, das der sendMessage()-Methode mitgegeben wird.
3.3.7
Awareness und Matchmaking
Eine wichtige Rolle von Community-Unterstützung ist die Unterstützung der Community-Mitglieder
beim Finden von anderen Mitgliedern. Dazu können zwei Klassen von Funktionen eingesetzt werden: Durch Awareness-Funktionen wird ein Benutzer informiert, was auf der Community-Plattform
passiert und was andere Mitglieder gerade machen, beim Matchmaking wird versucht aus den Informationen über die Mitglieder auf Anfrage oder proaktiv direkt mögliche Kommunikationspartner
vorzuschlagen.
Awareness
Unter Awareness versteht man das Wissen über Aktivitäten anderer, das für die eigene Tätigkeit relevant sein kann. Awareness ist ein innerer Zustand einer Benutzerin oder eines Benutzers, der in der
Kenntnis von historischen Daten, aktuellen Zustandsbeschreibungen und in Erwartung über das zukünftige Verhalten eines verteilten Kooperationssystems (Computersystem und Kooperationspartner)
61
3 Modularisierung von Community-Unterstützungssystemen
besteht (Hoffmann 2002). Die klassische Definition dazu aus dem Bereich der Rechnergestützten
Gruppenarbeit geht zurück auf Dourish und Bellotti:
„Awareness is an understanding of the activities of others to provide a context for your
own activities.“ (Dourish und Bellotti 1992)
Das Thema Awareness ist stark mit den Benutzungsschnittstellen verbunden. Es geht vielfach darum, Information, die von den verschiedenen Komponenten geliefert wird (z.B. über den Autor eines Items) prominent anzuzeigen und darüber eine einfache Verbindung zu Community-Mitgliedern
oder Informationen herzustellen. Awareness-Funktionen werden deshalb vielfach in der Benutzungsschnittstellen-Komponente unter Abstützung auf die einzelnen „Fachkomponenten“ realisiert.
Zusätzlich zu den (Fach-)Komponenten-spezifischen Awareness-Funktionen gibt es aber doch einige
Grundfunktionalitäten, die in einer spezifischen Awareness-Komponente realisiert werden können:
Filterung von Informationen und proaktive Bereitstellung von Information.
Filterung von Informationen bedeutet dabei eine Awareness-spezifische Personalisierung, d.h. die
Auswahl von Informationen, die abhängig vom aktuellen (Nutzungs-)Kontext angezeigt werden sollen. Diese kontextabhängige Anzeige kann proaktiv erfolgen (Push) oder auf Anfrage des Benutzers
(Pull). Die Filterung von Awareness-Information kann durch Erweiterung der Funktionen der Personalisierungskomponente realisiert werden. Neben der Auswahl aus den aktuellen und vergangenen
Ereignissen können hier auch zukünftige Ereignisse vorhergesagt werden, d.h. Informationen bzw.
Vorhersagen bereitgestellt werden, die Benutzern beim Aufbau von Erwartungen zu zukünftigen Ereignissen und Entwicklungen unterstützen (Hoffmann 2002).
Der Begriff proaktive Information ist schon mehrfach angesprochen worden. Darunter versteht man
die Erzeugung von Hinweisen auf Aktivitäten und Informationen in der Plattform für einen speziellen Benutzer und die automatische (ungefragte) Anzeige bzw. Zustellung dieser Information (Push).
Diese Informationen werden basierend auf impliziten und expliziten Abonnements im Benutzerprofil
erzeugt und per Messaging an den Benutzer weitergeleitet.
In den Bereich Abonnements fallen beispielsweise auch die sogenannten „Subscriptions“, die es auf
vielen Plattformen gibt. Hier werden explizit Kategorien als Interessenskategorien markiert oder
allgemeine Abfragen mit dem Wunsch registriert, Items, die zu diesen Abfragen publiziert werden,
direkt an den Benutzer weiterzuleiten. Neben dieser expliziten Form des Abonnements sind aber
auch verschiedene Arten der Auswertung von Kontext- und Benutzerprofilattributen denkbar um neue
Ereignisse oder schon länger vorhandene Information zuzustellen. Diese Funktionalitäten sind in der
Awareness-Komponente gesammelt.
Matchmaking
Beim Matchmaking wird Profilinformation verschiedener Community-Mitglieder mittels geeigneter
Algorithmen miteinander verglichen um automatisch Vorschläge für potentielle Kommunikationspartner zu generieren, die dann an der Benutzungsschnittstelle angezeigt werden können oder zu
proaktiven Mitteilungen führen können.
Eine wichtige Teilfunktionalität ist dabei die Berechnung von Benutzerkorrelationen. Hierzu werden
Bewertungen, die Benutzer zu Objekten (z.B. Informationen auf der Plattform oder externe Objekte
wie Kinofilme) abgegeben haben, zusammengefasst und mit statistischen (Korrelations-)Methoden
daraus eine Ähnlichkeit zwischen den Benutzern (hinsichtlich ihrer Interessen) berechnet. Die Ähnlichkeit wird dabei meist in Form eines Korellationskoeffizienten im Wertebereich von -1 (absolut
62
3.3 Community-Dienste
gegensätzlich) bis +1 (absolut gleichartig) angegeben. Diese Information kann entweder für kollaborative Filterverfahren oder für die direkte Ermittlung von potentiellen Kommunikationspartnern
genutzt werden.
Matchmaking und Awareness werden momentan zusammen in einer Komponente realisiert. Die
Awareness/Matchmaking-Komponente stellt allgemeine Funktionen zur Generierung von Vorschlägen zur Verfügung. Dabei arbeitet sie mit der Personalisierungskomponente zusammen.
AWARENESSMATCHMAKINGComponent
setAwarenessFilter(USER, query)
generateUserMatches(USER, query) -> Set of USER
Die Methode generateUserMatches() liefert Empfehlungen für Benutzer, die unter den Rahmenbedingungen der angegebenen Anfrage mit dem anfragenden Benutzer übereinstimmen.
Zusätzlich zu diesen Methoden gibt es noch Verbindungen zu allen Komponenten, die Awarenessrelevante Ereignisse erzeugen, und zur Messaging-Komponente und den Benutzungsschnittstellen
zur Mitteilung von Awareness-Information.
3.3.8
Personalisierung
Die Ausrichtung verschiedener Funktionalitäten oder Elemente der Benutzungsschnittstelle auf die
persönlichen Interessen des Benutzers wurde bereits an verschiedenen Stellen angesprochen. Die
Personalisierungskomponente stellt allgemeine Funktionen zur Ermöglichung von Personalisierung
zur Verfügung. Durch Erweiterung der Komponente in konkreten Plattformen oder durch Realisierung neuer Komponenten basierend auf diesen Funktionalitäten können einfach domänenspezifische
Personalisierungfunktionen erreicht werden.
Die Funktionalität, die zu den Basiskomponenten gerechnet wird, ist
Berechnung von Benutzerkorrellationen basierend auf Bewertungen (siehe Matchmaking-Komponente)
Generierung von Vorschlägen nach verschiedenen Filterverfahren - hierzu gehören sowohl regelbasierte als auch kollaborative Verfahren
Um eine möglichst generische Kombination von Filterverfahren zu erlauben unterstützt die Komponente die Definition von allgemeinen Workflows für die Generierung von Empfehlungen.
PERSONALIZATIONComponent
generateRecommendation(USER, query) -> Set of ITEM
Personalisierung und Personalisierungsmethoden werden ausführlich in folgenden Veröffentlichungen besprochen: (Koch u. a. 2002b), (Koch und Schubert 2002), (Schubert und Koch 2002) und (Koch
2001b). Ein Einsatz ist bisher vor allem in der Cosmos-Plattform und der SFB582-Plattform erfolgt
(siehe Abschnitte 5.5 und 5.6).
63
3 Modularisierung von Community-Unterstützungssystemen
3.4
Konfigurierung
Damit aus den generischen Komponenten verschiedene Plattformen realisiert werden können, muss
eine einfache Konfigurierung möglich sein. Allgemein verstehen wir hierunter
eine Festlegung der benutzten Komponenten,
eine Definition der Beziehungen zwischen den Komponenten und
eine Parametrisierung der Komponenten
um die resultierende Plattform auf die konkreten Bedürfnisse der unterstützten Community einzustellen.
Parametrisierung bedeutet dabei, dass während der Implementierung einer Komponente einige Einstellungen offen gelassen worden sind und zur Laufzeit belegt werden können. Ein Beispiel dafür ist
das Setzen von konkreten Ontologien für die Datentypen.
In den folgenden Unterabschnitten bespreche ich die Konfiguration und Parametrisierung verschiedener Teile der Community-Plattform:
Benutzungsschnittstelle
Datenkonzepte (Ontologien)
Abfragesprache
Komponentenfunktionalität
Konfiguration der Benutzungsschnittstelle
An der Benutzungsschnittstelle treffen Layout, Inhalt und Ablauflogik zusammen. Schon in Smalltalk80 wurde hier das sogenannte Model/View/Controller (MVC) Pattern propagiert um die drei Aspekte
in der Implementierung voneinander zu trennen (Krasner und Pope 1988). Das Pattern findet sich
in der einen oder anderen Form in allen Frameworks zur Programmierung von (graphischen) Benutzungsschnittstellen wieder.
Die Grundidee verschiedener Aktivitäten in den letzten Jahren war die Bereitstellung von Konzepten,
die eine Aufteilung der verschiedenen Aspekte auf verschiedene Personen erlauben:
Designer legt Layout fest
Domänenexperte legt Inhaltsstruktur fest
Programmierer realisiert Logik
Zur Trennung von Layout und Inhalt gibt es inzwischen verschiedene Stylesheet-Konzepte. D.h. der
Inhalt wird in einer Auszeichnungssprache (z.B. eine XML-Darstellung von Datenstrukturen) logisch
ausgezeichnet und über Stylesheet-Regeln (z.B. XSLT) werden die Datenelemente umsortiert und mit
Layoutattributen angereichert. So kann aus XML-Datenstrukturen einfach eine HTML-Darstellung
der Daten generiert werden.
Auch zur Trennung von Layout, Inhalt und Logik gibt es bereits einige Ansätze:
64
3.4 Konfigurierung
Java Server Pages (JSP): Model = Java Beans = Content, View = Java Server Pages = Layout,
Controller = Java Servlet = Logik
Cocoon (XML, XSLT, Servlets)
Template Engines (z.B.. Velocity, WebMacro, HTML++)
Grundidee bei allen aufgelisteten Technologien ist es, die Funktionalität (Logik) in Komponenten zu
realisieren, welche über Prozeduraufrufe angesprochen werden. In Inhalts-Templates werden dann
die Prozeduraufrufe eingebettet. Beim Layout der Seiten werden die Ergebnisse (welche z.B. in einer
XML-Darstellung geliefert werden können) über Stylesheets in die Darstellung eingebaut.
Für die Community-Unterstützungs-Plattformen haben wir eine generische Web-Benutzungsschnittstelle geschaffen, welche die Trennung von Logik-Komponenten und Darstellungs-Templates realisiert.
Die Konfiguration der generischen Web-Benutzungsschnittstelle über Templates sieht folgendermaßen aus. Die Web-UI bietet nur die Funktionalität zum Parsen von Web-Templates. Solche Templates
werden wie normale Web-Seiten im Webspace der Web-UI abgelegt (und so einer URI zugeordnet).
Der Webspace kann dabei im Dateisystem oder in einem Datenbanksystem realisiert sein. Die Templates beinhalten erstens HTML- oder WML-Code und zweitens Aufrufe von öffentlichen Methoden
beliebiger Komponenten in der Plattform. Die aufgerufenen Methoden liefern ihre Ergebnisse als
XML-Dokumente oder die Web-UI sorgt dafür, dass eine Umwandlung in XML-Dokumente erfolgt.
Zum Funktionsaufruf wird im Template dann noch ein XSLT-Stylesheet angegeben, das die Umwandlung der XML-Ergebnisse in HTML, WML etc. steuert.
Mit dieser generischen Web-Benutzungsschnittstelle können ohne Programmierung beliebige Seiten
erstellt werden, die beliebige Komponenten aufrufen und deren Ergebnisse beliebig darstellen.
Die Behandlung von Benutzereingaben wird ähnlich gehandhabt. Hier wird in den Formularen auf
den HTML-Seiten eine generische URL aufgerufen, welche von der Web-UI behandelt wird. Beim
Aufruf wird angegeben, welche Funktion aufzurufen ist und wie die Anfrageparameter auf Funktionsparameter abgebildet werden.
Für einige Fälle sind in der Web-UI spezielle Funktionen implementiert, die die Funktionalität mehrere Komponenten zusammenfassen. Grundsätzlich ist es aber auch möglich ohne neue Funktionen
in der UI-Komponente auszukommen.
Auch eine Berücksichtigung der Domäneninformation an der Benutzungsschnittstelle ist möglich.
Hierzu kann die Auswahl der formatierenden Stylesheets von Rückgabewerten der aufgerufenen
Funktion abhängig gemacht werden. Wird als ein Rückgabewert (spezielles Element im XMLRückgabedokument) der Datentyp eines Items oder eine Kategorie angegeben, dann kann die Ausgabe davon abhängig gemacht werden.
Konfiguration der Datenkonzepte
Wichtiger noch als die Benutzungsschnittstelle ist die Konfiguration der Gesamtfunktionalität. Hierzu
ist durch die starke Generalisierung der Datenkonzepte in Abschnitt 3.2 der Hauptgrundstein gelegt
worden. So ist es einfach möglich, die Grundkonzepte Item, User, Category, Context und Message
entsprechend der Anforderungen der unterstützten Community auszufüllen.
65
3 Modularisierung von Community-Unterstützungssystemen
Die Datenkonzepte werden durch Parametrisierung der Komponenten gesetzt. Dazu müssen die Konzepte aber in Dateien kodiert werden. Zur Kodierung solcher Information gibt es bereits einige Darstellungsstandards.
Zuerst sind hier XML-Document-Type-Definitionen (DTDs) und XML-Schema zu nennen um eine
Grammatik für allgemeine Datenstrukturen zu definieren. Gegenüber DTDs hat XML-Schema hat
den Vorteil, dass das Schema selbst in XML definiert ist. Zur Trennung von Daten und Beziehungen
zwischen Daten wurde RDF (Ressource Description Framework) definiert. Als Standards zur Darstellung von allgemeinen Ontologien sind schließlich noch XOL (Karp u. a. 1999) und DAML+OIL
(siehe www.daml.org) zu erwähnen.
Für die Prototypplattformen wurde vorerst eine einfache Lösung zur Kodierung der Datenstrukturen in einer XML-basierten Ontologiebeschreibung gewählt. An einer Erweiterung für allgemeine
Ontologien (mit RDF und DAML+OIL) wird gerade gearbeitet.
Abfragesprache
Neben der Kodierung der Datenstrukturen und der Regeln dazu ist es auch notwendig, eine allgemeine Abfragesprache (engl. query language) zur Formulierung von domänenspezifischen Abfragen
bereitzustellen (für den Programmierer oder Konfigurator von speziellen Komponenten und für den
Endbenutzer).
Allgemein handelt es bei Abfragesprachen um formale Sprachen zum Abrufen von Daten aus einer Datenbank. Standardisierte Abfragesprachen gibt es für den Abruf von Daten aus relationalen
Datenbanken (SQL - Structured Query Language) oder objektrelationalen bzw. objektbasierten Datenbanken (SQL3 und OQL - Object Query Language).
Neben den Lösungen für strukturierte Daten gibt es auch erste Standards für die Formulierung von
Abfragen auf semi-strukturierten Datenbeständen. Dabei werden die Daten meist als XML-Dokumente modelliert. Beispiele für Abfragesprachen zu XML-Dokument-Datenbanken sind:
XQL und XPath: XPath-Ausdrücke wählen Teile von XML-Dokumenten aus - XQL ist eine
Variante von XPath, speziell zur Abfrage von XML-Dokumenten.
XML-QL: XML-QL lehnt sich an Abfragesprachen aus der Datenbank-Community an und ist
ähnlich wie SQL aufgebaut; so ist das Basiskonstrukt von XML-QL „WHERE pattern IN uri
CONSTRUCT pattern“.
Neben diesen Abfragesprachen für strukturierte und semi-strukturierte Datenbestände gibt es noch
die Möglichkeit, die Daten als Logik-Programme zu interpretieren und Abfragen mittels Deduktionsregeln zu formulieren. Ein Beispiel hierzu sind Frame-Logik-Ausdrücke. Frame-Logik ist eine
mächtige Sprache, die deduktive und objektorientierte Konzepte miteinander verbindet. Durch den
deduktiven Anteil wird eine Definition von Daten durch Regeln erlaubt und damit rekursive Anfragen ermöglicht, durch den objektorientierten Anteil ist es möglich Anfragen auf komplex strukturierte
Objekte mit Objektidentität, die hierarchisch angeordneten Klassen zugeordnet sind, durchzuführen.
Schließlich gibt es auch noch Konzepte, die Metadatenkonzepte bei semi-strukturierten Daten (XML)
und Logik-Abfragesprachen kombinieren. Ein Beispiel dafür ist Metalog (Marchiori und Saarela
1998).
66
3.4 Konfigurierung
Für die bisherigen Prototypplattformen wurde folgende Lösung gewählt: Die Daten, auf die eine
Anfrage auszuführen sind, werden anhand des Datenmodells auf virtuelle XML-Dokument abgebildet. Dabei werden Referenzen aufgelöst und die Zieldaten als XML-Unterdokumente aufgenommen.
Eine Anfrage wird dann einfach als reduzierter XPath-Ausdruck auf der Menge aller virtuellen Dokumente dargestellt.
Nachfolgend ein Beispiel für ein solches virtuelles XML-Dokument:
item
typeshort msg /typeshort
title Ein Test für eine Nachricht /title
url http://www11.in.tum.de/index.html /url
author
/author
content
/content
location
/location
origin
/origin
publisheddate ... /publisheddate
startdate ... /startdate
expirationdate ... /expirationdate
publisher
person
login test@localhost /login
vorname
/vorname
nachname
/nachname
lastlogin ... /lastlogin
/person
/publisher
annotations
annotation
id
/id
title
/title
content
/content
language
/language
rating
/rating
publisheddate ... /publisheddate
publisher
person
/person
/publisher
/annotation
/annotations
categories
category 1 /category
category 15 /category
category 16 /category
/categories
/item
Anfragen können dann als XPath-Ausdrücke angegeben werden. Für obiges Dokument wären also
beispielsweise folgende Anfragen denkbar:
67
3 Modularisierung von Community-Unterstützungssystemen
/item/annotations/annotation/publisher/login=’test@localhost’
/item[typeshort=’msg’ and publisheddate<TODAY-10]
/item[typeshort=’msg’] and /item/categories[category in 12,13]
Konfiguration der Komponenten
Neben den Freiheiten der Datenstrukturen bieten die Komponenten noch die Möglichkeit, sie weiterzuentwickeln, basierend auf ihren Diensten neue Komponenten zu entwickeln und in die Plattform
einzubinden, und sie selbst zu parametrisieren.
Schon die Grundidee der Komponentenorientiertheit beinhaltet, dass konkrete Anwendungssysteme
mit minimalem Entwicklungsaufwand durch das mit wenig Rahmen-Code unterstützte Zusammenfügen von Komponenten und Parametrisierung erstellt werden können.
Im Bereich der Groupware gab es einige Arbeiten, die sich mit Anpassbarkeit und Konfigurierbarkeit durch Komponentenkonzepte beschäftigt haben. Zu nennen sind hier insbesondere (ter Hofte
1998), (Teege 1998) und (Stiemerling 2000). Während ter Hofte und Stiemerling den streng komponentenorientierten Ansatz mit Parametrisierung verfolgen, findet sich bei Teege ein aspektorientierter
Ansatz, die „Featurekombination“.
In unseren Prototypplattformen werden die ausgewählten Komponenten(-implementierungen) in einem allgemeinen Komponentenframework instantiiert und verfügbar gehalten. Das Komponentenframework erhält dazu als Parametrisierung eine Liste der zu instantiierenden Komponenten und die
Namen der Klassen, aus denen sie instantiiert werden sollen.
Komponenten erhalten bei der Instantiierung sowohl die Attribute, mit denen das Framework parametrisiert worden ist, als auch eine zusätzliche Menge von Attributen zur Parametrisierung der
konkreten Komponente. Diese Attribute können in Konfigurationsdateien bereitgestellt werden und
können zu Anpassungen wie dem Setzen von Datenbank-Zugangsparametern oder Quelldateien für
die Datentypdefinition genutzt werden.
68
Kapitel 4
Benutzerprofile und
Benutzerprofilspeicherung
„Press Ctrl + Alt + Delete to log on.“,
Microsoft Windows NT opening screen
Eine wichtige Funktionalität bei Community-Unterstützungssystemen ist die Speicherung und
Nutzung von Benutzerprofilen. Aus diesem Grund nimmt diese Funktionalität bei der Konzeption einer generischen Community-Unterstützungsplattform eine zentrale Rolle ein. In diesem
Kapitel führe ich in das Thema Benutzerprofile näher ein und leite ab, wie die Handhabung von
Benutzerprofilen für zukünftige Community-Unterstützungssysteme aussehen sollte. Weiterhin
wird die im Cobricks-Projekt entwickelte und umgesetzte Lösung vorgestellt.
Kapitelinhalt
4.1
Struktur und Nutzung von Benutzerprofilen . . . . . . . . . . . . . . . . . . . 70
4.2
Benutzerprofilspeicherung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
4.3
Modellierung von Benutzerprofilen . . . . . . . . . . . . . . . . . . . . . . . . 77
4.4
Privatheit und Zugriffskontrolle . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Das Thema Benutzerprofilverwaltung beinhaltet neben technischen Aspekten immer mehr auch die
Betrachtung von Vertrauen – sowohl Vertrauen in technische Lösungen als auch in die Betreiber von
Diensten, die Profilinformationen speichern und nutzen. Wie später noch ausführlicher motiviert
wird, verfolgen wir zur Erlangung des Vertrauens der Profileigentümer einen benutzerzentrierten Ansatz bei der Profilverwaltung. Aus diesem Grund sprechen wir häufig auch von Identitätsmanagement
anstelle von Benutzerprofilverwaltung.
Um ein benutzerzentriertes Identitätsmanagement-System zu entwerfen, müssen die folgenden Aspekte behandelt werden
Architektur des Systems
Standard für die Kodierung von Benutzerprofilinformation
Privatheits-Aspekte (Spezifikation und Aushandlung von Zugriffsrechten)
Kryptographische Verfahren zur Authentifizierung von Identitäten und Pseudonymen
69
4 Benutzerprofile und Benutzerprofilspeicherung
Nach einer Einführung zur Struktur und Nutzung von Benutzerprofilen behandle ich in Abschnitt 4.2
die Architektur des Systems. Der folgende Abschnitt 4.3 geht auf die Modellierung von Benutzerprofilinformation ein und der darauf folgende Abschnitt 4.4 auf Zugriffskontrolle und PrivatheitsAspekte. Auf kryptographische Verfahren zur Authentifizierung wird in dieser Arbeit nicht weiter
eingegangen.
Allgemeine Information zu Struktur und Nutzung von Benutzerprofilen ist in (Schubert und Koch
2002) zu finden. Eine Beschreibung der konkreten Lösung im Rahmen des Cobricks-Projektes ist
vor allem in (Koch und Wörndl 2001), (Koch 2002e) und (Koch und Möslein 2003) dokumentiert.
Dieses Kapitel fasst die in diesen Veröffentlichungen erarbeiteten Ergebnisse konsistent zusammen
und führt sie weiter. Insbesondere wird ein konkretes Metamodell und Modell für Benutzerprofile
vorgestellt und die Realisierung der Benutzerprofil-Komponente und des IDRepositories in Cobricks
beschrieben.
4.1
Struktur und Nutzung von Benutzerprofilen
Unter Benutzerprofilen versteht man eine Sammlung von Information, die einen bestimmten Benutzer näher beschreibt oder charakterisiert. Solche Information wird in Community-Plattformen für
folgende Zwecke benötigt:
Personalisierung
Präsentation des Benutzers gegenüber anderen Benutzern; Daten für die Nutzung durch andere
Benutzer; z.B. Geschenkliste, Buch-/DVD-Listen, (öffentlicher) Kalender
Speicherung von Daten für die spätere Nutzung durch den Benutzer selbst; z.B. Kalender,
Kontaktliste
Im Gegensatz zu anderen Systemen, die auf Benutzerprofile hauptsächlich zur Ergänzung der Grundfunktionalität durch Personalisierung zurückgreifen, stellt die Nutzung und Bereitstellung von Information über die Benutzer bei Community-Unterstützungssystemen eine zentrale Funktionalität dar.
Alle Funktionsbereiche, die in Kapitel 2 vorgestellt worden sind, beruhen mehr oder weniger auf der
Nutzung oder Bereitstellung von Profilinformation.
Bevor ich auf die Spezifika der Profilnutzung in Community-Unterstützungssystemen zurückkomme,
gehe ich im Folgenden zuerst kurz auf mögliche Datenquellen ein (Erhebung der Daten) und behandle
dann kurz die mögliche Nutzung von Benutzerprofildaten. Siehe hierzu auch (Koch 2002c), (Koch
u. a. 2002b), (Koch und Schubert 2002), (Schubert und Koch 2002), (Koch 2001b) und (Leckner u. a.
2003).
4.1.1
Erhebung der Daten
Angaben durch den Benutzer
Ein Ansatz zur Erhebung von Benutzerdaten beruht darauf, den Benutzer direkt (z.B. mit Fragebogenformularen) zu befragen und mit den erhaltenen Informationen das Benutzerprofil zu füllen.
Diese Art und Weise der Datenerhebung bietet sich insbesondere bei demographischen Informationen
an, die kaum aus den Aktivitäten des Benutzers abgeleitet werden können. Auch angewendet wird
70
4.1 Struktur und Nutzung von Benutzerprofilen
das Verfahren bei der Erhebung von Information zu den Interessen eines Benutzers. Dazu wählen
Benutzer aus einer vorgegebenen Liste von Themen oder Kategorien eine Untermenge aus.
Neben der einfachen Implementierbarkeit wird häufig eine hohe Datenqualität als Vorteil des Verfahrens genannt. Dem steht allerdings gegenüber, dass Benutzer wegen Zweifel an der Datenschutzerklärung (privacy policy) des Datensammlers und an dem Nutzen, den eine Preisgabe der Daten für sie
selbst hat, häufig keine oder bewusst falsche Daten angeben. Neben den Problemen mit der Motivation des Benutzers bezüglich Aufwand und Privatsphäre finden sich gerade bei Freitextangaben oder
bei einer Auswahl aus einer großen Menge von Alternativen unterschiedliche Interpretationen der
Benutzer, die eine Vergleichbarkeit und Verwertbarkeit der gesammelten Daten schwierig machen.
Bei GroupLens (Resnick u. a. 1994; Sarwar u. a. 1998), einem Filtersystem für Usenet News, muss der
Benutzer z.B. jeden gelesenen Artikel bewerten. Die Bewertungen gehen ins Profil des Benutzers und
werden mit Information-Retrieval-Methoden (u.a. kollaboratives Filtern) analysiert um diesem und
allen anderen Benutzern Vorschläge zu machen. Um den Benutzer von dem zusätzlichen Aufwand,
jeden Artikel zu bewerten, zu befreien, wurde versucht aus der Zeitdauer, die ein Benutzer einen
Newsartikel angezeigt hat, das Interesse an diesem Dokument abzuleiten.
Eine andere Informationsquelle wird bei Siteseer (Rucker und Polanco 1997), einem Empfehlungssystem für Web-Seiten, ausgenutzt. Siteseer geht davon aus, dass Benutzer die Web-Seiten, die sie
besonders interessieren, in ihre Bookmark-Liste aufnehmen, und verwendet die Aufnahme in die
Bookmark-Liste als implizite Interessensbekundung. Eine solche Wiederverwendung von Information, die der Benutzer sowieso verwaltet, findet sich teilweise auch bei elektronischen Terminkalendern
und elektronischen Adresslisten.
Beobachtung des Benutzers
Ohne Aufwand (und teilweise auch ohne Wissen) des Benutzers kann das Benutzerprofil durch Beobachtung der Aktivitäten des Benutzers auf einem Portal oder sonstigem Web-Angebot erstellt werden.
Die beiden wichtigsten Informationsquellen in der Praxis sind der sogenannte „Clickstream“, also
Information zu den Web-Seiten, die ein Benutzer besucht hat, und die „Transaktionshistorie“, d.h.
die Aktivitäten und bei Online-Shops vor allem Bestellungen, die ein Benutzer auf einer Website
ausgeführt hat.
Beim der Auswertung von Clickstream-Daten besteht das Hauptproblem darin, dass eine klare Zuordnung zwischen Web-Seiten und Interessen oder Attributen des Benutzerprofils definiert werden muss.
Auch ist hier schwierig zu klären, ob eine Seite nur versehentlich oder aus Absicht besucht worden
ist, und ob die besuchte Seite dem Interessensprofil des Benutzers entspricht. Auch die Messung der
Zeit zwischen dem Betreten und dem Verlassen einer Web-Seite (soweit überhaupt möglich) liefert
nur einen Ansatzpunkt für das Interesse des Benutzers an der Seite. Eine ausführliche Betrachtung
dieses Themas liefert (Koch 2002a).
Das Problem bei Nutzung von Daten aus der Transaktionshistorie ist hauptsächlich, dass ein Benutzer
auch im Auftrag anderer Personen handeln kann, und dies häufig unter derselben Identität ausführt
unter der er auch für sich agiert.
Ein weiteres Problem bei der Beobachtung des Benutzers ergibt sich durch die rechtliche Situation.
Das Teledienstdatenschutzgesetz (TDDSG) fordert erstens die Beschränkung auf ein Minimum an zu
speichernden Daten und erlaubt nur die zweckgebundene Speicherung und Verwendung. Weiterhin
schreibt das Gesetz für viele Fälle eine explizite Einwilligung des Benutzers vor und fordert die
Bereitstellung einer umfassenden Auskunftsmöglichkeit für den Benutzer (Gentsch 2002).
71
4 Benutzerprofile und Benutzerprofilspeicherung
4.1.2
Nutzung von Profilen - Personalisierung
Eine Anwendung von Benutzerprofilen ist die Personalisierung von Diensten. Unter Personalisierung
versteht man dabei die (automatische) Auswahl aus einer Reihe von Alternativen mit dem Ziel, die
Alternativen zu wählen, die dem Benutzer den größten Nutzen bringt.
Hierbei ist zu unterscheiden zwischen der Auswahl aus verschiedenen Varianten und der Generierung
einer komplett neuen Variante. Ziel der Auswahl kann dabei Information, Diensteigenschaften oder
Vorbelegungen bei Diensten sein.
Bei den Auswahlverfahren ist zu unterscheiden zwischen inhaltsbasierter Filterung und kollaborativer
Filterung.
Inhaltsbasierte Filter
Bei der inhaltsbasierten Filterung werden konkrete Attribute der auszuwählenden Alternativen (z.B.
Items) mit konkreten Attributen des Benutzerprofils des anfragenden Benutzers verglichen. So können Web-Seiten nach Kategorien klassifiziert sein. Diese Metainformation kann dann mit den explizit
als Interessen ausgewählten Kategorien im Benutzerprofil verglichen werden.
Der Vergleich von Inhalt und Benutzerprofil kann regelbasiert erfolgen, binär (wenn die Daten strukturiert vorliegen und aus denselben Domänen stammen), oder über Ähnlichkeitsmaße zwischen einzelnen Attributen oder ganzen Teilen des Profils (z.B. über Vektorraummodelle) wenn die Daten nicht
strukturiert vorliegen.
Die Nachteile des inhaltsbasierten Filterns liegen darin, dass die Alternativen explizit klassifiziert
werden müssen (von der Möglichkeit der automatischen Extraktion solcher Klassifikationsinformation abgesehen). Weiterhin muss diese Klassifizierung allgemein und objektiv sein. So haben die
Verfahren grundsätzliche Probleme bei der Auswahl nach subjektiven Kriterien (z.B.: „Suche einen
Film, der mir gefallen könnte“).
Kollaborative Filter
Beim kollaborativen Filtern versucht man die Nachteile des inhaltsbasierten Filterns zu umgehen, indem die Erfahrungen anderer Benutzer mit berücksichtigt werden. Grundidee dabei ist es Mundpropaganda (word of mouth) in elektronischen Information- und Kommunikationssystemen nachzubilden. Bei der Suche nach Information wird also direkt oder indirekt auf die Erfahrung zurückgegriffen,
die andere Benutzer gemacht haben.
Entsprechend dem Unterschied zwischen direktem und indirektem Zugriff auf andere Benutzer zur
Erzeugung oder Abfrage von Empfehlungen ist zwischen interaktiven Verfahren und automatischen
Verfahren zu unterscheiden. Beim interaktiven kollaborativen Filtern interagieren die Benutzer bei
der Suche nach Information explizit miteinander. Sie tauschen also direkt untereinander Empfehlungen aus (Twidale u. a. 1997; Twidale und Nichols 1996; Nichols 1997).
Die Methode des automatischen kollaborativen Filterns stützt sich auf die Annahme, dass Personen,
die in der Vergangenheit gleicher Meinung waren, voraussichtlich auch zukünftig gleicher Meinung
sein werden. Dabei wird mit Ähnlichkeitsmaßen zwischen Profilen gearbeitet. Es werden Bewertungen von Benutzern erfasst, daraus mit statischen Korrelationsverfahren Benutzer mit ähnlichen
72
4.2 Benutzerprofilspeicherung
Interessen automatisch identifiziert und schließlich die Empfehlungen von ähnlichen Benutzern untereinander ausgetauscht. Die Erfassung der Bewertungen kann explizit durch Abfrage beim Benutzer
oder implizit durch Beobachtung des Benutzers erfolgen.
Weiterführende Information zu kollaborativem Filtern findet sich beispielweise in (Koch 2001b) oder
(Grasso u. a. 1999).
4.1.3
Präsentation
Neben der Personalisierung von Diensten dienen Benutzerprofile noch zur Präsentation der Identität
eines Benutzers gegenüber anderen Benutzern. Ein Sonderfall dabei ist die Präsentation gegenüber
einem Dienst mit anderen Zielen als der Personalisierung, z.B. die Weitergabe von Zahlungsinformation oder Lieferadresse an einen Online-Shop.
Im Gegensatz zur Personalisierung ist bei der Präsentation wichtig, welche Daten wem angezeigt werden. Dies sollte durch den Eigentümer des Benutzerprofils, also den Benutzer selbst, konfigurierbar
sein. Zur Unterstützung der Entscheidung stellen Dienste teilweise Datenschutzerklärungen (privacy
policy) bereit, in denen definiert ist, wie sie mit den bereitgestellten Daten umgehen. Benutzer können
abhängig von Datenschutzerklärungen oder abhängig vom den Diensten selbst Einstellungen treffen,
ob ein Datum keinem, einem eingeschränkten (z.B. über eine Buddyliste definierten Benutzerkreis)
oder allen Benutzern angezeigt werden darf.
4.2
4.2.1
Benutzerprofilspeicherung
Anwendungsunabhängige Profilspeicherung
Benutzerprofile werden heute üblicherweise verteilt bei den verschiedenen Diensten gespeichert, die
sie nutzen. So speichern amazon.com oder bn.com beispielsweise die Interessen und Kaufhistorien
ihrer Kunden um Empfehlungen generieren zu können.
Diese Verschmelzung von Profilspeicherung und Profilnutzung weist verschiedene Probleme auf:
Ein Benutzer muss für verschiedene Dienste dieselben Informationen wieder und wieder bereitstellen.
Dienste können nicht sofort beim ersten Kontakt Empfehlungen geben oder Personalisierung
anbieten, da sie erst (implizit oder explizit) Daten sammeln müssen - „Kaltstartproblem“. Gerade kleine Dienste haben keine Möglichkeit, den Benutzer lange genug zu binden, um ausreichend Informationen für eine Personalisierung zu gewinnen.
Benutzer haben wenig Kontrolle darüber, welche persönlichen Daten gesammelt werden und
welche Daten wo gespeichert sind. Dadurch entwickelt sich kein Vertrauen in die Dienste und
Benutzer geben häufig falsche Information an.
Ein Ansatz zur Lösung der angesprochenen Probleme ist es, die Kontrolle über Benutzerprofile den
Benutzern selbst zurückzugeben (um das Vertrauensproblem zu lösen) und eine Nutzung derselben
Profile durch verschiedene Anwendungen zu erlauben (um das Kaltstartproblem zu lösen).
Zur Umsetzung dieser Ideen muss die Nutzung von Benutzerprofilen (in den Community-Plattformen
oder allgemein in Personalisierungsdiensten) von der Speicherung getrennt werden. Dies eröffnet die
73
4 Benutzerprofile und Benutzerprofilspeicherung
Möglichkeit der Mehrfachnutzung von Profilen und stellt eine einzige Stelle zur Verfügung, an der
Zugriffskontrolle und Benutzer-Awareness (darüber, wer welche Information nutzt) in einer Weise
implementiert werden kann, so dass die Besitzer der Daten dem Speicherungsdienst vertrauen und
gesetzliche Rahmenbedingungen erfüllt werden (Koch 2002c; Koch und Wörndl 2001).
Identitäten, Identitätsmanagement
Wenn man diese benutzerzentrierte Sichtweise einnimmt, spricht man üblicherweise nicht mehr von
Benutzerprofilen und Benutzerprofilverwaltung, sondern von Identitäten und Identitätsmanagement.
Der Begriff Identität wurde schon bei der Diskussion der Schlüsselfaktoren sozialer Gemeinschaften
in Kapitel 2 eingeführt (siehe S.16). Aus soziologischer Sicht versteht man darunter “dauernde innere
Sich-Selbst-Gleichsein, die Kontinuität des Selbsterlebens eines Individuums“ (Köhntopp 2000). Im
technischen Sinne entspricht eine Identität einem Benutzerprofil. Sie kann als Menge von Attributen,
die eine Person näher beschreiben, dargestellt werden.
Unter Identitätsmanagement versteht man dann allgemein das Verfügbarmachen der Information und
die Kontrolle, welche Information welchen Anwendungen zur Verfügung steht. Identitätsmanagement ist etwas, das offline tagtäglich passiert wenn wir entscheiden, was wir Gesprächspartnern über
uns mitteilen. Dabei wird normalerweise der situative Kontext, die Rolle in der man agiert und die Beziehungen zu den Interaktionspartnern berücksichtigt. Als Resultat werden unterschiedlichen Interaktionspartnern unterschiedliche Teilmengen der Identitäts-Attribute verfügbar gemacht. In manchen
Fällen ist eine Person in verschiedenen Kontexten sogar unter unterschiedlichen Namen bekannt, z.B.
durch die Nutzung spezieller Namen, Spitznamen oder Pseudonyme (Köhntopp und Berthold 2000).
Ähnliche Funktionalitäten sind auch in der digitalen Welt gefragt. Ein Identitätsmanagement-System
sollte Personen erlauben, verschiedene Identitäten und Rollen zu definieren und persönliche Daten
dazu zu speichern. Dazu sollte definierbar sein, wem diese Information zur Verfügung gestellt werden
sollen. Herausforderungen, die sich dabei unter anderem ergeben sind die Wahrung der Aktualität
der Information in verschiedenen (digitalen) Identitäten eines Benutzers und die Übersicht darüber,
welche Information welchem Dienst zur Verfügung gestellt worden ist (Awareness).
Erste Ansätze zur Unterstützung von Identitätsmanagement können sowohl in der Industrie als auch
in der Forschung gefunden werden. In den folgenden Abschnitten werde ich diese Lösungen kurz
vorstellen und dann ein Resumee für unsere eigene Lösung ziehen.
4.2.2
Infomediaries
Sogenannte „Infomediaries“ implementieren die Client-seitige Benutzerprofilspeicherung. Infomediaries sind (kleine) Anwendungen auf dem Client-Computer, die Benutzerprofile verwalten und
Dienste wie das automatische Ausfüllen von Web-Formularen bieten oder über Standardprotokolle
wie P3P Server-Anwendungen Information zur Verfügung stellen können (Cranor 1999). Beispiele
für Infomediaries sind Jotter (www.jotter.com) oder Persona (www.persona.com).
Ziel bei der Entwicklung von Infomediaries war es, ein höheres Vertrauen des Benutzers zu gewinnen, da die Information nahe beim Benutzer gespeichert ist und Zugriffe darauf kontrolliert werden
können. Die Client-seitige Profilspeicherung weist aber auch Probleme auf. Das Hauptproblem von
Client-seitigen Infomediaries ist die fehlende Portabilität (Mulligan und Schwartz 2000). Die Information ist an den Client-Rechner gebunden. Information, die auf einem Rechner gespeichert ist (z.B.
am Arbeitsplatz), kann nicht von einem anderen Rechner (z.B. zu Hause oder auf einem mobilen
74
4.2 Benutzerprofilspeicherung
Gerät) aus genutzt werden. Ein weiteres Problem mit heutigen Infomediary-Lösungen ist, dass die
Definition von Zugriffsrechten zwar möglich, meist aber zu komplex für die normale Nutzung ist.
4.2.3
Server-basierte Benutzerprofildatenbanken
Die Speicherung der Benutzerprofile in einem (von den Profil-nutzenden Anwendungen getrennten)
zentralen Server löst die Probleme mit der fehlenden Portabilität. Während die Infomediaries eine
Kontrolle des Benutzers über die Profilinformation bieten, sind die existierenden Server-basierten
Lösungen aber meist sehr Dienst-zentriert.
Die Historie von Server-Lösungen reicht zurück zu Authentifizierungsdiensten für mehrere Anwendungen wie Kerberos (Steiner u. a. 1988). In solchen Single-Sign-On Lösungen teilen sich mehrere
Server einen Dienst zur Authentifizierung von Benutzern. Oft wurde dabei der Authentifizierungsdienst um die Verwaltung von Benutzerprofilen erweitert, die allen angeschlossenen Diensten zur
Verfügung gestellt wurden.
Heute bieten verschiedenen Software-Hersteller Single-Sign-On Lösungen für Intranets an. Die Lösungen bauen meist auf (X.500) Verzeichnisdiensten auf oder erlauben zumindest einen Zugriff über
das LDAP Protokoll.
Globale Lösungen wie DigitalMe (www.digitalme.com) von Novell, Microsoft Passport (www.passport.com) oder der ScreenName-Dienst von AOL (my.screenname.aol.com) erweitern den ServerAnsatz auf das ganze Internet. Der Kern dieser Dienste ist meist ein zentraler Profilserver. Benutzer
können ihre persönlichen Daten dort über Web-Formulare eingeben und pflegen. Dienste, die von
den Betreibern der zentralen Server zertifiziert worden sind, können dann auf die Profilinformation
zugreifen (z.B. wenn ein Benutzer sich bei ihnen anmelden will).
Ein Microsoft Passport Account fasst beispielsweise folgende Daten zusammen:
PUID (.NET Passport Unique ID)
Vor- und Nachname
E-Mail-Adresse und/oder Telefonnummer
Demographische Daten: Land, Postleitzahl, Zeitzone, bevorzugte Sprache, Verfügbarkeit, Beruf, Geburtsdatum und Geschlecht
Wallet: Kreditkartentyp, Kreditkartennummer, Rechnungsadresse, Lieferadresse
Credentials:
– standard: E-Mail Adresse, Passwort, geheime Frage und Antwort
– alternativ: Telefonnummer und 6-stellige PIN
– stark: vierstelliger Sicherheitsschlüssel, drei geheime Fragen und Antworten
4.2.4
Liberty Alliance Projekt
Neben den großen zentralisierten Identitätsmanagement-Netzwerken wir Microsoft Passport gibt es
noch einige kleinere Ansätze. Beispiele sind XNS (www.xns.org) und Live-Id.org (www.live-id.org).
Diese Unternehmen verfolgen hauptsächlich den Ansatz einer föderierten Speicherung, d.h. einer
75
4 Benutzerprofile und Benutzerprofilspeicherung
Speicherung der Profile auf unterschiedlichen Server, die von unterschiedlichen Unternehmen betrieben werden.
Um Interoperabilität zwischen den Plattformen zu ermöglichen, haben sich die kleinen Identitätsmanagement-Anbieter und andere Firmen, die bereits größere Identifikationsdienste auf dem Internet
anbieten wie AOL, eBay, MSN oder Visa in der Liberty Alliance zusammengeschlossen.
Die Liberty Alliance (siehe http://www.projectliberty.org/) definiert gerade einen Standard zur Repräsentation von Identitäten, zur Authentifizierung von Benutzern und zur Abwicklung von Zugriffsbeschränkungen auf Benutzerprofilen. Das Ziel der Standardisierung ist es Diensten zu ermöglichen,
Benutzerprofilinformation einfach untereinander austauschen zu können.
4.2.5
Benutzerprofil-Austausch
Neben den in den vorherigen Abschnitten erwähnten Diensten gibt es im kommerziellen Umfeld noch
weitere Arbeiten und Angebote zum Austausch und zur Synchronisation von Benutzerprofilinformation zwischen Benutzern oder zwischen Anwendungen eines Benutzers.
Beispiele für die Replikation von Benutzerdaten zwischen Benutzern sind Austauschdienste für Visitenkarten (z.B. www.cardxchange.net). In diesen Diensten können Benutzer Kontaktinformation (und
zusätzliche Attribute) speichern und eine Untermenge (View) dieser Information explizit bestimmten anderen Benutzern verfügbar machen. Wenn die Information von Eigentümer der elektronischen
Visitenkarte geändert wird, dann wird diese Änderung an allen Stellen nachgezogen oder die Interessenten an der Information werden über E-Mail benachrichtigt. Ähnliche Funktionalität ist auch in
kommerzielle Community-Plattformen integriert. So bieten verschiedene Alumni-Plattformen eine
Notifikation über Adressänderungen von Co-Alumni.
Austausch und Synchronisation von PIM-Daten (Personal Information Management - Terminkalender, Adressbuch, Todo-Listen und Notizen) war bisher durch die große Zahl von proprietären Protokollen auf dem Markt beschränkt. Mit SyncML (www.syncml.org) wurde hier kürzlich ein offener
Industriestandard für die Synchronisation von PIM-Daten über verschiedene Netzwerke, Anwendungen und Geräte geschaffen.
4.2.6
IDRepository
Die Anforderungen, die am Anfang dieses Abschnitts aufgeführt worden sind (Vertrauen in Dienste,
Vermeidung des Kaltstartproblems durch Mehrfachnutzung), liesen sich am besten durch einen föderierten Dienst zur Profilspeicherung lösen, der unter Benutzerkontrolle steht. Leider bieten keine der
aktuellen Ansätze eine solche Lösung.
Vor allem fehlt bei den zentralen Ansätzen eine ausreichende Einbeziehung des Benutzers. Dies zeigt
sich in der Datendefinition für das Profil (meist nur E-Commerce Information wie Lieferinformation
und Zahlungsinformation), der fehlenden Möglichkeit, Zugriffsrechte zu definieren, und der Konzentration auf einen Profilspeicherungs-Betreiber.
Wir haben uns deshalb zum Ziel gesetzt, eine eigene benutzerzentrierte Lösung zu konzipieren.
Die Kernkomponente unseres Ansatzes ist das sogenannte IDRepository. In einer IDRepositoryInstanz können ein oder mehrere Identitäten gespeichert werden. Über Schnittstellen oder zusätzliche Komponenten stellt das IDRepository diese Daten dem Besitzer der Identität und autorisierten
Diensten zur Verfügung (siehe Abbildung 4.1).
76
4.3 Modellierung von Benutzerprofilen
Benutzer
erzeugt
und
verwaltet
Profile
IDRepository
(Web-)Dienst
Lesen
Profile
Benachrichtigen
Schreiben
Profil
Cache
Dienstzugriff
Abbildung 4.1: Trennung von Profilspeicherung und -nutzung
Bei der Gestaltung einer globalen IDRepository-Lösung hat man mehrere Möglichkeiten. Die beiden
Extreme sind die Installation eines zentralen Identitäts-Servers für alle Identitäten aller Personen und
die Installation von mehreren Servern pro Person (für die verschiedenen Pseudonyme).
Nachdem eine zentrale Lösung auf Akzeptanzprobleme stoßen würde, wird die wirkliche Lösung
wohl eher zwischen diesen Extremen liegen. Es wird mehrere Identitäts-Provider geben - Dienste,
die solche Server betreiben (siehe Abbildung 4.2). Diese Server arbeiten entweder im Netzwerk oder
werden von den Clients direkt angesprochen. Ein gutes Beispiel hierfür stellt der Domain-NameService oder das X.500 Directory Server Netzwerk dar.
Ähnliche föderierte Ansätze werden in dienstzentrierter Weise auch gerade von der Liberty Alliance
entwickelt. Sobald die Spezifikation der Liberty Alliance veröffentlicht ist und erste Dienste verfügbar sind, soll geprüft werden, ob das benutzerzentrierte IDRepository mit den dienstzentrierten
Liberty Alliance Servern in einem Netzwerk zusammenarbeiten kann.
Um es Benutzern zu ermöglichen, verschiedene Identitäten auf verschiedenen IDRepositories anzulegen, und manche Informationen trotzdem nur an einer Stelle zu pflegen, erlaubt es das Konzept
schließlich noch, Teile von Profilen miteinander zu verknüpfen. Durch die Definition von Propagierungsregeln wird festgelegt, ob und wie Änderungen an einem Profil an andere Profile weitergegeben
werden (siehe hierzu auch Abbildung 4.2).
Weitere Details zur Grundarchitektur der Benutzerprofilverwaltung mit dem IDRepository sind in
(Koch und Wörndl 2001) und (Koch 2002e) zu finden. Einen Überblick zur Implementierung des
IDRepositories bietet Abschnitt 5.1.
4.3
Modellierung von Benutzerprofilen
Bei aktuellen Beispielen der Nutzung von Benutzerprofilen in Anwendungen findet sich meist eine
anwendungsspezifische, proprietäre Modellierung des Profils. Neben der Domäne ist die Modellierung meist auch auf die speziell in dieser Anwendung verwendeten (Personalisierung-)Algorithmen
abgestimmt. Für eine dienstübergreifende Nutzung von Profilinformation ist es aber notwendig, eine
generische Modellierung der Profilinformationen zu definieren, die eine Nutzung in verschiedenen
Kontexten erlaubt. Gelingt dies nicht, dann entwickelt sich das globale Profil zu einer überschnei-
77
4 Benutzerprofile und Benutzerprofilspeicherung
IDRepository
Dienst
IDRepository
IDRepository
Benutzer
Kopie im
Cache
Datenpropagierung
zwischen
Identitäten
Abbildung 4.2: Verteilung der Profilspeicherung
dungsfreien Sammlung der Einzelprofile der einzelnen Anwendungen und viele der im vorhergehenden Abschnitt motivierten Vorteile der Trennung von Benutzerprofilspeicherung und Profilnutzung
ließen sich nicht realisieren.
Zum Thema Benutzermodellierung gibt es einen breiten Fundus von Arbeiten rund um den Forschungsbereich Künstliche Intelligenz. Während die meisten der Arbeiten sich mit proprietären
Profilmodellen für spezielle Expertensysteme beschäftigen, gibt es auch ein paar Ansätze zur allgemeinen Modellierung von Benutzerwissen, Benutzererwartungen und anderen Benutzerattributen.
In (Kay 1995) wird beispielsweise ein Attribut-Wert-Paar basierter Ansatz hierzu vorgestellt. Eine
sehr gute Übersicht zu den verschiedenen Aktivitäten im Bereich der Benutzermodellierung der letzten zwanzig Jahre bieten auch (Kobsa 2001) und (Fink und Kobsa 2000). Bei Profilmodellen, die für
die Nutzung durch mehrere Anwendungen vorgesehen sind, werden dabei meist Attribut-Wert-Paare
mit einfachen Attributwerten (d.h. Werten vom Typ String, Integer oder Boolean) verwendet. Die eigentliche Modellierung steckt in den Namen der Attribute, die je nach Anwendungsdomäne definiert
sind (Fink und Kobsa 2002).
Neben den akademischen Arbeiten im Bereich der Künstlichen Intelligenz gibt es auch noch verschiedene Bestrebungen zur Standardisierung von Benutzerprofilen aus der Industrie. In folgendem
Abschnitt diskutiere ich zuerst solche Standardisierungsaktivitäten etwas näher. Dann wird das für
Community-Unterstützungssysteme erarbeitete Benutzerprofil-Metamodell und -Modell vorgestellt
und einzelne Bereiche des Profilmodells näher herausgearbeitet.
4.3.1
Standardisierungsbestrebungen
Aktuelle Aktivitäten zur Standardisierung von Benutzerprofilinformationen finden sich vor allem im
E-Commerce-Bereich und konzentrieren sich auf die dort notwendigen Attribute. So behandelt das
System „Microsoft Wallet“ (als Teil von Microsoft Passport) Attribute wie Lieferadresse und Zahlungsinformation. Electronic-Customer-Relationship-Systeme wie zum Beispiel „Customer Profile
Exchange Net“ behandeln mehr die Standardisierung von in ERP- und CRM-Systemen vorhandenen
Daten.
78
4.3 Modellierung von Benutzerprofilen
Erwähnenswerte Standardisierungsbestrebungen sind weiterhin OPS, P3P, vCARD, ECML (www.
ecml.org) und Customer Profile Exchange Net CPEX. Von diesen Bestrebungen werden im Folgenden
die drei wichtigsten vCard, OPS und P3P kurz vorgestellt und diskutiert.
vCard
vCard ist ein zeilenorientiertes Textformat zur Kodierung von allgemeinen Visitenkarten, d.h. von
Teilen eines Benutzerprofils, die an andere Benutzer weitergegeben werden sollen. Zusammen mit
anderen Standards wie vCalender und vTodo wurde vCard vom nicht mehr existierenden Versit Konsortium entwickelt und ist inzwischen in Internet-RFCs dokumentiert (RFC2425 und RFC2426 für
vCard Version 3.0).
Jede Zeile in einer vCard-Datei setzt sich zusammen aus einem Attributnamen, einem Doppelpunkt
und einem Attributwert. Mehrere Werte zu einem Attribut können durch Komma getrennt angegeben
werden.
BEGIN:VCARD
VERSION:2.1
N:Koch;Michael
EMAIL;INTERNET:[email protected]
END:VCARD
Neben dem Defaulttyp STRING definiert vCard für Attributwerte noch die Datentypen BINARY,
PHONE-NUMBER (nach CCITT E.163 und CCITT X.121) und UTC-OFFSET (Coordinated Universal Time). Weiterhin ist es noch möglich, Attributwerte mit Trennzeichen (Strichpunkt) zu strukturieren (siehe hierzu z.B. das „N“-Attribut in obigem Beispiel).
Bei konkreten Attributnamen definiert vCard die folgenden:
Identifikationsinformation
– FN: Formatierter Text, der den Namen des vCard Inhabers darstellt
– N: Strukturiertes Attribut mit den Komponenten des Namens: Familienname, Vorname, zusätzliche Namen, Titel, nachgestellte Titel.
– NICKNAME
– PHOTO
– BDAY (z.B. BDAY:1996-04-15 oder BDAY:1987-09-27T08:30:00-06:00)
Lieferadressinformation
– LABEL: Formatierter Text, der die Lieferadresse darstellt
– ADR: Strukturiertes Attribut mit den Komponenten einer Adresse: Postfach, Adresszusatz, Straße, Stadt, Region, Postleitzahl, Land, TYPE = dom(domestic), intl(international delivery), postal,
parcel, home, work, pref(preferred delivery address),
z.B. ADR;TYPE=dom,home,postal;;123 Main Street;Any Town;CA;91921-1234
Telekommunikationsinformation
– TEL: TYPE = home, msg(voice messaging support), work, pref, voice, fax, cell, video, pager,
bbs, modem, car, isdn, pcs,
z.B. TEL;TYPE=work,voice,pref,msg:+1-213-555-1234
79
4 Benutzerprofile und Benutzerprofilspeicherung
– EMAIL: TYPE=internet,x400,pref
– MAILER: Typ der E-Mail Software, die vom Benutzer genutzt wird
Geographische Information
– TZ: time zone, UCT offset, z.B. TZ:-05:00, TZ;VALUE=text:-05:00;EST
– GEO: Globale Position des Objekts, zu dem die vCard gehört - Strukturierter Wert, der aus zwei
Teilwerten (Fließkommazahlen) besteht: Länge und Breite, z.B. GEO:37.386013;-122.082932
Organisationsinformationen
– TITLE: Job/Funktions-Beschreibung (nach X.520)
– ROLE: Rollenbeschreibung (nach X.520)
– LOGO:
– AGENT: Verweis auf einen Vertreter oder auf eine Ressource, die mit der vCard assoziiert ist, z.B.
AGENT;VALUE=uri:CID:[email protected]
– ORG: X.520 Organisationsname
Beschreibende Information
– CATEGORIES: Kategorien zur Beschreibung der vCard,
z.B: CATEGORIES:TRAVEL AGENT,INTERNET,IETF
– NOTE: X.520 Beschreibungsattribut
– PRODID, UID, URL, REV, VERSION
Sicherheitsinformation
– CLASS: Zugriffsklassen; PUBLIC,PRIVATE,CONFIDENTIAL
– KEY: Public Key oder Zertifikat
Eine Erweiterung der Attributemenge ist nach einem Mechanismus, der in RFC2045 vorgestellt ist,
möglich. Zusätzlich können auch nicht registrierte private Attribute verwendet werden. Solche Attribute werden mit einem vorangestellten ’X-’ im Namen gekennzeichnet.
Open Profiling Standard - OPS
OPS ist ein erster Vorschlag zur Standardisierung der Erstellung, Speicherung und Verwendung von
Benutzerprofilen im Internet (Juni 1997). Zur Erreichung einer möglichst breiten Akzeptanz wurde
dabei versucht, auf bestehende Standards wie vCard zurückzugreifen (Hensley u. a. 1997).
Die Daten werden als Attribute mit ihrem zugehörigen Wert gespeichert. Mehrere dieser AttributWert-Paare können zu sogenannten Sektionen zusammengefasst werden. Damit wird eine hierarchische Organisation der Benutzerprofildaten erreicht. Ein Profil ist definiert als eine hierarchische
Struktur von benamten Sektionen und Untersektionen.
Zu den im Standard definierten Sektionen gehören ’Globally Unique ID’, ’Pairwise Unique IDs’,
’Demographics’, ’Contact and personal information’, ’Currency’ und ’User agent preferences’. In
diesen Sektionen sind folgende Attribute definiert:
Demographische Informationen (Sektion DEMO)
– C (country)
– ZIP
80
4.3 Modellierung von Benutzerprofilen
– AGE
– G (gender)
– SN (preferred screen name)
Kontaktinformation (Sektion CONT)
– FN (formatted name)
– N (name)
– PHOTO (photograph)
– PHOTO.TYPE
– BDAY
– ADR
– LABEL
– TEL
– EMAIL
– MAILER
– TZ (time zone)
– GEO (geographic position)
– TITLE
– ROLE (business category)
– LOGO
– AGENT
– ORG
Neben der Profilstruktur wird auch die Struktur des Gesamtsystems festgeschrieben. Dabei sollen die Profildaten beim Benutzer selbst gespeichert werden. OPS entspricht dabei dem CookieMechanismus heutiger Web-Browser (es erlaubt einem Server Daten auf einem OPS-Client zu speichern und zu lesen).
P3P - Platform for Privacy Preferences
P3P definiert hauptsächlich ein Protokoll zur Aushandlung von Zugriffsrechten auf Benutzerprofile
(siehe hierzu auch Abschnitt 4.4.2). Daneben werden aber auch Standards für die Strukturierung und
Darstellung von Benutzerprofilen vorgegeben.
Ähnlich wie OPS legt auch P3P einen hierarchisch strukturierten Attributraum zugrunde. Der Attributraum ist grob in die Bereiche ’user’, ’dynamic’ und ’thirdparty’ unterteilt. Dabei dienen die
Attributnamen im Bereich ’dynamic’ hauptsächlich zum Referenzieren von Daten, die der Dienst
speichern darf oder nicht speichern soll. Eine zentrale Speicherung dieser Daten ist nicht vorgesehen
und es ist auch keine Kodierung dafür definiert. Nachfolgend eine Liste der Hauptattribute, die der
Standard in den Bereichen definiert:
user.name
user.bdate
user.login
81
4 Benutzerprofile und Benutzerprofilspeicherung
user.cert
user.gender
user.employer
user.jobtitle
user.home-info
user.business-info
dynamic.clickstream
dynamic.httpd
dynamic.clientenvents
dynamic.cookies
dynamic.miscdata
dynamic.searchtext
dynamic.interactionrecord
thirdparty.*
Die einzelnen Attribute haben teilweise komplexe Datenstrukturen als Werte. Damit wird eine weitere
Untergliederung des Attributbaumes definiert. So haben die beiden Attribute user.home-info und
user.business-info den Datentyp contact, welcher folgende Unterattribute definiert:
postal
postal.name
postal.street
postal.city
postal.stateprov
postal.postalcode
postal.country
postal.organization
telecom
telecom.telephone
telecom.fax
telecom.mobile
telecom.pager
online
online.email
82
online.uri
4.3 Modellierung von Benutzerprofilen
4.3.2
Profil-Metamodell
Den Anregungen aus den vorgestellten Standardisierungsbestrebungen folgend, soll das allgemeine
Profilmodell für Community-Unterstützungssysteme als Menge von Attribut-Wert-Paaren mit einem
hierarchisch strukturierten Attribut-Namensraum aufgebaut werden.
Der Aufbau ist dabei grundsätzlich identisch zu den Datenmodellen für Item und Category (siehe Kapitel 3). Mit dem hierarchischen Namensraum für Attributnamen und zusätzlicher Metainformation
zu den Attributen gibt es aber doch einige Erweiterungen. Aus diesem Grund soll an dieser Stelle
zuerst das Profil-Metamodell konkretisiert werden. Unter Metamodell verstehe ich dabei die Regeln,
denen ein allgemeines Profilmodell folgt (und damit auch die Regeln, nach denen ein Profilmodell
erweitert werden kann). Das Metamodell beschreibt also, wie ein Profilmodell aufgebaut sein kann
und was in einem Profilmodell auf welche Weise dargestellt werden kann. Das Profilmodell legt dann
die Attributnamen und Detailinformation zu den Attributen (z.B. Datentypen) fest. Daten zu einem
bestimmten Benutzer werden schließlich in Profilinstanzen gespeichert.
Grundstruktur
Ein Profilmodell besteht aus einer Menge von Attributen mit Unterattributen, angeordnet in einer
hierarchischen Struktur. Ein Attribut entspricht einem Knoten in einem Profilbaum (Blatt oder Zwischenknoten). In Instanzen des Modells können sowohl Blätter wie auch Zwischenknoten einen
konkreten Wert (Attributwert) besitzen.
Bei manchen Attributen bzw. Unterbäumen des Profilbaums kann es wünschenswert sein, verschiedene Varianten zu speichern. Neben der Privatadresse soll beispielsweise noch die Büroadresse oder
eine Urlaubsadresse gespeichert werden. Obwohl dies durch zwei verschiedene, aber gleich aufgebaute Äste im Profilbaum möglich wäre, hat sich in der praktischen Anwendung gezeigt, dass zur
Ermöglichung eines effizienten Zugriffs auf Varianten eine explizite Modellierung im Profilmodell
sinnvoll ist.
Im Profilmodell soll deswegen definiert werden können, dass zu bestimmten Knoten verschiedene
Varianten möglich sind. Wird für den Knoten ’contact’ die Verwendung von Varianten zugelassen,
dann könnten in einer Profilinstanz beispielsweise sowohl Informationen zu ’contact[work].*’ als
auch zu ’contact[private].*’ gespeichert werden.
Attribut-Metainformation
In verschiedenen Anwendungen finden sich Ansätze, zu Profilattributen Zusatzinformationen zu speichern, die eine Verwendung der eigentlichen Attributwerte unterstützen. Ein Beispiel für solche Metainformation sind Angaben über die Zuverlässigkeit eines Attributwertes. Also beispielsweise eine
Unterscheidung, ob der Wert explizit vom Benutzer eingegeben worden ist, oder ob er aus anderen
Daten abgeleitet worden ist.
Bei Benutzerprofilen, die von mehreren Anwendungen geändert werden können, spielt als weitere
Metainformation auch die Herkunft der Profilinformation eine Rolle, also eine Referenz auf die Anwendung, die diese Information gesetzt hat. Teilweise könnte hier sogar eine Nachprüfbarkeit dieser
Information mittels kryptographischen Verfahren gewünscht sein (Koch und Wörndl 2001).
Bei Metainformationen zu Profilattributen gibt es Metaattribute, die für jedes Attribut im Benutzerprofil Sinn machen und solche, welche vielleicht nur für domänenspezifische Attribute relevant sind.
83
4 Benutzerprofile und Benutzerprofilspeicherung
Aus diesem Grund soll keine feste Menge von Metainformationen festgelegt werden, sondern die
dynamische Definition beliebiger Attribute erlaubt werden.
Attribut-Datentypen
Die verschiedenen angedachten Anwendungen von Benutzerprofilen machen verschiedenste Datentypen für Attribute notwendig. Dabei sehen wir zunächst einmal von einfachen geschachtelten Datenstrukturen ab. Diese sollten mit Hilfe der hierarchisch strukturierten Attributnamen als verschiedene
Attribute modelliert werden (vgl. die Definition von ’contact’ bei P3P).
Die Anforderungen in den aktuell untersuchten Anwendungen machen momentan folgende Attributdatentypen notwendig: String, Integer, Real, Boolean, Mengen von Basistypen, Listen von Basistypen, gewichtete Listen von Basistypen, (Hash-)Maps von Basistypen. Neben den Basistypen sind als
Datentypen weiterhin einzelne oder Mengen von Referenzen auf Objekte vom Typ User, Item oder
Category gefordert.
Zusätzlich zur Angabe eines Datentyps kann bei einem Attribut auch noch eine Einschränkung der
Wertemenge definiert werden. So können Attribute vom Typ String sein, aber nur eine beschränkte
Menge von Werten zulassen.
Schließlich soll es auch noch möglich sein, Defaultwerte für Attribute zu definieren, also Werte, die
zurückgegeben werden, wenn kein expliziter Wert gesetzt ist. Hierbei sind auch geeignete Werte für
die Attribut-Metainformation zu definieren.
4.3.3
Profilmodell
Ein Profilmodell definiert ausgehend vom Metamodell konkrete Attributnamen, Datentypen zu den
Attributen, sowie mögliche Werte und Default-Werte. In diesem Abschnitt soll das für Cobricks
verwendete Profilmodell vorgestellt werden.
Von den oben vorgestellten Standards definiert P3P die breiteste Menge von Attributen. Aus diesem
Grund wird das in P3P definierte Schema als Grundlage für die Entwicklung eines Profilstandards für
Community-Unterstützungssysteme verwendet und erweitert.
Aus der Beschäftigung mit Community-Unterstützung und Electronic Commerce konnten folgende
Teilbereiche für Benutzerprofile identifiziert und konkretisiert werden:
Demographische Information (z. B. Name, Geburtsdatum, Familienstand, Jahreseinkommen)
Adress-/Kontaktinformation
Zahlungsinformation (z.B. Bank- und Kreditkartendaten)
Beziehungsinformation (z.B. Freundes- oder Kontaktlisten oder allgemeine Adressbücher)
Information zu den Interessen, Qualifikationen
Dienstspezifische Präferenzen und Konfigurationseinstellungen
Datenschutzpräferenzen
Verhaltenshistorie ((Web-)Besuchshistorie, Kaufhistorien)
84
4.3 Modellierung von Benutzerprofilen
Bewertungen (von Items)
Kalenderinformationen (Agenda)
Nachfolgend ein Überblick über das in unseren Prototypplattformen benutzte gemeinsame Benutzerprofilmodell mit einer Auswahl von konkreten Attributen aus den verschiedenen Teilbereichen:
basic.personal.firstname (String)
basic.personal.lastname (String)
basic.personal.maidenname (String)
basic.personal.languagespoken
basic.demographics.incomelevel (String, [low, middle, high, very high])
basic.demographics.education (String, [])
basic.demographics.gender ([male, female])
basic.demographics.martialstatus
([single, married, divorced, widowed, unknown])
basic.demographics.birthdate (Date)
basic.demographics.smoker ([yes, no])
basic.demographics.nationality.passportnumber (String)
basic.demographics.nationality.primaryresidency ([yes, no])
basic.contact[work,private] - Varianten
basic.contact.timezone (String, ISO 8601)
basic.contact.postal.name (String)
basic.contact.postal.street (String)
basic.contact.postal.city (String)
basic.contact.postal.stateprov (String)
basic.contact.postal.postalcode (String)
basic.contact.postal.country (String, ISO 3166)
basic.contact.postal.type ([pobox, street])
basic.contact.telecom.telephone.intcode (String)
basic.contact.telecom.telephone.number (String)
basic.contact.telecom.telephone.comment (String)
basic.contact.telecom.telephone.usage.type (String)
basic.contact.telecom.telephone.usage.availabletimes
([morning, afternoon, day, anytime])
basic.contact.telecom.telephone.usage.availabledays
([weekdays, weekends, anyday])
basic.contact.telecom.fax.*
basic.contact.telecom.mobile.*
basic.contact.telecom.pager.*
basic.contact.online.email (String)
basic.contact.online.uri (String)
basic.business.employmentstatus
([employed, selfemployed, unemployed, retired, student, homemaker])
basic.business.jobtitle
basic.business.employer
basic.business.department
basic.finance.card.number
basic.finance.card.type
basic.finance.card.expdate
basic.finance.card.owner
basic.finance.account.number
basic.finance.account.bank
basic.finance.account.bankid
basic.finance.account.comment
basic.certificate
85
4 Benutzerprofile und Benutzerprofilspeicherung
basic.location
interests.basic.auto
interests.basic.career
interests.basic.entertainment
interests.basic.hobby.sports
interests.basic.hobby.craft
interests.basic.hobby.cooking
interests.basic.hobby.yard-garden
interests.basic.exercise
interests.basic.living
interests.basic.music
interests.basic.news
interests.basic.pets
interests.basic.politics
interests.basic.religion
interests.basic.sex
interests.basic.sports
interests.basic.travel
interests.TAXONOMYID.*
interests.giftlist
pim.bookmarks
pim.calendar.*
pim.files
pim.fitness
pim.food
pim.health
pim.military
pim.network
pim.network.buddylist.LISTNAME (Set of USER)
pim.network.banlist.LISTNAME (Set of USER)
pim.network.adressbook
pim.network.community
pim.network.memberships
pim.tasks
pim.traffic
privacy.alertsetting
privacy.policy
rating.OBJECTCLASS.OBJECTID
application.APPID.*
appliance.APPID.*
preference.language
preference.radio-station
history.APPID.clickstream
history.APPID.lastsearchstring
history.APPID.lastlogin
Die konkrete Definition aller Attribute geht weit über das hinaus, was in dieser Arbeit dargestellt werden kann. In diesem Abschnitt soll nur noch auf allgemeine Herausforderungen und Lösungsmöglichkeiten bei Informationen aus den drei Bereichen Interessensinformation, Beziehungsinformation
und Bewertungsinformation eingegangen werden.
86
4.3 Modellierung von Benutzerprofilen
Interessensinformation
Ein zentrales Element von Benutzerprofilen ist die Kodierung von Information zu den Interessen des
Benutzers. Dies kann als Verbindung des Benutzerkonzeptes mit der Anwendungsdomäne gesehen
werden. Hier ist es also notwendig, zu den verschiedenen Unterkonzepten in der Anwendungsdomäne
zu speichern, ob der Benutzer daran interessiert ist, ihnen eher gleichgültig gegenübersteht, oder
explizit nicht daran interessiert ist.
Dem Grundsatz der Aufteilung in möglichst viele Attribute folgend, legen wir für alle Konzepte der
Domäne im Teilbaum ’interests.’ einzelne Attribute an. In diesen Attributen wird dann das Wissen über das entsprechende Interesse des Benutzers kodiert. Wie in Kapitel 3 beschrieben worden
ist, ist die Domäne momentan als Menge von hierarchisch strukturierten Kategorien kodiert. Manche dieser Kategorien können als „SharedBuddyLists“ explizit Mitglieder haben. Die den Kategorien entsprechenden Attribute im Benutzerprofil könnten demnach folgendermaßen aufgebaut sein:
’interests.’+Kategorienname. Alternativ dazu erlauben wir auch die Speicherung einer Menge von
Category-Referenzen in einem Profilattribut. Damit kann grundsätzlich dasselbe Ergebnis erreicht
werden. Über die Kontextklassen kann sogar die Semantik der Interessensbeziehung eingegrenzt
werden.
Ein Problem bei dieser Lösung ist, dass auf jeder Plattform unterschiedliche Kategorien definiert
werden können. Damit ist keine plattformübergreifende Kodierung und Nutzung der Interessensinformation möglich. Als Lösung hierzu haben wir eine sehr allgemeine Kategorienmenge für alle
Community-Plattformen definiert, nach der Interessen im ’interests.basic’-Teilbaum definiert werden
können. Jede Plattform kann daraus Rückschlüsse auf die Interessen an ihren konkreten Kategorien ziehen (und umgekehrt). Auch können hier die schon angesprochenen Verfahren zur automatischen Abbildung verschiedener Kategorienbäume aufeinander zur Anwendung kommen. Zusätzlich
kann jede Anwendung ihre speziellen Interessensinformationen noch im Teilbaum ’application’ speichern bzw. Informationen zu anwendungsübergreifend definierten Taxonomien in Teilbäumen ’interests.TAXONOMYID’.
Zur Kodierung des konkreten Interesses an einer Kategorie gibt es auch verschiedene Ansätze. In
(Fink und Kobsa 2002) wird eine Möglichkeit zur Kodierung von Interessen mit verschiedenen (normalisierten) Wahrscheinlichkeiten, die durch verschiedene Vorhersageverfahren gewonnen werden,
vorgestellt. Wir greifen dies auf und kodieren das Interesse an einer Kategorie als ganze Zahl im Bereich von ’0’ bis ’100’. Dabei bedeutet ’100’ hohes Interesse, ’50’ Gleichgültigkeit und ’0’ absolut
kein Interesse. Wenn keine Information über das Interesse vorhanden ist, dann bleibt das Attribut
undefiniert. Neben dem Attributwert wird über die Metainformationen noch die Zuverlässigkeit des
Wertes (confidence) charakterisiert. Aus den Informationen kann bei Bedarf über Regeln ein binärer
Wert ermittelt werden.
Beziehungsinformation
Unter Beziehungsinformation versteht man Information über die Beziehungen zwischen den einzelnen Benutzern. Quelle solcher Beziehungen können gemeinsame Interessen oder auch ein gemeinsamer Freundeskreis oder verwandschaftliche Bande sein.
Den Beispielen verschiedener Community-Unterstützungssysteme folgend, sehen wir hier zuerst einmal Informationen über Buddylisten vor. Diese werden als Listen von Benutzeridentifikatoren in
Attributen der Form ’pim.network.buddylist.LISTNAME’ gespeichert.
87
4 Benutzerprofile und Benutzerprofilspeicherung
Auch zu den Beziehungsinformationen zählen kann man die Informationen in den SharedBuddyLists. Weiterhin sind in den verschiedenen Item-Daten Informationen verborgen, die auf Beziehungen schließen lassen. Diese sind natürliche Kandidaten für eine Definition solcher Beziehungen über
Regeln. Schließlich können Beziehungen auch noch über das Konzept der Kategorien modelliert
werden (durch Interessensbeziehungen zwischen Usern und Kategorien).
Die allgemeinste Form der Speicherung von Beziehungsinformation bieten dabei aber die Benutzerprofilattribute, die Listen von Referenzen auf Benutzerobjekte speichern (wie Buddylist). Durch
die Möglichkeit der weiteren Spezifikation mit Kontextklassen kann hier eine Anreicherung der Beziehungsinformation mit Semantikinformation erreicht werden und zwischen verschiedenen Beziehungsklassen unterschieden werden. Die Realisierung mit den Kontexklassen folgt dabei allgemeineren Überlegungen aus dem Dissertationsprojekt von Michael Galla.
Bewertungsinformation
Informationen darüber, wie Benutzer bestimmte Objekte oder Informationen bewerten, liefern wichtige Aussagen über die Interessen eines Benutzers und können beim aktiven und beim automatischen
kollaborativen Filtern eingesetzt werden.
Zu diesem Zweck kann erstens die Kommentierung bzw. Bewertung von Items (ITEMANNOTATION) als Teil des Benutzerprofils betrachtet werden. Über die Items hinaus muss es aber möglich
sein, Bewertungen zu beliebigen Objekten zu speichern. Die Hauptherausforderung dabei ist das
Finden von eindeutigen Identifikatoren für Objekte. Eine vielversprechende Lösung hierzu ist es,
sich auf bestehende Identifikationssysteme zu stützen. Ähnlich wie bei der Definition von URIs
(RFC2396), die prinzipiell dasselbe Ziel verfolgen, setzt sich der Identifikator eines Objektes dann
aus einem Identifikator für das konkrete Identifizierungsschema und dem in diesem Schema erstellen Identifikator zusammen. Für das Beispiel Bücher bietet sich das ISBN-Identifikationssystem an,
bei Kinofilmen könnte man die Identifikation in der Internet Movie Database IMDB verwenden.
Bewertungen werden dann im Benutzerprofil in der Sektion ’rating’ mit Untersektionen für verschiedene Objekttypen gespeichert. Nach den Schlüsselworten folgt ein Kennzeichner für das Identifikationsschema und dann die Identifikation in diesem Schema, z.B. ’rating.books.isbn.3540669841’,
’rating.movies.imdb.0295297’.
Neben dem Aufbau der Attributnamen ist weiterhin der Aufbau der Attributwerte von Belang. Für die
Anwendung beim automatischen kollaborativen Filtern benötigen wir eine numerische Bewertung.
Hier hat sich in vergleichbaren Systemen in den letzten Jahren die 5er oder 7er-Skala durchgesetzt.
Daneben gibt es noch Prozentwerte von 0 bis 100. Für unsere Anwendungen unterstützen wir durch
entsprechende Datentypen beliebige Skalen und speichern die Information intern als Prozentwert.
Zusätzlich zu der eigentlichen Bewertung kann im Profil auch noch ein Kommentar gespeichert werden (für das nicht-automatische kollaborative Filtern). Dieser Kommentar wird (falls vorhanden) im
Unterattribut ’rating.*.comment’ gespeichert.
4.4
Privatheit und Zugriffskontrolle
Die Trennung der Speicherung und der Nutzung von Benutzerprofilen ermöglicht deren Wiederverwendung, trägt aber nicht notwendigerweise zu einer Ermöglichung von Privatheit für die Benutzer
bei. Hierzu werden ein Zugriffskontrollsystem und Zugriffstransparenz benötigt.
88
4.4 Privatheit und Zugriffskontrolle
4.4.1
Zugriffskontrolle in einer Plattform
Nachdem Benutzerprofile auf Community-Plattformen nicht nur zur Nutzung durch die Plattform
selbst (z.B. zur Personalisierung) gespeichert werden, sondern auch zur Präsentation gegenüber anderen Benutzern vorgesehen sind (Awareness, Matchmaking), spielt die Definition von Zugriffsrechten
bezüglich Endbenutzern eine große Rolle. Darunter versteht man Möglichkeiten zur Kontrolle der
Datennutzung auf Benutzerebene.
Grundsätzlich könnten zu diesem Zweck erprobte Methoden zur Spezifikation von Zugriffsrechten,
wie zum Beispiel die rollenbasierte Zugriffskontrolle (role based access control, (Ferraiolo und Kuhn
1992)) eingesetzt werden. Diese Methoden erlauben meist eine Zusammenfassung von Benutzern in
Gruppen (Rollen) und eine Vergabe von mehr oder weniger feinen Rechten auf Daten an einzelne
Benutzer oder solche Gruppen. Einen ähnlichen Ansatz haben wir bereits allgemein für die Regelung
des Zugriffs auf Dienste und Items realisiert (siehe Abschnitt 3.3.2).
Sikkel stellt in (Sikkel 1997; Sikkel und Stiemerling 1998) eine gute Übersicht über Zugriffskontrolle
allgemein dar und wendet die Verfahren auf kollaborative Systeme (speziell den BSCW-Server) an.
Dabei werden unter anderem verschiedene Möglichkeiten der Definition von Rollen und Gruppen besprochen. In unserem Fall könnten hier die schon vorhandenen Möglichkeiten der Gruppendefinition
mittels Buddylisten und SharedBuddyLists genutzt werden und auf Teilbaum- oder Attributebene
Zugriffsrechte spezifiziert werden.
Im Gegensatz zur allgemeinen Zugriffskontrolle, bei der es nur darum geht zu entscheiden, ob ein Zugriff erlaubt werden soll oder nicht, gibt es beim Zugriff auf Benutzerprofilinformation eine weitere
Anforderung. Es sollte möglich sein, für verschiedene Zugreifer verschiedene Varianten (Granularitäten) der Information zurückzuliefern. Ein Beispiel dafür ist die Anforderung, dass die Information
über den momentanen Aufenthaltsort eines Benutzers nur einer kleine Gruppe im Detail zur Verfügung gestellt werden. Die anderen Community-Mitglieder sollen nur sehen können, in welcher Stadt
sich der Benutzer gerade aufhält.
Diese erweiterten Anforderungen lassen sich mit allgemeinen Regeln zum Profil erfüllen. Wenn
ein Benutzer ein Attribut auslesen möchte, dann wird ein Regelsatz ausgewertet, der das Profil des
anfragenden Benutzers und das angefragte Profil als Eingabe erhält. Der anfragende Benutzer erhält
eine Antwort entsprechend der Regelauswertung.
Grundsätzlich entsprechen Regeln dabei Funktionen, die für eine Menge von Eingabewerten einen
Ausgabewert festlegen.
Beispiele für Bedingungen, von denen der Ausgabewert abhängen kann, sind folgende:
Ist anfragender Benutzer im Radius von x Metern?
Ist anfragender Benutzer Mitglied in einer persönlichen Buddylist?
Ist anfragender Benutzer Mitglied in der SharedBuddyList y?
Neben dem Namen des anfragenden Benutzers muss folglich auch das Benutzerprofil des anfragenden
und des angefragten Benutzers bei der Regeldefinition zur Verfügung stehen.
Allgemein definieren wir folgende beiden Funktionen:
attrvalue(userid, attrname)
attrvalue(userid, attrname, auserid)
89
4 Benutzerprofile und Benutzerprofilspeicherung
Die erste Funktion liefert den Wert eines Attributs attrname aus dem Profil eines bestimmten
Benutzers userid. Dies kann entweder durch Zurückgriff auf einen gespeicherten Wert (Faktenwissen) erfolgen, oder durch Ableitung aus Regeln (z.B. Ableitung des Aufenthaltsortes aus dem
Terminkalender).
Die zweite Funktion liefert den Wert, den ein bestimmter anfragender Benutzer auserid sehen darf.
Bei der Definition von Regeln für dieses Prädikat sind drei Fälle zu unterscheiden:
Im einfachsten Fall ist attrvalue(userid, attrname, auserid) = attrvalue(userid, attrvalue), es wird
also als Antwort schlicht der eigentliche Wert des Attributs zurückgegeben.
Ein weiterer wichtiger Spezialfall ist, dass die Antwort nur von der Identität des anfragenden
Benutzers, nicht aber von dessen Benutzerprofil abhängt.
Der allgemeinste Fall ist schließlich, dass die Auswertung sowohl von der Identität des aufrufenden Benutzers als auch von Werten dessen Benutzerprofils abhängig ist.
Bei der Definition der Regeln sollte es sowohl für Vergleichsoperationen als auch für die Ermittlung
des zurückzugebenden Wertes möglich sein, verschiedene Funktionen zu verwenden. Im Projekt
Cosmos wurde dies insbesondere für die Lokalitätsinformation angewandt. So wurden Funktionen
definiert, welche die Entfernung zwischen Benutzern berechnen (z.B. distance(userid.location, auserid.location) < 4000) oder solche, die eine Lokalitätsinformation vergröbern (z.B. location-granularity(userid.location, ’town’)). Siehe hierzu auch (Groh 2002).
Mit den Regeln können Kommunikationspräferenzen modelliert werden, Zugriffsrechte und Zugriffsgranularitäten für bestimmte Benutzergruppen gesetzt werden, und das automatische Setzen von location oder ähnlichen Attributen nach Zeit oder anderen Parametern erreicht werden. Für alle Zwecke
sind die Regeln gleich aufgebaut. Sinnvolle Beispiele für Regeln (in natürlicher Sprache) sind beispielsweise:
Gib allen Usern auf meiner Buddyliste, die sich in einer Entfernung von 200 Meter um meinen
Aufenthaltsort befinden, meinen aktuellen Standort.
Gib allen anderen Usern meinen aktuellen Standort nicht
Gib allen anderen Usern von meinen aktuellen Standort nur die Stadt
Zwischen 0800 und 2000 Uhr setze Erreichbarkeitsstatus auf ’NurMessagePull’
Zwischen 0800 und 2000 Uhr setze Erreichbarkeitsstatus auf ’NurMessagePull’ für User deren
Interessen das Keyword ’Sport’ enthält und auf ’nein’ für alle anderen User
Ein Problem mit dieser allgemeinen Möglichkeit zur Definition von Privatheitsregeln liegt in der
Benutzbarkeit. Um eine Akzeptanz bei den Benutzern zu erreichen, muss hier sowohl an intuitiven
Benutzungsschnittstellen als auch an einfachen Möglichkeiten zur Vorbelegung gearbeitet werden.
Im Projekt Cosmos wurde hierzu beispielsweise eine Sammlung von Regelpakten entwickelt, die
verschiedene Privatheitsanforderungen erfüllen:
Complete Privacy: Dieses Paket hat für alle persönlichen, statischen und dynamischen Attribute
(Voller Name, Adressen, Telefonnummern, E-Mail, Ort, etc.) die Regel:
attrvalue(userid, attrname, auserid) = nil
90
4.4 Privatheit und Zugriffskontrolle
Strong Privacy: Dieses Paket hat für alle persönlichen, statischen und dynamischen Attribute
(Voller Name, Adressen, Telefonnummern, E-Mail, Ort, etc.) die Regel:
attrvalue(userid, attrname, auserid) = nil.
Ausnahmen sind der volle Name und die E-Mail-Adresse mit der Regel
attrvalue(userid, ’basic.contact.online.email’, ’*’) =
attrvalue(userid, ’basic.contact.online.email’)
Buddylist: Hat für alle Attribute die Regeln
attrvalue(userid, attrname, auserid) =
isInBuddylist(auserid, userid.buddylist):
attrvalue(userid, attrname)
und
NOT isInBuddylist(auserid, userid.buddylist): nil.
Ausnahmen gibt es wieder für den vollen Namen und die E-Mail-Adresse.
Die konkret gewählten und angepassten Regeln sind Teil des Profils und können somit zwischen
verschiedenen Plattformen geteilt werden.
4.4.2
Zugriffskontrolle zwischen Plattformen
Wenn die Zugriffskontrolle in einer Plattform, also die endbenutzerbasierte Zugriffskontrolle gelöst
ist, stellt sich noch die Aufgabe, welchen Plattformen überhaupt Information zugänglich gemacht
werden soll, und wieviel Information zugänglich gemacht werden soll. Hintergrund dieser Anforderungen ist, dass die Plattformen verschiedene Ziele verfolgen, und die Information (neben der
Präsentation gegenüber Benutzern) zu verschiedenen Zwecken einsetzen.
P3P - Platform for Privacy Preferences
Eine wichtige Entwicklung im Bereich der Abwicklung von Zugriffsrechten zwischen Plattformen
ist P3P (Cranor u. a. 2000). Nachdem unsere Lösung eng auf P3P aufbaut, soll in diesem Abschnitt
zuerst kurz P3P vorgestellt werden, bevor genauer auf die vorgeschlagene Lösung eingegangen wird.
P3P liegt folgendes Szenario zugrunde: Der Benutzer stelle sein persönliches Profil auf seinem lokalen Web-Browser zur Verfügung. Mit dem Browser nutzt er verschiedene Dienste im Web, welche
Informationen aus dem Profil des Benutzers benötigen. Zur Ermöglichung einer automatischen Abwicklung beschreibt jede Anwendung genau, welche Daten zu einem Benutzer sie benötigt und wozu
sie sie benötigt. Diese Beschreibung (privacy policy) wird in XML codiert. Auf der anderen Seite
spezifiziert der Benutzer einmal seine Präferenzen bezüglich seiner Privatsphäre, also welchen Anwendungen für welchen Zweck welche Daten bekommen können. Der Browser des Benutzers kann
dann mit den Präferenzen und der Policy selbständig entscheiden, welche Daten übertragen werden
sollen und welche nicht.
Der Standard definiert dazu das Aushandlungsprotokoll und Datenstrukturen für Policy und Verhandlung (siehe auch Seite 81).
Obwohl P3P einen Mechanismus zur Verfügung stellt, der sicherstellt, dass Informationen nur im
Rahmen einer Vereinbarung ausgetauscht werden, so bietet das Protokoll jedoch keinen Mechanismus zur Überprüfung an, ob der Dienst die Daten wirklich nur in der angegebenen Art und Weise
verwendet. Dazu werden weitere Organisationen ins Spiel gebracht, die die verschiedenen Dienste
überprüfen und ihnen ggf. ein Gütesiegel geben. z.B. TRUSTe.
91
4 Benutzerprofile und Benutzerprofilspeicherung
IDRepository - Tickets und automatische Aushandlung
Bei der Trennung von Client und Profilspeicherung, wie in unserem Fall vorgesehen, ergibt sich das
Problem der Autorisierung von Profilzugriffen. Hierzu haben wir verschiedenen Beispielen aus dem
Bereich der Verteilen Systeme (z.B. Kerberos (Steiner u. a. 1988)) folgend, sogenannte Zugriffstickets
eingeführt. Die Tickets kodieren welche Daten der Dienst in welcher Weise (nur lesend, schreibend)
zugreifen kann und können vom Dienst als Legitimation beim Zugriff auf das IDRepository genutzt
werden.
Die einfachste Möglichkeit zur Vergabe der Tickets ist es, diese explizit vom Eigentümer eines Profils
für den Dienst auszustellen, der Zugriff auf Teile des Profils haben soll. Die Übergabe von Tickets
kann also explizit beim Registrieren bei Diensten erfolgen. Notwendig ist hierzu eine einfache Möglichkeit, Tickets zu erzeugen. Bei Web-basierten Diensten kann der Dienst, der ein Ticket erhalten
möchte, beispielsweise einen Verweis auf die Web-Benutzungsschnittstelle des Profil-Repositories
zur Verfügung stellen, die bereits die geforderten Rechte kodiert. Der Benutzer braucht sich dann nur
noch gegenüber dem Profilserver zu authentifizieren und die Anfrage bestätigen.
Zusätzlich zur expliziten Vergabe können wir aber auch die Ideen von P3P aufgreifen und eine automatische Vergabe von Tickets über den Vergleich von Datenschutzerklärungen der Dienste und
Privacy-Präferenzen des Benutzers realisieren. Dazu stellt der Benutzer im IDRepository Regeln ein,
nach denen entschieden werden kann, welchen Diensten Tickets für welche Rechte gegeben werden
können. Dienste liefern dann ihre Privacy Policy, d.h. eine kodierte Aussage, welche Daten sie haben
möchten, und was sie damit anfangen wollen. Entsprechend den Regeln kann das IDRepository dann
Zugriffs-Tickets ausstellen und übermitteln.
Eine Erweiterung der P3P-Konzepte und erste Ideen zu Zugriffs-Tickets sind in (Wörndl 2002),
(Wörndl und Koch 2002) und (Wörndl 2001) dokumentiert.
Wie schon bei der Vorstellung von P3P angeklungen ist, kann der plattformübergreifende Austausch
von Profilinformationen nicht nur von der Technologieseite her gesehen werden. Nachdem Benutzerprofilinformation anderen Akteuren zur Verfügung gestellt wird, kann technisch nicht verhindert
werden, dass diese diese Information weitergeben. So müssen rechtliche und Vertrauensbarrieren
aufgebaut werden. Erste Ansätze dazu sind die Zertifizierung von Profildatennutzern.
Von großer Wichtigkeit ist auch die spezielle Berücksichtigung von Benutzungsschnittstellen. Erfahrungen mit konfigurierbaren Anwendungen zeigen, dass vielfach die Funktionalität nicht genutzt
wird, weil sie zu unintuitiv oder schwer zugänglich ist. Gerade beim Konfigurieren von Rechten
und der Übersucht über Zugriffe auf das Profil ist es aber essentiell für das Vertrauen des Benutzers
in die Technologie, dass er das Gefühl hat, die Technologie bedienen zu können. Hierzu sind neue
Benutzungsschnittstellenkonzepte notwendig.
Communities bzw. die Kenntnis der Community-Zugehörigkeit selbst können bei der Definition von
Zugriffsrechten helfen.
Weiterführende Information zu diesen Themenbereichen ist in folgenden Veröffentlichungen dokumentiert: (Koch 2002c), (Koch 2002d), (Wörndl und Koch 2002) und (Koch und Wörndl 2001).
4.4.3
Transparenz
Neben der benutzerfreundlichen Spezifikation von Zugriffsrechten ist für den Aufbau von Vertrauen
in die Profilverwaltung noch notwendig, dass Besitzer eines Profils schnell und einfach Überblick
92
4.4 Privatheit und Zugriffskontrolle
über die Nutzung des Profils erhalten können. Diese Transparenz über gespeicherte Daten und Nutzung der Daten ist sogar im rechtlichen Rahmen zur Benutzerdatenspeicherung, dem Teledienstdatenschutzgesetz (TDDSG) festgeschrieben (Gentsch 2002).
Zum Überblick über die Profilnutzung gehört Information darüber, welche Information aus welchem
Grund welchen Diensten zur Verfügung gestellt worden ist, und wo momentan Information aus dem
Profil zwischengespeichert wird.
Solche Information kann beim Profilserver erfasst und gespeichert werden. Auch die Bereitstellung
sollte dann am besten auch über die Benutzungsschnittstelle des Profilservers geschehen. Neben der
Möglichkeit, diese Information aktiv einzusehen, sollte weiterhin die Möglichkeit geboten werden,
E-Mail-Benachrichtigungen zu bestimmten Ereignissen zu abonnieren.
93
4 Benutzerprofile und Benutzerprofilspeicherung
94
Kapitel 5
Prototypsysteme und erste Erfahrungen
„Beware of bugs in the above code; I have only proved it correct, not tried it.“,
(Knuth 1977)
Die Überlegungen in den vorherigen Kapiteln entstanden aus einer längeren Beschäftigung mit
Community-Plattformen. Dabei wurden auch mehrere Plattformen realisiert oder deren Realisierung begleitet. In diesem Kapitel werden die Erfahrungen, die bei der Anwendung der allgemeinen Konzepte auf reale Plattformen gewonnen worden sind dargestellt und herausgearbeitet, wo
Interoperabilitätspotentiale verwirklicht werden konnten.
Kapitelinhalt
5.1
5.2
5.3
5.4
5.5
5.6
5.7
IDRepository . . . . . . . . . . . . .
Informationsdrehscheibe(n) . . . . .
CommunityItemsTool . . . . . . . .
UnternehmerTUM - TUMmelplatz .
Studiosity . . . . . . . . . . . . . . .
Produktkonfigurations-Community
Austausch von Inhalten . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
96
97
99
99
101
102
102
Die Dienste, die in Abschnitt 3.3 ausgeführt worden sind, wurden im Projekt Cobricks 1 als JavaKomponenten realisiert. Basis des Cobricks-Systems ist ein (Web-)Applikations-Server und ein
komponentenübergreifender Messaging & RPC-Dienst, sowie ein einfacher Komponenten-LookupDienst. Durch die Trennung von Benutzungsschnittstelle und Anwendungskomponenten konnten
verschiedene Benutzungsschnittstellen-Frameworks erprobt werden, u.a. eine Template-basierte Eigenentwicklung. Das dabei entstandene Framework wurde von Anfang an zur Realisierung verschiedenster Prototypplattformen verwendet. An diesen Plattformen wurden die Konzepte weiterentwickelt und verfeinert.
Die verschiedenen Plattformen im Rahmen von Cobricks sind in folgenden Veröffentlichungen dokumentiert: (Koch 2002b), (Koch 2002d), (Koch 2002e), (Koch u. a. 2002a), (Koch u. a. 2002b), (Koch
und Schubert 2002), (Koch u. a. 2001a), (Koch u. a. 2001b), (Koch u. a. 2001c), (Koch und Lacher
2001), (Eisentraut u. a. 2001), (Reichwald u. a. 2001), (Koch u. a. 2000) und (Möslein u. a. 2000).
In diesem Abschnitt werden die wichtigsten Plattformen und die bei ihrem Einsatz abgeleiteten Designentscheidungen für die Realisierung allgemeiner Community-Unterstützungssysteme kurz skizziert.
1
Siehe auch www.cobricks.de.
95
5 Prototypsysteme und erste Erfahrungen
5.1
IDRepository
Die in Kapitel 4 erarbeiteten Konzepte zur Benutzerprofilverwaltung und zur Modellierung von Benutzerprofilen wurden im Rahmen des Cobricks-Projektes umgesetzt und sind mit verschiedenen der
nachfolgend vorgestellten Prototypplattformen in Einsatz.
Web portal
Personalisierung
HTTP
Kategorien
Inhalte
und
Anmerkungen
Kontext
Matchmaking
Benutzerprofil
Mitteilungen
RPC
IDControl
Import/
Export
HTTP
IDRepository
IDCockpit
Abbildung 5.1: Trennung von Profilspeicherung und -nutzung
Konkret wurde zuerst eine Lösung für einen Profilserver nach den in Abschnitt 4.2 diskutierten
Konzepten realisiert. Der sogenannte IDRepository-Server ermöglicht die Verwaltung von mehreren Identitäten und stellt einen Zugriff darauf über verschiedene Schnittstellen (RMI, Corba, WebServices) zur Verfügung.
Für die eigentlichen Community-Plattformen wurde eine Benutzerprofil-Komponente entwickelt,
welche Profile vom IDRepository anfordert, diese Daten lokal zwischenspeichert und Änderungen
wieder an das IDRepository zurückschreibt. Neben diesen Funktionalitäten realisiert die Benutzerprofil-Komponente auch die in Kapitel 3 besprochenen Funktionen zur Definition und Verwaltung
lokaler Rechte.
USERComponent
searchUser(query) -> Set of USER
getUserAttribute(USER, aname) -> Object
setUserAttribute(USER, aname, avalue)
getUserModel(USER) -> USERMODEL
createUser() -> USER
deleteUser(USER)
getPermissions(USER) -> Set of CAPABILITY
checkPermission(USER, CAPABILITY)
addPermission(USER, CAPABILITY)
removePermission(USER, CAPABILITY)
96
5.2 Informationsdrehscheibe(n)
Sowohl IDRepository als auch die User-Komponente realisieren das in Abschnitt 4.3.3 vorgestellte
Profilmodell. An der Schnittstelle der Komponente wird neben einem Zugriff auf die Profildaten vor
allem auch Zugriff auf das Profilmodell selbst angeboten.
Über eine Web-Schnittstelle des IDRepository-Servers (IDCockpit) ist es möglich, explizite Zugriffsrechte zu konfigurieren und Zugriffstickets zu erzeugen. Weiterhin kann über die Web-Schnittstelle
die Historie bisheriger Zugriffe auf das Profil eingesehen werden (Transparenz).
Eine optionale Client-seitige Anwendung (IDControl) kann genutzt werden, um einfach zwischen
Identitäten zu wechseln und weitere Aspekte der Privatsphäre zu kontrollieren.
Abbildung 5.1 zeigt alle implementierten Komponenten im Zusammenhang mit dem IDRepository im
Überblick. Weitere Details zur Implementierung der Komponenten sind in (Koch und Möslein 2003)
sowie in der Implementierungsdokumentation und verschiedenen White Papers zum IDRepository zu
finden.
5.2
Informationsdrehscheibe(n)
Die erste Prototypentwicklung im Rahmen der Community-Aktivitäten war die Entwicklung einer
Web-Plattform für Communities an Universitäten. Die Arbeit an dieser Plattform begann 1997 mit
einem einfachen Web-basierten Informationsdienst zu Lehrveranstaltungen, der über die Jahre sukzessive um Funktionalitäten zur Unterstützung von Kommunikation erweitert wurde. Eingesetzt wird
das Produkt inzwischen an der Fakultät für Informatik und der Fakultät für Wirtschaftswissenschaften der Technischen Universität München, sowie an der Fakultät für Informatik der Universität der
Bundeswehr München.
Im einzelnen bietet diese Plattform folgende Möglichkeiten:
1. Einrichten von Community-Bereichen (Unter-Communities): Jeder angemeldete Benutzer der
Plattform kann einen neuen Community-Bereich einrichten. Einem solchen Bereich können
erstens andere Benutzer der Plattform als Mitglieder zugeordnet werden. Bei offenen Communities kann jeder Benutzer selbst entscheiden, ob er oder sie Mitglied werden möchte, bei
geschlossenen Communities ist eine explizite Einladung durch die Administratoren der Community notwendig. Weitere Attribute der Community bestimmen, ob nur Mitglieder Information in der Community publizieren dürfen und ob die Community in den Plattformlisten
erscheint. Neben strukturierter Information, die der Community zugeordnet werden kann (siehe nächsten Punkt), besitzt eine Community eine frei gestaltbare Homepage (auf der beliebige
Untermengen der Community-Information angezeigt werden können) sowie beliebige weitere
statische Web-Seiten, die von den Community-Mitgliedern editiert werden können.
2. Publizieren von strukturierten Informationen: Die wichtigste Funktionalität neben dem Einrichten von Community-Bereichen ist das Publizieren von Information. Hier stehen verschiedene (frei erweiterbare) Informationstypen zur Verfügung. Momentan sind dies Mitteilungen,
Terminankündigungen, Bookmarks, Projekte, Konversationen und spezielle Ankündigungstypen für den Lehrbetrieb wie z.B. Diplomarbeitsankündigungen. Solche Informations-Items
können von jedem Benutzer erzeugt werden und einer beliebigen Menge von Communities
zugeordnet werden. Diese Zuordnung von Inhalten zu mehr als einer Community stellt eine
wichtige Funktionalität der Plattform dar.
97
5 Prototypsysteme und erste Erfahrungen
3. Kommunikation und Matchmaking: Den (semi-)strukturierten Informationen in den CommunityBereichen können von den Mitgliedern öffentliche Anmerkungen angehängt werden. Damit
wird eine asynchrone Kommunikation zwischen den Mitgliedern möglich. Anwendungsbeispiele dafür ist beispielsweise die Diskussion von Fragen in Lehrveranstaltungen. Neben diesen
asynchronen Konversationen bietet die Plattform kein weitere Unterstützung direkter Kommunikation. Hier wird angenommen, dass die Mitglieder andere Medien (E-Mail, Telefon, ...)
nutzen. Die Plattform vermittelt nur die Kontaktinformation.
Die Plattform setzt die Komponenten Item, Category, Awareness, User, Message ein. Zusätzlich
wurde noch eine Course-Komponente geschaffen, mit der Veranstaltungsdaten und Stundenplaninformation verwaltet werden können. Die Benutzungsschnittstelle ist mit Hilfe der generischen WebKomponente realisiert.
Abbildung 5.2: Drehscheibe Informatik
Der Fokus der Arbeit an den Drehscheibe-Plattformen lag neben der Web-Benutzungsschnittstelle
auf der Realisierung von flexiblen Möglichkeiten zum Einrichten neuer Kategorien sowie der Bereitstellung von Awareness über neue Informationen und über Benutzer. Hierzu wurden verschiedene
Möglichkeiten zum Abonnieren von Ereignismeldungen und von Zusammenfassungen (Newslettern)
von Ereignismeldungen realisiert.
Erfahrungen bei der Nutzung
Eine einzige Installation der Drehscheibe könnte theoretisch alle Anwendungsbereiche an der Universität abdecken. Jedoch ergeben sich bei diesem Vorgehen nach Erfahrungen Widerstände bei Verantwortlichen aus verschiedenen eigenständigen Bereichen. Die Nutzung einer Plattform durch alle
wird als eine Einschränkung der Individualität und Gestaltungsfreiheit gesehen und ist oft organisatorisch nur schwer durchsetzbar. Momentan sind deshalb neben vielen anderen Plattformen auch
zwei getrennte Instanzen der Drehscheibe im Einsatz, sowohl an der Fakultät für Informatik, an der
das System konzipiert wurde und seit vier Jahren entwickelt wird, als auch an der Fakultät für Wirtschaftswissenschaften.
98
5.3 CommunityItemsTool
Das Nutzerverhalten bei den beiden laufenden Instanzen ist sehr unterschiedlich. Während an der Fakultät für Informatik die Plattform hauptsächlich dazu benutzt wird, Mitteilungen von den Lehrenden
an die Studierenden zu übermitteln, wird die Plattform an der Fakultät für Wirtschaftswissenschaften
besonders zur Kommunikation unter den Studierenden genutzt. Es haben sich trotz gleicher Funktionalitäten unterschiedliche Nutzungsschwerpunkte entwickelt. Ein Grund könnte die unterschiedliche
Zusammensetzung der Studierenden und die räumliche Verteilung sein. Während es sich bei der Informatik hauptsächlich um Studierende des Erststudienganges handelt, setzen sich die Studenten der
Wirtschaftsfakultät aus vergleichsweise älteren Personen des managementorientierten-, betriebswirtschaftlichen Aufbaustudiums (MBA) zusammen. Neben dem Altersunterschied unterscheiden sich
die beiden Gruppen auch in Bezug auf die örtliche Verteilung. Während die meisten Lehrveranstaltungen der Informatikstudierenden in einem überschaubaren Bereich des Campus stattfinden, sind
die des MBA räumlich über die unterschiedlichen Standorte der TUM verteilt.
Weitere Informationen zur Drehscheibe-Plattform und den Erfahrungen damit finden sich in (Koch
2002e) und (Koch 2003a)
5.3
CommunityItemsTool
Parallel zu den Informationsdrehscheiben ist eine Community-Plattform zum Wissensmanagement
entstanden, mit der in einer (wissenschaftlichen) Arbeitsgruppe Bookmarks und Literaturreferenzen
ausgetauscht werden können.
Das sogenannte CommunityItemsTool setzt auf dieselbe Basis auf wie die Drehscheiben (insbesondere Item- und Category-Komponente). Beim CommunityItemsTool wurde dabei vor allem mit der
Kategorisierung von Informationen experimentiert. Benutzer können Items in eigene Folder einordnen und auch die Folder anderer Benutzer durchsehen. Damit ist es möglich den Kontext nachzuvollziehen in dem ein Benutzer ein Item sieht. Private Folder wurden dabei wie öffentliche Kategorien
mit dem Datenkonzept der Kategorien realisiert.
Die speziellen Funktionalitäten zum Verwalten und Browsen verschiedener Kategorisierungen wurden inzwischen auch in die Drehscheiben eingebaut - werden aber noch nicht vollständig an der
Benutzungsschnittstelle angeboten.
Weitere Informationen zur CommunityItemsTool-Plattform und den Erfahrungen damit finden sich
in (Koch u. a. 2001b) und (Koch u. a. 2001c).
5.4
UnternehmerTUM - TUMmelplatz
Auf den Drehscheiben wurde auch ein Alumni-Bereich eingerichtet. Hier ist es möglich, Jahrgangslisten einzusehen und, falls gestattet, Kontaktinformationen zu ehemaligen Mitstudenten zu finden.
Weiterhin können Mitteilungen an Ehemalige verbreitet werden und es gibt die Möglichkeit, sich
untereinander auszutauschen.
Die Technischen Universität München hat sich in den letzten Jahren zur Aufgabe gemacht, das Netzwerk der ehemaligen TUM Studenten zu stärken. Dazu wurde in der Universitätsverwaltung ein
Alumni & Career Center initiiert. Die Gruppe pflegt eine offline Alumni-Datenbank, organisiert eine
Reihe von Veranstaltungen und unterstützt die Alumni-Vereinigungen der einzelnen Studiengänge.
Zusätzlich zum Alumni & Career Center gibt es noch eine weitere Institution, die sich mit Alumni
99
5 Prototypsysteme und erste Erfahrungen
beschäftigt, die UnternehmerTUM GmbH. Die UnternehmerTUM ist daran interessiert ein Netzwerk
von Ehemaligen aufzubauen, die Unternehmen gegründet haben oder an einer Gründung interessiert
sind.
Im Rahmen der Community-Aktivitäten wurde zusammen mit UnternehmerTUM im Rahmen des
Projektes „Telekooperation in Beziehungsnetzwerken für informationsbezogene Dienstleistungen“
(TiBiD)2 eine Plattform aufgebaut, die (potentiellen) Entrepreneuren Informationen und Unterstützung beim Finden von Partnern bietet. Ziel ist es, das unternehmerische Denken und Handeln bei den
Studierenden und wissenschaftlichen Mitarbeitern der Universität zu fördern. Auf der CommunityPlattform (die offline Aktivitäten begleitet und unterstützt) haben Studierende, wissenschaftliche
Mitarbeiter, Alumni und Externe die Möglichkeit, miteinander zu kommunizieren und Informationen zum Thema Unternehmertum zu sammeln. Neben dem Fokus auf die TUM wurden in diese
Community-Plattform auch externe Gruppen integriert, die sich mit Entrepreneurship beschäftigen,
z.B. der Münchner Businessplanwettbewerb.
Der Fokus der Unterstützung liegt in der Entrepreneurship-Plattform im Matchmaking. Zur Realisierung wurden hauptsächlich die Komponenten Item, Category, Message benutzt. Bei der Benutzungsschnittstelle wurde nicht auf die generische Web-Komponente des Cobricks-Projektes zurückgegriffen, sondern eine eigene Lösung mit Mitteln eines speziellen Community-Applikations-Servers (dem
Cassiopeia Community-Applikations-Server) realisiert.
Abbildung 5.3: UnternehmerTUM Plattform
Parallel zu den UnternehmerTUM-Aktivitäten wurde mit dem Alumni & Career Center an der Konzeption einer (Kommunikations-)Plattform für alle Alumni der Technischen Universität München
begonnen. Auf dieser Plattform, die unter dem Namen „TUMmelplatz“ geführt wird, sollen vor allem fakultätsübergreifende Funktionen und speziell Kommunikationsfunktionen angeboten werden,
wie sie in den Fakultätsplattformen (z.B. Drehscheibe) noch nicht unterstützt werden. Unter anderem wird in diesem Kontext auch die offline Alumni-Datenbank online gebracht - erstens um das
Matchmaking und das Finden von Co-Alumni zu ermöglichen und zweitens um eine Pflege der Daten
durch die Alumni selbst ermöglichen.
2
Das Projekt TiBiD wird von Bundesministerium für Bildung und Forschung (BMBF) unterstützt (FKZ 01 HG 9991/2).
Siehe auch www.tibid.de.
100
5.5 Studiosity
Weitere Informationen zur TUMmelplatz-Plattform und den Erfahrungen damit finden sich in (Koch
2002e) und (Koch u. a. 2001a).
5.5
Studiosity
Im Projekt „Community Online Services and Mobile Solutions“ (Cosmos) 3 ist unser Ziel eine technische Basis für die Unterstützung von mobilen Communities in den Bereichen Lifestyle und Healthcare zu schaffen und in Prototypcommunities zu testen.
Im Lifestyle-Bereich konzentrieren wir uns dabei auf die Unterstützung kleiner (offener oder geschlossener) Untergruppen. Dabei sollen speziell Community-Mitglieder darin unterstützt werden,
ihre Lifestyle-Aktivitäten zu koordinieren. Dabei fokussieren wir auf Community-zentrierte Positionierung und Präsentation von Positionsinformation sowie Messaging und Inhaltsdienste, die von der
Positionsinformation Nutzen ziehen.
Konkrete Dienste konzentrieren sich auf
Koordination von Aktivitäten und Austausch von Information um Veranstaltungen
Awareness zu Lokalitätsinformation in Unter-Communities
Positions- und Verfügbarkeits-bezogene Kommunikation
Abbildung 5.4: Studiosity Plattform (Lifestyle-Community)
Der Fokus dieser Aktivitäten richtet sich also auf reiche Kontext-Information (Position und Verfügbarkeit) und mobile Endgeräte. Neben der Ermittlung von Positionsinformation spielen dabei vor
allem Regeln zur Definition von Zugriffsrechten und zur Konfiguration der Mitteilungsfunktionalität.
3
Das Projekt Cosmos wird vom Bundesministerium für Bildung und Forschung (BMBF) unterstützt (FKZ 01HW0107 01HW0110). Siehe auch www.cosmos-community.org.
101
5 Prototypsysteme und erste Erfahrungen
Die Lösung wurde mit den üblichen Komponenten (Item, Message, Category, User, Personalization)
realisiert. Für die Lokalitätsinformation wurde die User-Komponente um eine spezielle Unterkomponente für die Ermittlung von Lokalitätsinformation (LocationManager) erweitert.
Weitere Informationen zur Cosmos-Plattform und den Erfahrungen damit finden sich in (Koch 2002b),
(Hillebrand u. a. 2002) und (Koch u. a. 2002a).
5.6
Produktkonfigurations-Community
Im Projekt „Generierung und interaktive Anpassung von personalisierter Produktinformation“ im
Sonderforschungsbereich Marktnahe Produktion individualisierter Produkte (SFB582) 4 arbeiten wir
an einer Community-Plattform zur Unterstützung der Konfiguration von personalisierten Produkten.
Neben der klassischen Kommunikationsunterstützung wird hier vor allem auf die Personalisierung
Wert gelegt.
Konkret sind die folgenden Funktionalitäten vorgesehen:
Produkt-Community: Rund um vorhandene Produkte und Produktkomponenten können Kommentare erfasst und ausgetauscht werden. Über Bewertungen von Komponenten wird eine
Unterstützung von (kollaborativer) Filterung erreicht.
Produkt-Konfigurator: Basierend auf einem Produktmodell und den Informationen, die über
einen Benutzer vorhanden sind, wird über verschiedene Personalisierungsmethoden versucht
Vorschläge für personalisierte Produkte zu erzeugen und den Benutzer bei der Anpassung von
Produktvorschlägen zu unterstützen.
Zusätzlich zu den Standardkomponenten wird in der Konfigurations-Community noch eine spezialisierte Produkt(modell)-Komponente eingesetzt.
Basierend auf der erweiterten Inhaltskomponente wird in diesem Projekt stark an Personalisierungsmethoden gearbeitet. Hierfür wird gerade eine modulare Lösung für die Personalisierungs-Komponente erarbeitet.
Als zweiter Grundstein neben Produktmodell und Personalisierungsmethoden erfolgt in diesem Projekt eine starke Konzentration auf Benutzermodellierung und dem Import von Benutzerprofilen. Hintergrund ist die Idee, dass schon beim ersten Kontakt mit einer neuen Firma durch Import des Benutzerprofils aus anderen Quellen konkrete Empfehlungen generiert werden können.
Weitere Informationen zur SFB582-Plattform und den Erfahrungen damit finden sich in (Koch 2002d),
(Koch u. a. 2002b), (Schubert und Koch 2002), (Leckner u. a. 2003), (Piller u. a. 2003) und (Stegmann
u. a. 2003).
5.7
Austausch von Inhalten
In den letzten Abschnitten wurden verschiedenen Plattformen vorgestellt, an denen verschiedene Anforderungen an Community-Unterstützungsplattformen erarbeitet worden sind und an denen erste
4
Der Sonderforschungsbereich 582 wird von der Deutschen Forschungsgemeinschaft (DFG) gefördert. Siehe auch
www.sfb582.de.
102
5.7 Austausch von Inhalten
Konzepte erprobt worden sind. Ziel der Plattformentwicklungen war dabei neben der Ermöglichung
eines einfachen Aufbaus die Ermöglichung des Austausches von Inhalten zwischen Plattformen.
Unter Inhalten verstehen wir strukturierte Daten und Kommentare, die von den Mitgliedern einer
Community gesammelt werden und auch für andere Communities von Interesse sind, in unserem
Fall also Items. Bei der Realisierung haben wir momentan den Weg gewählt, dass sowohl Quell- als
auch Ziel-Community explizit festlegen müssen, für welche Inhalte ein Austausch stattfindet. Dann
werden neue Inhalte über ein definiertes XML/HTTP-Format an die Ziel-Communities geschickt.
TUMmelplatz
Studenten und Alumni
Externe
Plattformen
IDRepository
Andere
Universitätsplattformen und
Datenbanken
Gruppenplattformen
Fakultätsplattformen
Abbildung 5.5: TUM Plattformen
Eine Möglichkeit, automatisch zu bestimmen, für welche Communities neue Informationen interessant sind, wäre die Anwendung verschiedener Klassifizierungsmethoden des Wissensmanagement.
Gegen einen Einsatz solcher Methoden spricht allerdings der Anspruch von Communities, über den
von den Mitgliedern erstellten Inhalt und dessen Verwendung selbst zu entscheiden. Der Austausch
wird momentan hauptsächlich dann eingesetzt, wenn ein und dieselbe Community auf verschiedenen
Plattformen „zu Hause“ ist. Beispiele dafür sind die Anbieter der Veranstaltungen für den Nebenfach Wirtschaftswissenschaften im Informatik-Diplomstudiengang auf der Plattform der Betriebswirtschaftslehre und die Studierenden der Informatik auf der Plattform der Informatik. Genauso gibt
es auf der BWL-Plattform eine aktive Freizeit-Community, die sich mit der Freizeit-Community auf
der Informatik-Plattform austauscht. Für die im entstehen begriffenen Plattformen ist bisher eher ein
informationstypbezogener Austausch geplant, z.B. ein Austausch von Job-Ankündigungen von den
Fakultätsplattformen zum TUMmelplatz.
103
5 Prototypsysteme und erste Erfahrungen
104
Kapitel 6
Zusammenfassung und Ausblick
„Perhaps the biggest single misconception about virtual communities is,
that they can be created.“,
(source unknown)
6.1
Zusammenfassung
Das Ziel dieser Arbeit war es, ein besseres Verständnis des Anwendungsbereichs Community-Unterstützung zu erarbeiten und eine Software-Architektur zur einfachen Realisierung (interoperabler)
Community-Unterstützungssysteme zu konzipieren.
Dazu habe ich in Kapitel 2 zuerst den Bereich Community-Unterstützung mit Motivation und Triebkräften näher beleuchtet und die Kernpunkte von Community-Unterstützungssystemen herausgearbeitet.
Zur Erleichterung des Aufbaus von Community-Unterstützungssystemen wurde in Kapitel 3 aus den
verschiedenen Anforderungen und Erfahrungen eine Grundarchitektur für solche Systeme konzipiert
und umgesetzt. Kernpunkte der Architektur waren die Definition und Ausarbeitung von Unterstützungskomponenten und die Definition allgemeiner Datenstrukturen für die Unterstützung. Speziell
wurde dabei die Modellierung und Speicherung von Benutzerprofilinformation behandelt (Kapitel 4).
Die iterative Umsetzung und Erprobung der Architektur in verschiedenen Projekten hat die praktische
Verwendbarkeit und Relevanz der Ergebnisse gezeigt.
Zukünftige Aktivitäten sind in der Ausarbeitung und weiteren Verfeinerung der Dienste und Konfigurationsmöglichkeiten, sowie im Ausbau der Unterstützung für die Benutzerprofilverwaltung zu
sehen.
Bei der Verfeinerung der Dienste arbeiten wir momentan hauptsächlich an verschiedenen Werkzeugen
für die Item-Verwaltung und an einer besseren Konfigurierbarkeit des Gesamtsystems. Diese Aktivitäten gehen Hand in Hand mit der Vorbereitung der Bereitstellung von Cobricks als Open-Source
System.
Beim Ausbau der Benutzerprofilverwaltung wird hauptsächlich an einer Integration vorhandener
Standards und Infrastrukturen (wie dem neuen Standard der Liberty Alliance) und an Benutzungsschnittstellen zur einfachen Spezifikation von Zugriffsrechten und zur Bereitstellung von Transparenz
gearbeitet. Letzteres sehen wir als zentralen Punkt für die Nutzbarkeit eines solchen Systems und für
den Aufbau von Vertrauen in ein solches System.
105
6 Zusammenfassung und Ausblick
In den weiteren Unterkapiteln gehe ich noch auf einige weitere, parallel angelaufene und zukünftige
Aktivitäten im Zusammenhang mit Community-Unterstützung ein.
6.2
Datenmodellierung und Semantic Web
Wie schon in Kapitel 3 und Kapitel 4 angesprochen worden ist, wurde für die Modellierung der Basiskonzepte eine Lösung gewählt, die neben der Modellierung allgemeiner Datenstrukturen auch noch
die Spezifikation von Semantik-Information als Regeln und damit die Ermöglichung von automatischer Deduktion zusätzlicher Information ermöglicht.
Diese Möglichkeiten wurden bisher nur in wenigen Fällen genutzt (z.B. bei der Definition von Zugriffsregeln bei Benutzerprofilen). Die Dienste müssen immer noch in hohem Maße implizites Wissen
über die Semantik der Daten prozedural kodieren. Durch eine weitreichendere deklarative Spezifikation und Nutzung der Semantik der Daten, die vor allem Zusammenhänge und Einschränkungen in
einer Beschreibungslogik definiert (zusätzliches Regelwissen), könnte einiges von dem prozeduralen
Wissen in den Programmen in die Datendefinition selbst verlagert werden.
Dabei kann von vielen Aktivitäten im Rahmen des „Semantic Web“ profitiert werden. Diese Forschungs- und Entwicklungsaktivitäten versuchen das bestehende World-Wide-Web zu verbessern, in
dem nicht mehr nur die Syntax von Dokumenten und anderen Informationsträgern ausgewertet wird,
sondern auch eine maschinen-verarbeitbare Repräsentation von Zusammenhängen und Bedeutung
realisiert wird.
Neben der weiteren Integration von Regeln für die Repräsentation von Zugriffsrechten auf Benutzerprofile oder für die Kodierung von Awareness-Abonnements gibt es hier die Möglichkeit der Nutzung
von Werkzeugen aus dem Semantic-Web-Bereich für die Konfiguration von Community-Plattformen.
Dieser Bereich soll Inhalt weiterer Forschungen in der Zukunft sein.
Durch verstärkte Verlagerung der prozeduralen Komponenten in die Daten selbst wird hier ein Weg
eingeschlagen, den der Forschungsbereich der Künstlichen Intelligenz schon beschritten hat. Als Extrema könnte man hier anstreben alle Funktionalität in den Daten zu kodieren und die CommunityPlattformen nur noch als Inferenz-Maschinen zu gestalten, auf denen die Fakten und Regeln der
Daten aufeinandertreffen. Wie sich aber schon in den Forschungen zur Künstlichen Intelligenz gezeigt hat, gibt es bei diesem Ansatz wesentliche Umsetzungs- und Effizienzprobleme. Aus diesem
Grund wollen wir diesen Ansatz vorläufig nicht weiter verfolgen und halten an einer Kodierung von
Funktionalität in prozedural orientierten Community-Plattformen fest.
6.3
Web-Services und Benutzeragenten
In Kapitel 3 wurde als Technologie für die Realisierung von Komponenten und zum Zugriff auf
die Komponenten die Web-Services Technologie vorgestellt. Eine grundsätzliche Möglichkeit zum
Zugriff auf die Komponenten über die Web-Services-Schnittstelle SOAP ist in den Prototypen bereits
realisiert. Auch können die Komponenten in UDDI-Repositories registriert werden.
Noch nicht gelöst sind Fragen der Authentifizierung an der Web-Services-Schnittstelle und Spezifikation der Dienstsemantik in Web-Services-Verzeichnisdiensten. Letzteres ist insbesonders dann wichtig, wenn Benutzeragenten über Verzeichnisdienste selbst nach passenden Community-Plattformen
106
6.4 Kategorisierung und Unter-Communities
suchen. Hierzu ist zum Beispiel eine Spezifikation der auf der Community behandelten Themen über
globale Kataloge notwendig.
Die Konzeption von Client-seitigen Benutzeragenten, die auf mehrere Community-Plattformen zugreifen, wirft weiterhin verschiedenste Fragen aus dem Bereich der Präsentation von Informationen
und zur Benutzerinteraktion auf, die in zukünftigen Projekten bearbeitet werden sollen.
6.4
Kategorisierung und Unter-Communities
In Kapitel 3 wurde als eine der drei Konzeptbereiche die Kodierung von Domänenwissen vorgestellt. Als Lösung wurde dazu die Definition von hierarchisch strukturierten Kategorien und UnterCommunities (SharedBuddylists) vorgeschlagen.
Die Zuordnung von Benutzern und Informationen zu solchen Kategorien können diese sowohl zur
Auswahl von Empfängern für Informationen und Nachrichten als auch zur Definition von Zugriffsrechten herangezogen werden. Kategorien können sowohl zur Auszeichnung von Community-Wissen
benutzt werden als auch von Community-Mitgliedern dazu verwendet werden, das Interesse an gewissen Inhalten zu erklären.
Das Hauptproblem bei der Kategorisierung in Systemen, die von mehreren Benutzern genutzt werden, ist generell die Definition eines für alle akzeptablen und arbeitsfähigen Kategorienraums. Jeder
Benutzer neigt normalerweise dazu, explizit oder implizit seine eigene Kategorisierung einzuführen.
Neben dem strikten Vorschreiben zentral erstellter Kategorisierungen gibt es hier die Lösungsidee
der Unterstützung einer kollaborativen Erstellung und Erweiterung einer Kategorisierung durch alle
Community-Mitglieder. Weiterhin wird die automatische Abbildung von Kategorisierungen aufeinander untersucht (Projekt Caiman). Damit könnte erreicht werden, dass Community-Mitglieder oder
Untergruppen eigene Kategorisierungen für Inhalte und Interessen führen und Einordnungen eines
Benutzers automatisch in Einordnungen anderer Benutzer oder in eine globale Einordnung umgeschrieben werden.
Neben dem Einsatz in einzelnen Plattformen sind solche Mechanismen insbesondere beim Austausch
von Informationen und Benutzerprofilen zwischen Plattformen und bei der Nutzung mehrerer Plattformen von einem Benutzeragenten aus relevant.
Mechanismen für eine automatische Abbildung werden im Promotionsprojekt Caiman von Martin
Lacher erarbeitet. Erste Ergebnisse im Kontext der Community-Unterstützung sind beispielsweise in
(Lacher u. a. 2000) veröffentlicht.
6.5
Mobile Communities und ubiquitäre
Benutzungsschnittstellen
Die Unterstützung von Community-Kommunikation sollte nicht nur auf Situationen beschränkt sein,
bei denen ein Internet-fähiger Desktop-PC verfügbar ist. Gerade durch die Bereitstellung von mächtigen Möglichkeiten zum Zugriff auf Community-Wissen und auf andere Community-Mitglieder von
mobilen Endgeräten aus eröffnen sich neue Möglichkeiten.
Insbesondere kann durch mobile und ubiquitäre Benutzungsschnittstellen die „Reichweite“ von Community-Plattformen erhöht werden. Durch die Beschränkung auf den Desktop erreicht man nämlich
107
6 Zusammenfassung und Ausblick
einige Personen überhaupt nicht und schränkt den direkten Zugriff auf Personen auf bestimmte Situationen ein. So ist es der beste Zeitpunkt zum Erfassen von Meinungen zu einem Kinofilm direkt
nachdem man den Film gesehen hat und nicht erst sobald man wieder am Rechner sitzt.
In verschiedenen Projekten wird diesem Thema nachgegangen. Im Projekt Campiello habe ich selbst
an neuen Benutzungsschnittstellen für Tourismus-Communities mitgearbeitet, im Projekt Cosmos
arbeiten wir gerade noch an neuen Erkenntnissen zu Lifestyle- und Healthcare-Communities.
Campiello (Esprit LTR Project 25572) wurde von September 1997 bis August 2000 von Partnern
aus Frankreich, Italien und Griechenland durchgeführt (Koch u. a. 2001d; Agostini u. a. 2000; Grasso
u. a. 2000, 1999; Koch u. a. 1999; Grasso u. a. 1998).
Ausgangspunkt für Campiello waren stark touristisch frequentierte Städte. Dabei wurden die Städte
Chania auf Kreta und Venedig in Italien als Testfeld ausgewählt. Ein Problem in solchen Städten ist,
dass die früheren, jetzigen und zukünftigen Besucher dieser Städte kaum eine Möglichkeit haben,
vom Wissen der anderen zu profitieren, und dass ferner auch zwischen Touristen und Einheimischen
kaum Möglichkeiten zum gegenseitigen Informationsaustausch gegeben sind.
Es handelt sich hierbei um ein besonders ausgeprägtes „Reichweitenproblem“. Ziel von Campiello
war die Verbesserung des aktuellen Zustands durch Bereitstellung eines Informationssystems mit neuartigen Interaktionsmöglichkeiten und verschiedenen Benutzungsschnittstellen. Insbesondere wurde
dabei an der Nutzung von Papier-Formularen und von großen Bildschirmen gearbeitet.
Auch im Rahmen des Cobricks-Projektes wurden bereits erste Arbeiten zur Einbeziehung mobiler
und ubiquitärer Schnittstellen unternommen. Erstens sind hier die mobilen Schnittstellen im Projekt Cosmos (Studiosity) zu nennen (siehe Abschnitt 5.5). Zweitens wurden verschiedene Ideen zur
Nutzung von großen Wandbildschirmen aus Campiello weiterentwickelt (Koch 2003b).
108
Literaturverzeichnis
1 (Agostini u. a. 2000) AGOSTINI, A. ; G IANNELLA, V. ; G RASSO, A. ; KOCH, M. ; S NOWDON, D. ; VAL PIANI , A.: Reinforcing and Opening Communities Through Innovative Technologies. S. 380–403. In:
G URSTEIN, M. (Hrsg.): Community Informatics, Idea Group Publishing, Hershey, 2000
2 (Agre 2001) AGRE, P.: Networking on the Network. 2001. – Arbeitsbericht - Online verfügbar unter
http://dlis.gseis.ucla.edu/people/pagre/network.html
3 (Armstrong u. a. 1995) A RMSTRONG, R. ; F REITAG, D. ; J OACHIMS, T. ; M ITCHELL, T.: WebWatcher - A
Learning Apprentice for the World Wide Web. In: Proc. AAAI Spring Symposium, März 1995
4 (Borchers 2000) B ORCHERS, J. O.: A pattern approach to interaction design. In: Symposium on Designing
Interactive Systems: processes, practices, methods, and techniques, Aug. 2000
5 (Borghoff u. a. 2001) B ORGHOFF, U. M. ; KOCH, M. ; L ACHER, M. S. ; S CHLICHTER, J. H. ; W EISSER, K.:
Informationsmanagement und Communities - Überblick und Darstellung zweier Projekte der IMC-Gruppe
München. In: Informatik Forschung und Entwicklung 16 (2001), Jul., Nr. 2, S. 103–109
6 (Borghoff und Pareschi 1998a) B ORGHOFF, U. M. ; PARESCHI, R.: Information Technology for Knowledge
Management. Springer Verlag, Berlin, 1998
7 (Borghoff und Pareschi 1998b) B ORGHOFF, U. M. (Hrsg.) ; PARESCHI, R. (Hrsg.): Information Technology
for Knowledge Management. Springer Verlag, Berlin, 1998
8 (Borghoff und Schlichter 2000)
Work. Springer, 2000
B ORGHOFF, U. M. ; S CHLICHTER, J. H.: Computer-Supported Cooperative
9 (Buschmann u. a. 1996) B USCHMANN, F. ; M EUNIER, R. ; ROHNERT, H. ; S OMMERLAD, P. ; S TAL, M.:
Pattern-oriented Software Architecture, Vol. 1: A System of Patterns. John Wiley and Sons, 1996
10 (Carotenuto u. a. 1999) C AROTENUTO, L. ; E TIENNE, W. ; F ONTAINE, M. ; F RIEDMAN, J. ; N EWBERG,
H. ; M ULLER, M. ; S IMPSON, M. ; S LUSHER, J. ; S TEVENSON, K.: CommunitySpace: Towards flexible
support for voluntary knowledge communities. In: Proc. Workshop on Workspace Models for Collaboration,
Apr. 1999
11 (Carroll u. a. 1996) C ARROLL, J. M. ; L AUGHTON, S. ; ROSSON, M. B.: Network Communities. In: Proc.
Conf. on Human Factors in Computing Systems: Conference Companion, 1996, S. 357–358
12 (Cranor u. a. 2000) C RANOR, L. ; L ANGHEINRICH, M. ; M ARCHIORI, M. ; P RESLER -M ARSHALL, M. ;
R EAGLE, J.: The Platform for Privacy Preferences 1.0 (P3P1.0) Specification / W3C. W3C, Dez. 2000. –
Forschungsbericht. W3C Candidate Recommendation
13 (Cranor 1999) C RANOR, L. F.: Agents of Choice: Tools that Facilitate Notice and Choice about Web Site
Data Practices. In: Proc. 21st Intl. Conf. on Privacy and Personal Data Protection, Sep. 1999, S. 19–25
14 (Davenport und Prusak 1998)
School Press, 1998
DAVENPORT, T. H. ; P RUSAK, L.: Working knowledge. Harvard Business
109
Literaturverzeichnis
15 (Donath u. a. 1999) D ONATH, J. ; K ARAHALIOS, K. ; V IEGAS, F.: Visualizing Conversation. In: Proc.
Hawaii International Conf. on System Sciences (HICSS-32), 1999
16 (Dourish und Bellotti 1992)
D OURISH, P. ; B ELLOTTI, V.: Awareness and Coordination in Shared
Workspaces. In: T URNER, J. (Hrsg.) ; K RAUT, R. E. (Hrsg.): Proc. Intl. Conf. on Computer-Supported
Cooperative Work, ACM Press, New York, NY, Okt. 1992, S. 107–114
17 (Dyson 1997)
York, 1997
DYSON, E.: Release 2.0 - A Design for Living in the Digital Age. Broadway Books, New
18 (Eisentraut u. a. 2001) E ISENTRAUT, R. ; KOCH, M. ; M ÖSLEIN, K.: Building Trust and Reputation in
Communities and Virtual Enterprises. In: S TRONG, D. (Hrsg.) ; S TRAUB, D. (Hrsg.): Proc. 7th Americas
Conf. on Information Systems (AMCIS2001), Association for Information Systems, Aug. 2001, S. 1506–
1509
19 (Erickson 2000) E RICKSON, T.: Towards a Pattern Language for Interaction Design. In: L UFF, P. (Hrsg.) ;
H INDMARSH, J. (Hrsg.) ; H EATH, C. (Hrsg.): Workplace Studies: Recovering Work Practice and Informing
Systems, Cambridge: Cambridge University Press, 2000
20 (Farquhar u. a. 1995) FARQUHAR, A. ; F IKES, R. ; P RATT, W. ; R ICE, J.: Collaborative Ontology Construction for Information Integration / Knowledge Systems Laboratory Department of Computer Science,
Stanford University. Knowledge Systems Laboratory Department of Computer Science, Stanford University,
Aug. 1995. – Forschungsbericht
21 (Fensel 2001) F ENSEL, D.: Ontologies: A Silver Bullet for Knowledge Management and Electronic Commerce. Springer, 2001
22 (Ferraiolo und Kuhn 1992) F ERRAIOLO, D. F. ; K UHN, D. R.: Role Based Access Control. In: Proc. 15th
National Computer Security Conference, 1992
23 (Figallo 1998) F IGALLO, C.: Customer Loyality, and Maintaining a Competitive Edge. Wiley Computer
Publishing, New York, 1998
24 (Fink und Kobsa 2000) F INK, J. ; KOBSA, A.: A Review and Analysis of Commercial User Modeling
Servers for Personalization on the World Wide Web. In: User Modeling and User-Adapted Interaction 10
(2000), S. 209–249
25 (Fink und Kobsa 2002) F INK, J. ; KOBSA, A.: User Modeling for Personalized City Tours. In: Artificial
Intelligence Review 18 (2002), Nr. 1, S. 33–74
26 (Foner 1997) F ONER, L. N.: Yenta - A Multi-Agent, Referral-Based Matchmaking System. In: Proc. 1st
International Conference on Autonomous Agents, Feb. 1997
27 (Franklin und Graesser 1996) F RANKLIN, S. ; G RAESSER, A.: Is It an Agent, or just a Program? - A
Taxonomy for Autonomous Agents. In: Proc. 3rd International Workshop on Agent Theories, Architectures,
and Languages, Springer Verlag, Berlin, 1996
28 (Gamma u. a. 1995)
Wesley, 1995
G AMMA, E. ; H ELM, R. ; J OHNSON, R. ; V LISSIDES, J.: Design Patterns. Addison-
29 (Genesereth 1991) G ENESERETH, M. R.: Knowledge Interchange Format. In: A LLENT, J. (Hrsg.): Proc.
Second Intl. Conf. on the Principles of Knowledge Representation and Reasoning, Morgan Kaufman Publishers, 1991, S. 238–249
30 (Gentsch 2002) G ENTSCH, P.: Virtuelle Kundenpflege: Tools, Techniken und Gesetze. In: iX - Magazin für
Professionelle Informationstechnik (2002), Dez., Nr. 12, S. 77–81
110
31 (Gladwell 2000)
G LADWELL, M.: The Tipping Point. Little, Brown and Company, Boston, 2000
32 (Grasso u. a. 1999) G RASSO, A. ; KOCH, M. ; R ANCATI, A.: Augmenting Recommender Systems by
Embedding Interfaces into Practices. In: H AYNE, S. C. (Hrsg.): Proc. Intl. Conf. on Supporting Group Work
(GROUP99), ACM Press, Nov. 1999, S. 267–275
33 (Grasso u. a. 1998) G RASSO, A. ; KOCH, M. ; S NOWDON, D.: Campiello - New user interface approaches
for community networks. In: S CHULER, D. (Hrsg.): Proc. Workshop Designing Across Borders: The
Community Design of Community Networks, Nov. 1998
34 (Grasso u. a. 2000) G RASSO, A. ; S NOWDON, D. ; KOCH, M.: Extending the Services and the Accessibility
of Community Networks. S. 401–415. In: I SHUDA, T. (Hrsg.) ; I SBISTER, K. (Hrsg.): Digital Cities Technologies, Experiences, and Future Perspectives, Springer Verlag, Berlin, Lecture Notes in Computer
Science 1765, März 2000
35 (Greenspun 1999) G REENSPUN, P.: Scalable Systems for Online Communities. In: G REENSPUN, P. (Hrsg.):
Philip and Alex’s Guide to Web Publishing, Morgan Kaufmann Publishers, 1999
36 (Groh 2002)
G ROH, G.:
Cosmos Plattformkonzept.
2002. –
http://sunschlichter3.informatik.tu-muenchen.de/planung/planung.html
Online verfügbar unter
37 (Gruban 2001) G RUBAN, P.: Von Business zu Communities. S. 11–40. In: G RUBAN, P. (Hrsg.): Business
Communities, Markt und Technik, 2001
38 (Gruber 1992) G RUBER, T. R.: Ontolingua: A Mechanism to support Portable Ontologies / Stanford
University. Stanford University, 1992. – Forschungsbericht
39 (Gruber 1993) G RUBER, T. R.: Toward Principles for the Design of Ontologies Used for Knowledge Sharing
/ Stanford University. Stanford University, August 1993. – Forschungsbericht
40 (Hafner 2001) H AFNER, K.: The Well - A Story of Love, Death and Real Life in the Seminal Online
Community. Carroll and Graf, New York, Apr. 2001
41 (Hagel und Armstrong 1997) H AGEL, J. ; A RMSTRONG, A. G.: net gain - expanding markets through
virtual communities. Harvard Business School Press, 1997
42 (Hauben und Hauben 1997) H AUBEN, M. ; H AUBEN, R.: Netizens: On the History and Impact of Usenet
and the Internet. IEEE Computer Society Press, Los Alamitos CA, 1997
43 (Hensley u. a. 1997) H ENSLEY, P. ; M ETRAL, M. ; S HARDANAND ., U. ; C ONVERSE, D. ; AND, M. M.: Proposal for an Open Profiling Standard / World Wide Web Consortium (W3C). World Wide Web Consortium
(W3C), Jun. 1997. – Forschungsbericht. http://www.w3.org/TR/NOTE-OPS-FrameWork.html
44 (Hesse 2002)
H ESSE, M.: Ontologie(n). In: Informatik Spektrum 16 (2002), Dez., S. 477–480
45 (Hillebrand u. a. 2002) H ILLEBRAND, C. ; G ROH, G. ; KOCH, M.: Mobile Communities - Extending
Online Communities into the Real World. In: H AMPE, J. F. (Hrsg.) ; S CHWABE, G. (Hrsg.): Mobile and
Collaborative Business 2002 Bd. P-16, Sep. 2002, S. 7–18
46 (Hillery 1955) H ILLERY, G. A.: Definitions of Community: Areas of Agreement. In: Rural Sociology 20
(1955), S. 111–123
47 (Hoffmann 2002) H OFFMANN, M.: Vorhersagen und Optionen darstellen - Wie prospektive Mechanismen
Zukunftsawareness fördern. In: H ERCZEG, M. (Hrsg.) ; P RINZ, W. (Hrsg.) ; O BERQUELLE, H. (Hrsg.):
Proc. Mensch und Computer 2002, Teubner, Stuttgart, 2002, S. 245–254
111
Literaturverzeichnis
48 (ter Hofte 1998) H OFTE, G. H. ter: Working apart together: Foundations for component groupware. Telematica Instituut, Enschede, the Netherlands, 1998 (Telematica Instituut Fundamental Research Series
001)
49 (Hoschka u. a. 2001) H OSCHKA, P. ; P RINZ, W. ; PANKOKE -BABATZ, U.: Der Computer als soziales
Medium. S. 276–285. In: S CHWABE, G. (Hrsg.) ; S TREITZ, N. (Hrsg.) ; U NLAND, R. (Hrsg.): CSCWKompendium, Springer, 2001
50 (Ishida 1998)
I SHIDA, T.: Community Computing. John Wiley and Sons, 1998
51 (Karp u. a. 1999) K ARP, P. D. ; C HAUDHRI, V. K. ; T HOMERE, J.: XOL: An XML-Based Ontology
Exchange Language / Pangea Systems Inc. Pangea Systems Inc., Jul. 1999. – Forschungsbericht
52 (Kautz u. a. 1997) K AUTZ, H. ; S ELMAN, B. ; S HAH, M.: Referral Web: combining social networks and
collaborative filtering. In: Communications of the ACM 40 (1997), März, Nr. 3, S. 63–65
53 (Kay 1995) K AY, J.: The um Toolkit for reusable, long term user models. In: User Modeling and UserAdapted Interaction 4 (1995), Nr. 3, S. 149–196
54 (Köhntopp 2000) KÖHNTOPP, M.: Identitätsmanagement. In: BÄUMLER, H. (Hrsg.) ; B REINLINGER, A.
(Hrsg.) ; S CHRADER, H. (Hrsg.): Datenschutz von A-Z, Luchterhand, Neuwied, 2000
55 (Köhntopp und Berthold 2000) KÖHNTOPP, M. ; B ERTHOLD, O.: Identity Management Based On P3P. In:
F EDERRATH, H. (Hrsg.): Workshop on Design Issues in Anonymity and Unobservability, 2000, S. 127–145
56 (Kifer u. a. 1995) K IFER, M. ; L AUSEN, G. ; W U, J.: Logical Foundations of Object-Oriented and FrameBased Languages. In: Journal of the ACM 42 (1995), Nr. 4, S. 741–843
57 (Knuth 1977) K NUTH, D.: Notes on the van Emde Boas construction of priority deques: An instructive use
of recursion. März 1977. – Memorandum
58 (Kobsa 2001) KOBSA, A.: Generic User Modeling Systems. In: User Modeling and User-Adapted Interaction 11 (2001), S. 49–63
59 (Koch 2002a) KOCH, J. H.: Unterstützung der Formierung und Analyse von virtuellen Communities, Dept.
of Computer Science, Technische Universität München, Dissertation, Jul. 2002. – ISBN 3-631-50288-5
60 (Koch 1998) KOCH, M.: Knowledge Management and Knowledge Agents in Campiello. In: L EES, B.
(Hrsg.) ; M ÜLLER, H. J. (Hrsg.) ; B RANKI, C. (Hrsg.): Proc. Workshop on Intelligent Agents in CSCW,
Fachbereich Informatik, Universität Dortmund, Dortmund, Deutschland, Sep. 1998, S. 44–52
61 (Koch 2000) KOCH, M.: Cobricks - Eine agentenbasierte Infrastruktur für Community-Anwendungen.
In: R EICHWALD, R. (Hrsg.) ; S CHLICHTER, J. (Hrsg.): Proc. Deutsche Computer-Supported Cooperative
Work Konferenz (D-CSCW 2000), Teubner Verlag, Stuttgart, Sep. 2000 (Berichte des German Chapter of
the ACM), S. 265–266
62 (Koch 2001a) KOCH, M.: Community-Support-Systeme. S. 286–296. In: S CHWABE, G. (Hrsg.) ; S TREITZ,
N. (Hrsg.) ; U NLAND, R. (Hrsg.): CSCW-Kompendium, Springer Verlag, Berlin, 2001
63 (Koch 2001b) KOCH, M.: Kollaboratives Filtern. S. 351–357. In: S CHWABE, G. (Hrsg.) ; S TREITZ, N.
(Hrsg.) ; U NLAND, R. (Hrsg.): CSCW-Kompendium, Springer Verlag, Berlin, 2001
64 (Koch 2002b) KOCH, M.: An Architecture for Community Support Platforms - Modularization and Integration. In: L UCZAK, H. (Hrsg.) ; C AKIR, A. E. (Hrsg.) ; C AKIR, G. (Hrsg.): Proc. 6th Intl. Conf. on Work
With Display Units - World Wide Work (WWDU2002), Mai 2002, S. 533–535
112
65 (Koch 2002c) KOCH, M.: Global Identity Management to Boost Personalization. In: S CHUBERT, P. (Hrsg.) ;
L EIMSTOLL, U. (Hrsg.): Proc. Research Symposium on Emerging Electronic Markets, Institute for Business
Economics (IAB), University of Applied Sciences Basel, Sep. 2002, S. 137–147
66 (Koch 2002d) KOCH, M.: Globale Benutzerprofile und kundenindividuelle Produkte. In: B RITZELMAIER,
B. (Hrsg.) ; G EBERL, S. (Hrsg.) ; W EINMANN, S. (Hrsg.): Proc. Liechtensteinisches WirtschaftsinformatikSymposium 2002: Der Mensch im Netz - Ubiquitous Computing, Teubner, Jun. 2002, S. 137–146
67 (Koch 2002e) KOCH, M.: Interoperable Community Platforms and Identity Management in the University
Domain. In: Intl. Journal on Media Management 4 (2002), Jul., Nr. 1, S. 21–30
68 (Koch 2002f) KOCH, M.: Requirements for Community Support Systems - Modularization, Integration
and Ubiquitous User Interfaces. In: Journal of Behaviour and Information Technology 21 (2002), Nr. 5,
S. 327–332
69 (Koch 2003a) KOCH, M.: Community Support in Universities - The Drehscheibe Project. In: Proc. Intl.
Conf. on Communities and Technologies, Sep. 2003, S. 445–464
70 (Koch 2003b) KOCH, M.: Designing Communication and Matchmaking Support for Physical Places of
Exchange. In: Proc. European Conf. on Computer-Supported Cooperative Work, Workshop Moving From
Analysis to Design: Social Networks in the CSCW Context, Sep. 2003
71 (Koch u. a. 2001a) KOCH, M. ; G ALLA, M. ; S CHÖNENBERGER, H.: Interoperable Community-Plattformen
und Identitätsmanagement im Universitätsumfeld. In: E NGELIEN, M. (Hrsg.) ; H OMANN, J. (Hrsg.): Proc.
Workshop Gemeinschaften in Neuen Medien (GeNeMe2001), Josef Eul Verlag, Lohmar, Sep. 2001, S. 215–
236
72 (Koch u. a. 2002a) KOCH, M. ; G ROH, G. ; H ILLEBRAND, C. ; F REMUTH, N.: Mobile Support for Lifestyle
Communities / Lehrstuhl für Allg. und Ind. Betriebswirtschaftslehre (AIB), TU München. Lehrstuhl für
Allg. und Ind. Betriebswirtschaftslehre (AIB), TU München, Nov. 2002. – Forschungsbericht. ISSN 09425098
73 (Koch u. a. 2001b) KOCH, M. ; L ACHER, M. ; W ÖRNDL, W.: The CommunityItemsTool - Interoperable
Community Support in Practice. In: Proc. WETICE-2001 - Workshop on Web-based Infrastructures and
Coordination Architectures for Collaborative Entreprises, Jun. 2001
74 (Koch u. a. 2001c) KOCH, M. ; L ACHER, M. ; W ÖRNDL, W.: Das CommunityItemsTool - Interoperable
Unterstützung von Interessens-Communities in der Praxis. In: W EINMANN, B. B. S. G. S. (Hrsg.): Proc. 3.
Liechtensteinisches Wirtschaftsinformatik-Symposium, Teubner, Stuttgart, Mai 2001, S. 147–157
75 (Koch und Lacher 2000) KOCH, M. ; L ACHER, M. S.: Integrating Community Services - A Common Infrastructure Proposal. In: Proc. Knowledge-Based Intelligent Engineering Systems and Allied Technologies,
Aug. 2000, S. 56–59
76 (Koch und Lacher 2001) KOCH, M. ; L ACHER, M. S.: The Comovie Movie Recommender - An Interoperable Community Support Application. In: Proc. Human-Computer Interaction International, Aug. 2001
77 (Koch und Möslein 2003) KOCH, M. ; M ÖSLEIN, K.: User Representation in E-Commerce and Collaboration Applications. In: Proc. 16th Bled eCommerce Conference, Jun. 2003, S. 649–661
78 (Koch u. a. 2002b) KOCH, M. ; M ÖSLEIN, K. ; S CHUBERT, P.: Communities and Personalization for
Individual Products. In: Proc. British Academy of Management Annual Conference (BAM2002), Sep. 2002
79 (Koch u. a. 2000)
KOCH, M. ; M ÖSLEIN, K. ; WAGNER, M.: Vertrauen und Reputation in OnlineAnwendungen und virtuellen Gemeinschaften. In: E NGELIEN, M. (Hrsg.) ; N EUMANN, D. (Hrsg.): Virtuelle
Organisation und Neue Medien - Workshop Gemeinschaften in Neuen Medien (GeNeMe2000), Eul Verlag,
Lohmar, Okt. 2000, S. 69–84
113
Literaturverzeichnis
80 (Koch u. a. 1999) KOCH, M. ; R ANCATI, A. ; G RASSO, A. ; S NOWDON, D.: Paper User-Interfaces for
Local Community Support. In: B ULLINGER, H. (Hrsg.) ; Z IEGLER, J. (Hrsg.): Proc. Human-Computer
Interaction International 99 Vol.2, Lawrence Erlbaum Publishers, London, Aug. 1999, S. 417–421
81 (Koch und Schlichter 2001) KOCH, M. ; S CHLICHTER, J.: Ubiquitous Computing. S. 507–517. In:
S CHWABE, G. (Hrsg.) ; S TREITZ, N. (Hrsg.) ; U NLAND, R. (Hrsg.): CSCW-Kompendium, Springer-Verlag,
Berlin, 2001
82 (Koch und Schubert 2002) KOCH, M. ; S CHUBERT, P.: Personalization and Community Communication
for Customer Support. In: L UCZAK, H. (Hrsg.) ; C AKIR, A. E. (Hrsg.) ; C AKIR, G. (Hrsg.): Proc. 6th Intl.
Conf. on Work With Display Units - World Wide Work (WWDU2002), Mai 2002, S. 530–532
83 (Koch u. a. 2001d) KOCH, M. ; S NOWDON, D. ; G RASSO, A.: Neue Benutzungsschnittstellen für die
Unterstützung von Arbeits- und Freizeit-Communities. In: Zeitschrift für Arbeitswissenschaft 55 (2001),
Jun., Nr. 2, S. 124–129
84 (Koch und Teege 1999) KOCH, M. ; T EEGE, G.: Support for Tailoring CSCW Systems: Adaptation by
Composition. In: Proc. 7th Euromicro Workshop on Parallel and Distributed Processing, IEEE Press, Feb.
1999, S. 146–152
85 (Koch und Wörndl 2001) KOCH, M. ; W ÖRNDL, W.: Community Support and Identity Management. In:
Proc. Europ. Conference on Computer-Supported Cooperative Work (ECSCW2001), Sep. 2001, S. 319–338
86 (Krasner und Pope 1988) K RASNER, G. E. ; P OPE, S. T.: A cookbook for using the model-view controller
user interface paradigm in Smalltalk-80. In: Journal of Object-Oriented Programming 1 (1988), Aug.,
Nr. 3, S. 26–49
87 (Krempl 1998) K REMPL, S.: Wir haben den Kommerz schon immer begrüßt. In: Telepolis - Magazin der
Netzkultur (1998)
88 (Lacher und Koch 2000) L ACHER, M. S. ; KOCH, M.: An Agent-based Knowledge Management Framework. In: Proc. AAAI Spring Symposium 2000, März 2000, S. 145–147
89 (Lacher u. a. 2001) L ACHER, M. S. ; KOCH, M. ; W ÖRNDL, W.: A Framework for Personalizable Community Web Portals. In: Proc. Human-Computer Interaction International, Aug 2001
90 (Lacher u. a. 2000) L ACHER, M. S. ; W ÖRNDL, W. ; KOCH, M. ; B REDE, H.: Ontology Mapping in
Community Support Systems / Dept. of Computer Science, Technische Universität München, Munich.
Dept. of Computer Science, Technische Universität München, Munich, Mai 2000. – Forschungsbericht
91 (Lechner u. a. 2001) L ECHNER, U. ; H UMMEL, J. ; K NYPHAUSEN, C. zu Inn-und: Peer-to-Peer Architekturen für Kollaboration in Communities. In: E NGELIEN, M. (Hrsg.) ; H OMANN, J. (Hrsg.): Proc. Workshop
Gemeinschaften in Neuen Medien (GeNeMe2001), Josef Eul Verlag, Lohmar, Sep. 2001, S. 237–254
92 (Lechner u. a. 1998) L ECHNER, U. ; S CHMID, B. ; S CHUBERT, P. ; Z IMMERMANN, H.: Die Bedeutung
von Virtual Business Communities für das Management von neuen Geschäftsmedien. In: E NGELIEN, M.
(Hrsg.) ; B ENDER, K. (Hrsg.): Proc. Gemeinschaften in Neuen Medien (GeNeMe98), Josef Eul Verlag,
Lohmar, 1998, S. 203–219
93 (Leckner u. a. 2003) L ECKNER, T. ; KOCH, M. ; L ACHER, M. ; S TEGMANN, R.: Personalization meets
Mass Customization - Support for the Configuration and Design of Individualized Products. In: Proc. Intl.
Conf. on Enterprise Information Systems (ICEIS2003), Apr. 2003
94 (Leimeister u. a. 2002)
L EIMEISTER, J. M. ; A RNOLD, Y. ; K RCMAR, H.: Developing CommunityPlatforms for Cancer Patients - The Cosmos-Project. In: Proc. (Virtual) Community Informatics Workshop
held in conjunction with the International Conf. on Information Systems (ICIS) 2002, Dez. 2002
114
95 (Leimeister u. a. 2003) L EIMEISTER, J. M. ; DAUM, M. ; K RCMAR, H.: Towards M-Communities: The
Case of Cosmos Healthcare. In: Proc. Hawaii International Conference on System Sciences (HICSS-36),
2003
96 (Lenat 1995) L ENAT, D.: Cyc: A Large-Scale Investment in Knowledge Infrastructure. In: Communications
of the ACM 38 (1995), Nov., Nr. 11
97 (Lenat und Guha 1990) L ENAT, D. B. ; G UHA, R. V.: Building large knowledge-based systems - Representation and inference in the Cyc project. Addison-Wesley, Reading, MA, 1990
98 (Licklider und Taylor 1968) L ICKLIDER, J. C. R. ; TAYLOR, R.: The Computer as a Communication Device.
In: Science and Technology (1968), Apr.
99 (Linden u. a. 2003) L INDEN, G. ; S MITH, B. ; YORK, J.: Amazon.com Recommendations - Item-to-Item
Collaborative Filtering. In: IEEE Internet Computing 7 (2003), Jan., Nr. 1, S. 76–80
100 (Mantel und Schlissler 2002) M ANTEL, S. ; S CHLISSLER, M.: Application Integration. In: Wirtschaftsinformatik 44 (2002), S. 171–174
101 (Marchiori und Saarela 1998) M ARCHIORI, M. ; S AARELA, J.: Query + Metadat + Logic = Metalog. Dez.
1998. – Proc. Conf. on Query Languages (QL’98)
102 (Meersman 1999) M EERSMAN, R. A.: The use of lexicons and other computer-linguistic tools in semantics,
design and cooperation of data. In: Z HANG, Y. (Hrsg.): Proc. CODAS Conference, Springer Verlag, Berlin,
1999
103 (Michalski 1997)
M ICHALSKI, J.: Buddy Lists. In: Release 1.0 (1997), Jul., Nr. 6
104 (de Michelis 2001) M ICHELIS, G. de ; C REMERS, A. B. (Hrsg.): Services and Communities in the Information Society. Okt. 2001. – Vortrag auf 4. Dienstleistungstagung des BMBF, 16.10.2002, Bonn
105 (Möslein u. a. 2000) M ÖSLEIN, K. ; KOCH, M. ; E ISENTRAUT, R.: Telekooperation in Beziehungsnetzwerken für informationsbezogene Dienstleistungen. In: R EICHWALD, R. (Hrsg.) ; S CHLICHTER, J. (Hrsg.):
Proc. Deutsche Computer-Supported Cooperative Work Konferenz (D-CSCW 2000), Teubner Verlag, Stuttgart, Sep. 2000 (Berichte des German Chapter of the ACM), S. 275–276
106 (Mulligan und Schwartz 2000) M ULLIGAN, D. ; S CHWARTZ, A.: Your place or mine? In: Computers,
freedom and privacy: challenging the assumptions, Apr. 2000, S. 81–84
107 (Mynatt u. a. 1997) M YNATT, E. D. ; A DLER, A. ; I TO, M. ; ODAY, V. L.: Design for Network Communities. In: Proc. ACM SIGCHI Conf. on Human Factors in Compting Systems, 1997
108 (Nichols 1997) N ICHOLS, D. M.: Implicit Rating and Filtering. In: Proc. Fifth DELOS Workshop on
Filtering and Collaborative Filtering, Nov. 1997
109 (Overhage 2002) OVERHAGE, S.: Die Spezifikation - kritischer Erfolgsfaktor der Komponentenorientierung. In: T UROWSKI, K. (Hrsg.): Proc. Workshop Komponentenorientierte betriebliche Anwendungssysteme, 2002, S. 1–17
110 (Parks und Floyd 1996) PARKS, M. R. ; F LOYD, K.: Making Friends in Cyberspace. In: Journal on
Computer-Mediated Communication (JCMC) 1 (1996), Nr. 4
111 (Piller u. a. 2003) P ILLER, F. ; KOCH, M. ; M ÖSLEIN, K. ; S CHUBERT, P.: Managing High Variety - How
to Overcome the Mass Confusion Phenomenon of Customer Co-Design. In: Proc. 3rd Annual Conf. of the
European Academy of Management (EURAM2003), Apr. 2003
115
Literaturverzeichnis
112 (Reichwald u. a. 2001) R EICHWALD, R. ; M ÖSLEIN, K. M. ; KOCH, M. ; P ILLER, F. T.: From Tele-Work
to Tele-Communities: The Past, Present and Future of Telecooperation. In: D ERBEL, F. (Hrsg.) ; D ERBEL,
N. (Hrsg.) ; K ANOUN, O. (Hrsg.) ; T OURKI, R. (Hrsg.) ; T RÄNKLER, H. (Hrsg.): Proc. Conf. on Smart
Systems and Devices, SOGIC, Sfax, März 2001, S. 27–33
113 (Resnick u. a. 1994) R ESNICK, P. ; I ACOVOU, N. ; S UCHAK, M. ; B ERGSTROM, P. ; R IEDL, J.: GroupLens
- An Open Architecture for Collaborative Filtering of Netnews. In: F URUTA, R. (Hrsg.) ; N EUWIRTH,
C. M. (Hrsg.): Proc. Intl. Conf. on Computer-Supported Cooperative Work, ACM Press, New York, NY,
Okt. 1994, S. 175–186
114 (Rheingold 1993)
R HEINGOLD, H.: The Virtual Community. Addison-Wesley, 1993
115 (Rucker und Polanco 1997) RUCKER, J. ; P OLANCO, M. J.: Siteseer: personalized navigation for the Web.
In: Communications of the ACM 40 (1997), März, Nr. 3, S. 73–76
116 (Sarwar u. a. 2000) S ARWAR, B. ; K ARYPIS, G. ; KONSTAN, J. ; R IEDL, J.: Analysis of Recommendation
Algorithms for E-Commerce. In: Proc. ACM Conference on Electronic Commerce, 2000, S. 158–167
117 (Sarwar u. a. 1998) S ARWAR, B. M. ; KONSTAN, J. A. ; B ORCHERS, A. ; H ERLOCKER, J. ; M ILLER, B. ;
R IEDL, J.: Using Filtering Agents to Improve Prediction Quality in the GroupLens Research Collaborative
Filteri. In: Proc. Conf. on Computer-Supported Cooperative Work, ACM Press, Nov. 1998, S. 345–354
118 (Schlichter u. a. 1998) S CHLICHTER, J. ; KOCH, M. ; X U, C.: Awareness - The Common Link Between
Groupware and Community Support Systems. In: I SHIDA, T. (Hrsg.): Community Computing and Support
Systems, Springer Verlag, Jun. 1998 (Lecture Notes in Computer Science 1519), S. 77–93
119 (Schmidt 2000) S CHMIDT, M. P.: Knowledge Communities - Mit virtuellen Wissensmärkten Wissen in
Unternehmen effektiv nutzen. München: Addison-Wesley, 2000
120 (Schubert 2000) S CHUBERT, P.: Virtuelle Transaktionsgemeinschaften im Electronic Commerce. Josef Eul
Verlag, Lohmar, 2000
121 (Schubert und Koch 2002) S CHUBERT, P. ; KOCH, M.: The Power of Personalization: Customer Collaboration and Virtual Communities. In: Proc. Americas Conf. on Information Systems (AMCIS2002), Aug.
2002
122 (Schubert und Koch 2003) S CHUBERT, P. ; KOCH, M.: Collaboration Platforms for Virtual Student Communities. In: Proc. Hawaii International Conference on System Science (HICSS-36), Jan. 2003
123 (Schuemmer u. a. 2002) S CHUEMMER, T. ; F ERNANDEZ, A. ; H OLMER, T.: The Caloge of GroupwarePatterns. Sep. 2002. – Online catalog at http://www.groupware-patterns.org/
124 (Schuler 1995) S CHULER, D.: Creating Public Space in Cyberspace - The Rise of the new Community
Networks. In: Internet World (1995), Dez.
125 (Schuler 1996)
1996
S CHULER, D.: New Community Networks - Wired for Change. Addison-Wesley, New York,
126 (Searle 1969) S EARLE, J.: Speech Acts: An Essay in the Philosophy of Language. Cambridge University
Press, New York, 1969
127 (Searle 1979) S EARLE, J.: Expression and Meaning: Studies in the Theory of Speech Acts. Cambridge
University Press, New York, 1979
128 (Sikkel 1997) S IKKEL, K.: A Group-based Authorization Model for Cooperative Systems. In: H UGHES,
J. A. (Hrsg.) ; P RINZ, W. (Hrsg.) ; RODDEN, T. (Hrsg.) ; S CHMIDT, K. (Hrsg.): Proc. Europ. Conf. on
Computer-Supported Cooperative Work, Kluwer Academic Publishers, Dordrecht, Sep. 1997, S. 345–360
116
129 (Sikkel und Stiemerling 1998) S IKKEL, K. ; S TIEMERLING, O.: User-Oriented Authorization in Collaborative Environments. In: Proc. Intl. Conf. on the Design of Cooperative Systems, Mai 1998
130 (Singh 1994) S INGH, M. P. ; C ARBONELL, J. G. (Hrsg.) ; S IEKMANN, J. (Hrsg.): Lecture Notes in Artificial
Intelligence. Bd. 799: Multiagent Systems. Springer Verlag, Berlin, 1994
131 (Singh 1998) S INGH, M. P.: Agent Communication Languages: Rethinking the Principles. In: IEEE
Computer 31 (1998), Dez., Nr. 12, S. 40–47
132 (Sparling 2000) S PARLING, M.: Lessons Learned Through Six Years of Component-Based Development.
In: Communications of the ACM 43 (2000), Okt., Nr. 10, S. 47–53
133 (Staab 2002) S TAAB, S.: Wissensmanagement mit Ontologien und Metadaten. In: Informatik Spektrum 20
(2002), Jun., Nr. 3, S. 294–209
134 (Staab u. a. 2000) S TAAB, S. ; A NGELE, J. ; D ECKER, S. ; E RDMANN, M. ; H OTHO, A. ; M ÄDCHE, A. ;
S CHNURR, H. ; S TUDER, R. ; S URE, Y.: Semantic Community Web Portals. In: Computer Networks (2000),
Mai. – Special Issue: WWW9 - Proc. of the 9th Intl. WWW Conference, Amsterdam, The Netherlands
135 (Stegmann u. a. 2003) S TEGMANN, R. ; KOCH, M. ; L ACHER, M. ; L ECKNER, T. ; R ENNEBERG, V.:
Generating Personalized Recommendations in a Model-Based Product Configurator System. In: Proc. Intl.
Joint Conf. On Artificial Intelligence (IJCAI) - Workshop on Configuration, Aug. 2003
136 (Steiner u. a. 1988) S TEINER, J. G. ; N EUMAN, B. C. ; S CHILLER, J.: Kerberos: An Authentication Service
for Open Network Systems. In: Proc. of the Winter 1988 Usenix Conf., Feb. 1988
137 (Stiemerling 2000)
tation, 2000
S TIEMERLING, O.: Component-Based Tailorability, Universitaet Bonn, Bonn, Disser-
138 (Stoll 1995) S TOLL, C.: Silicon Snake Oil - Second Thoughts on the Information Highway. Doubleday,
New York, 1995
139 (Szyperski 1998)
S ZYPERSKI, C.: Component Software. Addison Wesley Longman Ltd., 1998
140 (Teege 1998) T EEGE, G.: Individuelle Groupware - Gestaltung durch Endbenutzer. Deutscher Universitäts
Verlag, Wiesbaden, 1998. – zugl.: Habilitationsschrift, Technische Universität München
141 (Tönnies 1991) T ÖNNIES, F.: Gemeinschaft und Gesellschaft, Grundbegriffe der reinen Soziologie. Wissenschaftliche Buchgesellschaft, Darmstadt, 1991. – Orginalwerk entstand 1887
142 (Turkle 1995)
York, 1995
T URKLE, S.: Life on the Screen: Identity in the Age of the Internet. Simon and Schuster, New
143 (Twidale und Nichols 1996) T WIDALE, M. B. ; N ICHOLS, D. M.: Interfaces to support collaboration in
information retrieval. In: J OHNSON, C. (Hrsg.) ; D UNLOP, M. (Hrsg.): Proc. BCS IR and HCI Workshop,
1996, S. 25–28
144 (Twidale u. a. 1997) T WIDALE, M. B. ; N ICHOLS, D. M. ; PAICE, C. D.: Browsing is a Collaborative
Process. In: Information Processing and Management 33 (1997), Nr. 6, S. 761–783
145 (van Vliet und Burgers 1987) V LIET, W. van ; B URGERS, J.: Communities in transition: From the industrial to the postindustrial era. In: A LTMAN, I. (Hrsg.) ; WANDERSMAN, A. (Hrsg.): Neighborhood and
Community Environments, Plenum Press, New York, 1987
146 (Weiß 2001) W EISS, G.: Agentenorientiertes Software Engineering. In: Informatik Spektrum 24 (2001),
Nr. 2, S. 98–101
117
Literaturverzeichnis
147 (Wellman und Gulia 1999) W ELLMAN, B. ; G ULIA, M.: Net Surfers dont ride alone: Virtual Communities
as Communities. In: KOLLOCK, P. (Hrsg.) ; S MITH, M. (Hrsg.): Communities and Cyberspace, Routledge,
1999
148 (Wenger 1998) W ENGER, E.: Communities of Practice: Learning, Meaning and Identity. Cambridge
University Press, 1998
149 (Wood und Smith 2001) W OOD, A. F. ; S MITH, M. J.: Online Communication - Linking Technology, Identity
and Culture. Lawrence Erlbaum, Mahwah, London, 2001
150 (Wörndl 2001) W ÖRNDL, W.: Privatheit und Zugriffskontrolle bei Agenten-basierter Verwaltung von Benutzerprofilen / Institut für Informatik, Technische Universität München. Institut für Informatik, Technische
Universität München, Nov. 2001. – Forschungsbericht
151 (Wörndl 2002) W ÖRNDL, W.: Using P3P to Negotiate Access Rights To User Profiles. In: Proc. Workshop
on the Future of P3P, Nov. 2002
152 (Wörndl und Koch 2002) W ÖRNDL, W. ; KOCH, M.: Privatheit bei Verwaltung von Benutzerprofilen. In:
Proc. Mensch und Computer 2002, Teubner, Sep. 2002, S. 395–396
153 (Wörndl u. a. 2003) W ÖRNDL, W. ; Z EHENTNER, J. ; KOCH, M.: Vergleich des Umgangs mit Privatheit
bei Passport und Liberty Alliance. In: Proc. GI Jahrestagung Informatik 2003 - Teiltagung Sicherheit, Sep.
2003
154 (Zimmer 2000) Z IMMER, D. E.: Die Bibliothek der Zukunft - Text und Schrift in den Zeiten des Internet.
Hoffmann und Campe, 2000
118
Index
Abfragesprachen, 59, 66
Abonnement, 59, 62, 98, 106
ABox, 43
Adaptierung, 6
Agenten, 6, 35, 38
Benutzeragent, siehe Benutzeragent
Definition, 38
Merkmale, 38
Agentenkommunikation, 39
FIPA-ACL, 41
Alumni, 76, 99
amazon.com, 26, 73
Angewandte Informatik, 5
Anmerkung, 32
Anonymität, 17, 22
Anpassbarkeit, 6, 8, 68
Anwendungsintegration, 6
Arbeitsgruppen, 5
Architektur
Definition, 5
Arpanet, 24
ArsDigita Community System, 28
Aussagenlogik, 42
Authentifizierung, 58, 92
Autorisierung, 92
Awareness, 17, 23, 25, 29–32, 51, 57, 61, 62,
70, 74, 92
Definition, 62
Bekanntheit, 15
Benutzeragent, 39, 106
Benutzerbeiträge, 45
Benutzerdaten, siehe Benutzerprofil
Benutzerlisten, 59
Benutzerprofil, 10, 23, 25, 51, 57, 69, 96
Austausch, 76
Awareness, 74
Bewertungen, siehe Bewertungen
Beziehungen, 87
Datengewinnung, 70
Definition, 70
Interessen, 87
Mehrfachnutzung, 74
Metamodell, 83
Modell, 84
Modellierung, 77
Speicherung, 73
Standards, 78
Vertrauen, 73
Benutzerprofilverwaltung, 57, 69, 96
Benutzungsschnittstelle, 30, 64
Beschreibungslogik, 42, 44
Bewertungen, 62, 71, 72, 88
BizTalk, 45
Bookmarks, 71, 99
BSCW, 89
Buddylist, 24, 25, 52, 87, 89
Bulletin-Board, 24, siehe Schwarzes Brett, 25
Caiman, 8, 59, 107
Campiello, 108
Capabilities, 57
Cassiopeia Community Application Server, 28
Chat, 24
Clickstream, 71
Client/Server, 3, 37
Cobricks, 8, 54, 70, 95
Community
Bildung, 29
Definition, 13
Grenzen, 16
Plattform
Definition, 3
Rollen, 17
System
Definition, 3
Untergruppen, 52
Community of Interest, 20
Community of Practice, 16, 20, 27
Community of Purpose, 20
119
Index
Community-Netzwerk, 24
De Digitale Stad Amsterdam, 24
Milano Civic Network, 24
Seattle Community Network, 24
Community-Unterstützung, 23
Anforderungen, 29
Buddylist, 25
Chat, 25
Framework, 28
Geschichte, 23
Matchmaking, 25
News, 25
Online-Shops, 26
Portale, 26
Recommender, 25
Software, 23
CommunityItemsTool, 11, 59, 99
Communityware, 27
Connectoren, 18
Context, siehe Kontext
Corba, 37, 96
IDL, 37
Cosmos, iv, 11, 47, 48, 90, 101, 108
CPEX, 78
CRM, 78
CSCW, siehe Rechnergestützte Gruppenarbeit
CycL, 44
DAML+OIL, 66
Datenbankmodell, 44
Entity-Relationship-Diagramm, siehe EntityRelationship-Diagramm
Datenmodellierung, 40
Datenschutz, 71, 93
Datenschutzerklärung, siehe Privacy Policy
DCOM, 37
Deduktion, 44, 66, 106
Design Pattern, siehe Entwurfsmuster
DigitalMe, 75
DNS, 77
Domäne, 50
Repräsentation, 40
Drehscheibe, siehe Informationsdrehscheibe
E-Commerce, siehe Electronic Commerce
E-Mail, 2
ebXML, 6, 45
120
EJB, 37
Electronic Commerce, 22, 26, 76, 78
Emoticons, 22
Entity-Relationship-Diagramm, 44
Entrepreneurship, 100
Entwurfsmuster, 6, 35
Beispiel, 36
für Groupware, 36
Model/View/Controler, 64
Erreichbarkeitsmanagement, 31, 90
Eureka, 27
F-Logik, siehe Frame-Logik
Featurekombination, 68
FidoNet, 24
Filtern, 46, 62
inhaltsbasiert, 72
kollaborativ, 63, 71, 72, 88
automatisch, 72
interaktiv, 72
Filterverfahren, 25
Fragebogen, 70
Frame-Logik, 44, 66
Frames, 41, 44
FTP, 24
Gemeinschaft, 2
als soziales Netzwerk, 15
Identität, 16
in der Soziologie, 14
Kategorisierungen, 19
technische Sicht, 19
und Gesellschaft, 14
Gemeinschaftliches Handeln, 16
Gesellschaft, 14
Gewahrsein, siehe Awareness
Google Groups, 25
GroupLens, 71
Groupware, 27, 28, 36
Gruppenbewußtsein, siehe Awareness
Herumlungern, siehe Lurking
Human-Computer-Interaction, 36
ICQ, 25
IDCockpit, 97
IDControl, 97
Identität, 15, 16, 22, 74
Index
Identitätsmanagement, 69, 74, 75
IDRepository, 56, 70, 76, 92, 96
Infomediaries, 74
Information
semi-strukturiert, 46
warm, 5, 49
Informationsdrehscheibe, 11, 97
Instant Messenger, 25
Interaktion, 15
Interaktionsdesign, 36
Internet Movie Database, 88
Interoperabilität, 4, 30, 102
Intranet, 75
IRC, 25
Item, 46
Anhänge, 48
Kommentare, 49
Java Server Pages, 65
Jotter, 74
Logik
Aussagenlogik, siehe Aussagenlogik
Beschreibungslogik, siehe Beschreibungslogik
Kalkül, 42
Prädikatenlogik, siehe Prädikatenlogik
Lurker, siehe Lurking
Lurking, 14
Mailinglisten, 24
Matchmaking, 3, 25, 62
Mavens, 17
Meta-Informationen, 46
Metalog, 66
Microsoft Passport, 75, 78
Microsoft Wallet, 78
Mitteilungen, 45, 50, 60
Model/View/Controler, 64
Modularisierung, 5, 34
MOO, 24
MovieCritic, 26
MovieLens, 26
MUD, 24
Mundpropaganda, 72
Kameradschaft, 14
Kategorien, 43, 50, 59
Kategorisierung, 50
Kerberos, 75, 92
KIF, 44
Klassifizierungen, 43
Kommentar, 45, 88
Kommunikationskanal, 2, 31, 60
E-Mail, 61
Instant Messaging, 61
lokale Mailbox, 61
Präferenz, 60
SMS, 61
Komponenten, 5, 34, 37
Definition, 34
Konfiguration, 64
Benutzungsschnittstelle, 64
Kontext, 53, 60
Koordination, 27
Korrelation, 72
Kultur, 14
Künstliche Intelligenz, 6, 78, 106
OASIS, 6
Objekte
verteilt, 35
Online-Community, siehe Virtuelle Community, 45
Online-Shop, 4, 26, 71, 73
Ontobroker, 44
Ontolingua, 44
Ontologie, 41, 43, 53, 64
Beschreibung, 44
OPS - Open Profiling Standard, 80
OQL, 66
Ortsinformation, 47, 48, 101
LDAP, 75
Liberty Alliance, 75, 77, 105
Literaturreferenzen, 99
Live-Id.org, 75
P3P, 74, 81, 91
Pace, 8
Partizipativer Produktkatalog, 26
Passport, siehe Microsoft Passport
Nachrichten, siehe Mitteilungen
Newsgroups, 24
Newsletter, 98
Notifikation, 29, 61, 76
121
Index
Pattern, siehe Entwurfsmuster
Persona, 74
Personalisierung, 7, 10, 26, 57, 62, 63, 70, 72,
102
Kaltstart-Problem, 73
phpGroupware, 28
PIM, 76
Portale, 26, 27
Privacy Policy, 71, 73, 91, 92
Privatheit, 60, 69, 88
Privatsphäre, 30
Produktkonfiguration, 102
Prolog, 41
Prädikatenlogik, 41, 42, 44
Pseudonyme, 17, 69, 77
Pull-Informationslieferung, 59, 62
Push-Informationslieferung, 59, 62
Query-Sprache, siehe Abfragesprachen
Rating, siehe Bewertungen
Rechnergestützte Gruppenarbeit, 5, 62
Rechteverwaltung, 57
Recommender-Systeme, 25
Referral Web, 26
Regeln, 41, 42, 44, 45, 87–89
Reichweite, 23, 107
Reputation, 17
RFC
1766 Tags for the Identification of Languages, 47
2045 MIME Part One: Format of Internet
Message Bodies, 80
2046 MIME Part Two: Media Types, 48
2048 MIME Part Four: Registration Procedures, 48
2396 Uniform Resource Identifiers (URI),
48, 88
2425 A MIME Content-Type for Directory Information, 79
2426 vCard MIME Directory Profile, 79
RMI, 96
RosettaNet, 6
RPC, 37, 40, 95
Salesmen, 17
Schnittstellen, 5, 34
Schwarzes Brett, 3, 24, 25
122
ScreenName, 75
Semantic Web, 45, 106
Semantische Netze, 41, 43
SFB582, 11, 102
SharedBuddyList, 52, 88, 89
ShareNet, 27
Single-Sign-O n, 29
Siteseer, 71
Slots, 41
Smalltalk, 64
SOAP, 37, 106
Software-Engineering, 5, 34
Software-Frameworks, 6
Sprechakte, 39
Sprechakttheorie, 39
SQL, 66
Studiosity, 101, 108
Stylesheets, 64
Subscription, siehe Abonnement
SyncML, 76
Taxonomie, 43, 59, 87
TBox, 43
Teledienstdatenschutzgesetz, 71, 93
Templates, 65
Terminkalender, 71
Thesauri, 43
TiBiD, iv, 11, 100
Topic Maps, 43
Transaktionshistorie, 71
Transparenz, 92, 97
TRUSTe, 91
TUM
Alumni & Career Center, 99
UnternehmerTUM, 100
TUMmelplatz, 11, 99, 100
UDDI, 106
UML
Klassendiagramm, 44
Unter-Community, 101
UnternehmerTUM, 11, 99
Usenet News, 71
vCard, 79, 80
Velocity, 65
Versit Konsortium, 79
Verteilte Anwendungen, 3, 6, 35, 37
Index
Verteilte Systeme, 92
Vertrauen, 17, 69, 73
Virtuelle Community, 2, 15, 21
Virtuelle Gemeinschaft, siehe Virtuelle Community
Visitenkarten, 76
W3C, 37
Wandbildschirme, 30, 108
Web-Services, 6, 37, 96, 106
Well, 2
Wertesystem, 15
Wirtschaftsinformatik, 6
Wissensmanagement, 5, 11, 20, 27, 45, 99
Wissensrepräsentation, 41
Beschreibungslogik, siehe Beschreibungslogik
deklarativ, 41
Frames, siehe Frames
für Community-Unterstützung, 44
Ontologien, siehe Ontologien
prozedural, 41
Prädikatenlogik, siehe Prädikatenlogik
Word of mouth, 72
X.500, 75, 77
Xerox Research Centre Europe, iii
XML-QL, 66
XNS, 75
XOL, 66
XPath, 66
XQL, 66
XSLT, 64
Yenta, 26
Zertifizierung, 75, 91
Zope, 28
Zugriffskontrolle, 88
extern, 91
intern, 89
rollenbasiert, 57
Zugriffsrechte, 69, 89–91, 97
lokal, 57
Zugriffstickets, 92, 97
123