Formale 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