Table Of ContentFormale Begriffsanalyse mit C++
Springer-Verlag Berlin Heidelberg GmbH
FrankVogt
Formale
Begriffsanalyse
mit
C++
Datenstrukturen und Algorithmen
Mit Diskette
Mit 24 Abbildungen
und 6 Tabellen
Springer
Dr. Frank Vogt
Technische Hochschule Darrnstadt
Schloßgartenstraße 7
D-64289 Darrnstadt
Die Deutsche Bibliothek-CIP-Einheitsaufnahme
Fonnale Begriffsanalyse mit C++: Datenstrukturen und AIgorithmenlFrank Vogt.
Berlin; Heidelberg; New York; Barcelona; Budapest; Hongkong; London; Mailan,
Paris; Santa Clara; Singapur; Tokio: Springer.
ISBN 978-3-540-61071-7 ISBN 978-3-642-86738-5 (eBook)
DOI 10.1007/978-3-642-86738-5
NE: Vogt, Frank
Dieses Werk ist urheberrechtlich geschützt. Die dadurch begründeten Rechte, i
sondere die der Übersetzung, des Nachdrucks, des Vortrags, der Entnahm
Abbildungen und Tabellen, der Funksendung, der MikroverfIlmung oder der Verv
tigung auf anderen Wegen und der Speicherung in Datenverarbeitungsan
bleiben, auch bei nur auszugsweiser Verwertung, vorbehalten. Eine Vervielfält
dieses Werkes oder von Teilen dieses Werkes ist auch im Einzelfall nur in den Gr
der gesetzlichen Bestimmungen des Urheberrechtsgesetzes der Bundesrel
Deutschland vom 9. September 1965 in der jeweils geltenden Fassung zulässig.
grundsätzlich vergütungspflichtig. Zuwiderhandlungen unterliegen den StrafbE
mungen des Urheberrechtsgesetzes.
© Springer-Verlag Berlin Heidelberg 1996
Vorwort
Die Entwicklung der Formalen Begriffsanalyse und ihre zunehmende An
wendung in der Begrifflichen Datenanalyse und Wissensverarbeitung wurde
stets begleitet von der Notwendigkeit, fUr immer wiederkehrende Aufgaben
iiber eine sinnvolle Unterstiitzung durch geeignete Computerprogramme zu
verfUgen. Die Schaffung solcher Programme im Rahmen der Darmstadter
Forschungsgruppe Begriffsanalyse wurde sowohl dadurch motiviert, sich die
eigene Arbeit zu erleichtern, als auch durch den Wunsch, die Methoden der
Formalen Begriffsanalyse einem breiteren Anwenderkreis verfUgbar zu ma
chen. Zum aktuellen Stand dieser Entwicklung gehoren sogenannte Begriffli
che Datensysteme, welche durch die Programme TOSCANA und ANACONDA
implementiert werden.
Trotz der breiten Einsetzbarkeit dieser Programme entstehen immer wie
der Anwendungssituationen, in denen weitere Funktionalitaten gewiinscht
werden. Eine Realisierung solcher Erweiterungen durch die Forschungsgrup
pe Begriffsanalyse ist aus verschiedenen Griinden haufig nicht moglich. An
dererseits waren Anwender, die die Kapazitaten fUr eigene Programment
wicklungen prinzipiell hatten, immer wieder damit konfrontiert, daB fiir ein
solches Projekt auch die begriffsanalytischen Datenstrukturen und Algorith
men jeweils neu implementiert werden muBten, was zu unverhaltnismaBigem
Aufwand gefUhrt hiitte. So entstand die Idee, die den Programmen TOSCA
NA und ANACONDA zugrundeliegende C++-Klassenbibliothek The Formal
Concept Analysis Library mit einem Buch der Offentlichkeit zuganglich zu
machen und damit die begriffsanalytische Basis fiir Anwendungsprogramme
zur VerfUgung zu stellen.
Zum Gelingen dieses Buchs haben viele beigetragen. Allen voran gilt mein
Dank Prof. Dr. Rudolf Wille, durch den ich den Kontakt zur Formalen Be
griffsanalyse bekam und der die Anregung gegeben hat, The Formal Concept
Analysis Library in Buchform zu veroffentlichen. Weiterhin bedanke ich mich
bei Dr. Martin Skorsky, der das Manuskript komplett durchgesehen und dazu,
sowie zur Programmierung selbst, wertvolle Hiweise gegeben hat. Schlie:Blich
danke ich Dr. Katja Lengnink fUr die nochmalige Durchsicht der SchluBfas
sung des Manuskripts.
Darmstadt, im Februar 1996 Frank Vogt
Inhaltsverzeichnis
Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Teil 1. Strukturen und Algorithmen
1. Ein einfiihrendes Beispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2. Formale Kontexte und Begriffe . . . . . . . . . . . . . . . . . . . . . . . . . .. 21
2.1 Relationen und form ale Kontexte. . . . . . . . . . . . . . . . . . . . . . . .. 21
2.2 UmHinge, Inhalte und Begriffe ........................... 29
2.3 Pfeilrelationen und reduzierte Kontexte ................... 38
3. Begriffsverbiinde und Liniendiagramme . . . . . . . . . . . . . . . . . .. 45
3.1 Begriffsverbande formaler Kontexte . . . . . . . . . . . . . . . . . . . . . .. 45
3.2 Liniendiagramme .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 50
3.3 Erzeugung von Liniendiagrammen aus formalen Kontexten .. 57
4. Mehrwertige Kontexte und Datenbanken . . . . . . . . . . . . . . . .. 73
4.1 Mehrwertige Kontexte .................................. 73
4.2 Relationale Datenbanken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 74
5. Begriffiiche Skalen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 77
5.1 Abstrakte Skalen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 78
5.2 Konkrete Skalen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 80
5.3 Realisierte Skalen ...................................... 83
6. Begriffiiche Dateien. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 87
6.1 Begriffliche Schemata. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 87
6.2 Begriffliche Dateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 89
7. CONSCRIPT-Dateien....................................... 93
7.1 Die Reprasentation physikalischer Dateien . . . . . . . . . . . . . . . .. 93
7.2 Include-Dateien ........................................ 103
8. Texte. Formate und Komlllentare ......................... 107
VIII Inhaltsverzeichnis
Teil II. Technische Dokumentation
9. Allgemeines .............................................. 113
10. Klassen fur begriffsanalytische Strukturen ................ 117
10.1 TBaseObject .......................................... 117
10.2 TFCAObj ect ........................................... 119
10.3 TFCAFile ............................................. 123
10.4 TIncludeFile ......................................... 144
10.5 TFormalContext ....................................... 146
10.6 TLineDiagram ......................................... 162
10.7 TMap .................................................. 176
10.8 TStringMap ........................................... 179
10.9 TQueryMap ............................................ 182
10.10 TIdentifierMap ....................................... 183
10.11 TAbstractScale ....................................... 185
10.12 TConcreteScale ....................................... 190
10.13 TRealizedScale ....................................... 196
10.14 TDatabase ............................................ 199
10.15 TConceptualScheme .................................... 202
10.16 TConceptualFile ...................................... 207
10.17 TRemark ............................................... 212
11. Klassen fur Struktur-Bestandteile ........................ 215
11.1 TRelation ............................................ 215
11.2 TOACPL ................................................ 224
11.3 TOAC .................................................. 226
11.4 TObject ............................................... 227
11.5 TAttribute ........................................... 228
11.6 TConcept ............................................. 230
11.7 TDPoint ............................................... 231
11.8 TDLine ................................................ 232
12. Klassen fur Arrays und Mengen .......................... 235
12.1 TBitArray ............................................ 235
12.2 TBitArrayArray ....................................... 242
12.3 TBitArrayArrayIterator ............................... 246
12.4 TstringArray ......................................... 246
12.5 TstringArrayIterator ................................. 247
12.6 TintArray ............................................ 247
12.7 TintArrayIterator .................................... 247
12.8 TIXArrayAsVector<T> .................................. 248
12.9 TIXArrayAsVectorIterator<T> .......................... 248
12.10 TIFCAArray ................ , .......................... 249
Inhaltsverzeichnis IX
12.11 TIFCAArraylterator ................................... 253
12.12 TIstringArray ........................................ 254
12.13 TIstringArraylterator ................................ 254
12.14 TILineDiagramArray ................................... 254
12.15 TILineDiagramArraylterator ........................... 258
12.16 TIConcreteScaleArray ................... .............. 258
12.17 TIConcreteScaleArraylterator ........................ 259
12.18 TIRealizedScaleArray ................................. 259
12.19 TIRealizedScaleArraylterator ........................ 259
12.20 TQSVectorlmp<T> ...................................... 260
12.21 TQSVectorlteratorlmp<T> .............................. 260
12.22 TQSObjectArray ....................................... 261
12.23 TQSObjectArraylterator ............................... 261
12.24 TQSAttributeArray .................................... 262
12.25 TQSAttributeArraylterator ............................ 262
12.26 TQSConceptArray ...................................... 262
12.27 TQSConceptArraylterator .............................. 262
12.28 TQSDPointArray ....................................... 263
12.29 TQSDPointArraylterator ............................... 263
12.30 TQSDLineArray ........................................ 263
12.31 TQSDLineArraylterator ........ ........................ 264
12.32 TstringSet ........................................... 264
12.33 TstringSetlterator .................... ............... 266
12.34 TclassTypeSet ........................................ 267
12.35 TclassTypeSetlterator ................................ 267
13. Klassen fiirFormate ...................................... 269
13.1 TFormat ............................................... 269
13.2 TStringFormat ........................................ 271
13.3 TPointFormat ......................................... 273
13.4 TLineFormat .......................................... 275
14. Klassen der Windows-Implemetation ..................... 277
14.1 TWFCAFile ............................................ 277
14.2 TMessageDialog ....................................... 280
15. Funktionen ............................................... 283
15.1 Allgemeine Hilfsfunktionen .............................. 283
15.2 Funktionen der Windows-DLL ........................... 284
16. Typen und Konstanten ................................... 287
16.1 Typen, die keine Klassen sind ............................ 287
16.2 Allgemeine Konstanten und Variablen ..................... 289
16.3 Konstanten der Windows-DLL ........................... 292
X Inhaltsverzeichnis
Anhang
A. Die Sprache CONSCRIPT ................................... 297
A.1 Meta-Syntax ........................................... 297
A.2 Basiskonstrukte ........................................ 297
A.3 Titel, Kommentare und Specials .......................... 29S
A.4 Formale Kontexte ...................................... 299
A.5 Liniendiagramme ....................................... 300
A.6 Abbildungen ........................................... 301
A.7 Abstrakte Skalen ....................................... 302
A.S Konkrete Skalen ........................................ 303
A.9 Realisierte Skalen ...................................... 304
A.10 Datenbank-Informationen ............................... 304
A.11 Begriffliche Schemata ................................... 305
A.12 Begriffliche Dateien ........... " ........................ 305
A.13 Include-Dateien ........................................ 306
A.14 CONSCRIPT-Dateien .................................... 307
A.15 Formatangaben ........................................ 307
B. Technische Hinweise ...................................... 309
B.1 Installation des Quell-Codes ............................. 309
B.2 Erzeugung der Bibliotheken .............................. 311
B.3 Benutzung in Programmen .............................. 315
c. Lizenzvereinbarung ....................................... 317
Literaturverzeichnis .......................................... 319
Index ......................................................... 321