Beschreibung description
COMPUTERIMPLEMENTIERTES VERFAHREN ZUM AUTOMATISCHEN WISSENSBASIERTEN ERZEUGEN VON ANWENDERRELEVANTENCOMPUTER IMPLEMENTED METHOD FOR THE AUTOMATIC KNOWLEDGE-BASED PRODUCTION OF USER RELEVANT
DATENDATES
Automatische elektronische Datenverarbeitung gibt es seit dem es Computer gibt. Je komplexer die Aufgaben dabei wurden, also umso an- spruchsvoller die Computerprogramme wurden, desto größer wurde auch die Anforderung an den Programmierer, ein fehlerfreies und funktionierendes Programm zu erstellen. Um dem Programmierer überhaupt in die Lage zu versetzen, Programme mit immer steigender Komplexität zu erstellen, war die Entwicklung von immer mächtigeren Computersprachen notwendig. Eine Zeile Code in Java, einer modernen Programmiersprache, z.B. hat eine wesentlich größere Mächtigkeit als eine Zeile in Maschinensprache.Automatic electronic data processing has been around since there are computers. The more complex the tasks became, the more demanding the computer programs became, the greater the requirement for the programmer to create a faultless and functioning program. In order to enable the programmer to create programs of ever-increasing complexity, the development of increasingly powerful computer languages was necessary. One line of code in Java, a modern programming language, e.g. has a much greater power than a line in machine language.
Trotz der rasanten Entwicklung von Programmiersprachen gibt es dennoch heute eine Situation, dass selbst einfache intelligente Aufgaben von Computern nicht erfüllt werden können, wenn deren Komplexität ein gewisses Mass übersteigt. Dabei ist dieses kritische Mass eher bescheiden zu nennen, wenn man es mit der Komplexität vergleicht, mit der ein Mensch umzugehen vermag. Wenn es um einfache Zusammenhänge jedoch um große Datenmengen geht, ist der Computer dem Mensch zwar überlegen, wenn es jedoch um komplexe Zusammenhänge geht, versagt der Computer in der Regel auf sehr niedrigem Niveau.Despite the rapid development of programming languages, there is still a situation today that even simple intelligent tasks of computers can not be met if their complexity exceeds a certain extent. Yet, this critical measure is rather modest when compared to the complexity with which a human being can deal. When it comes to simple relationships but large amounts of data, the computer is superior to humans, but when it comes to complex relationships, the computer usually fails at a very low level.
Der Umstand komplexer Zusammenhänge ist vor allem dann gegeben, wenn Informationen vorwiegend implizit formuliert sind, wenn also nur unter Zuhilfenahme eines komplexen Wissens Informationen richtig bewerten werden können.
Beispiele für solche impliziten Informationen sind komplexe Tabellen, Texte, Graphiken, Bilder, Filme oder auch andere Datenarten. In all diesen Fällen braucht es Wissen oder sogar Fachwissen, um die Inhalte richtig deuten zu können. Sowohl die Bilder auf unserer Netzhaut als auch die di- gitalen Bilder einer Kamera liegen in Form von Pixelfeldern vor. Die sinnvollen Objekte in den Bildern, das, was die Bilder erst interessant macht, liegt nicht a priori in den Bildern vor, sondern entsteht erst in unserem Gehirn durch Deutung. Man nennt diesen Prozess der Deutung auch Wahrnehmung.The circumstance of complex relationships is given above all when information is formulated predominantly implicitly, ie when information can be correctly evaluated only with the aid of complex knowledge. Examples of such implicit information are complex tables, text, graphics, images, movies or other types of data. In all these cases, knowledge or even expertise is needed to interpret the content correctly. Both the images on our retina and the digital images of a camera are in the form of pixel fields. The meaningful objects in the pictures, that which makes the pictures interesting at first, are not a priori in the pictures, but arise only in our brain through interpretation. This process of interpretation is also called perception.
Es ist demgemäß die Aufgabe der vorliegenden Erfindung, ein computerimplementiertes Verfahren zum automatischen wissensbasierten Erzeugen von anwenderrelevanten Daten zu schaffen, mit dem auf wirkungsvolle Weise durch Deutung implizite Informationen aus heterogenen Daten ge- wonnen werden können.It is accordingly the object of the present invention to provide a computer-implemented method for the automatic knowledge-based generation of user-relevant data with which information can be obtained from heterogeneous data in an efficient manner by interpretation.
Diese Aufgabe wird mit den in den Ansprüchen 1 und 15 angegebenen Maßnahmen gelöst.This object is achieved with the measures specified in claims 1 and 15.
Weitere vorteilhafte Ausgestaltungen der vorliegenden Erfindung sindFurther advantageous embodiments of the present invention are
Gegenstand der abhängigen Ansprüche.Subject of the dependent claims.
Mit der vorliegenden Erf indung werden die folgenden Probleme gelöst.With the present invention, the following problems are solved.
A. Erweiterung in Richtung Auto-Programmierung (Auto-Lernen) und Training.A. Expansion towards auto-programming and training.
B. Automatischen Segmentieren, Analysieren und Deuten von komplexen drei- und mehrdimensionalen Bildern und das Ermöglichung einer sinnvollen Visualisierung von Inhalten in dreidimensionalen Bildern und
Filmen.B. Automating segmentation, analyzing and interpreting complex three- and multi-dimensional images and enabling meaningful visualization of content in three-dimensional images and Film.
C. Ermöglichung der automatischen Deutung von komplexen Tabelleninhalten mit automatischer Segmentierung und Gruppierung der Inhalte (Generierung von nicht-vordefinierten Objekt-Netzen) und somit der Erkennung von wichtigen Zusammenhängen.C. Enable the automatic interpretation of complex table contents with automatic segmentation and content grouping (generation of non-predefined object networks) and thus the recognition of important relationships.
D. Automatische Deutung, Analyse und Indizierung von komplexen Textdokumenten..D. Automatic interpretation, analysis and indexing of complex text documents.
E. Ermöglichung der Erstellung höchst komplexer "Business- Intel I igence"-Software .E. Enabling the creation of highly complex "business intelligence" software.
F. Automatische sinngetriebene intelligente Datenintegration und -analyse multi-modaler heterogener Daten (holistischen Deutungung vonF. Automatic meaningful intelligent data integration and analysis of multi-modal heterogeneous data (holistic interpretation of
Daten).Dates).
Die vorliegende Erfindung wird nunmehr anhand eines Ausführungsbeispiels unter Bezugnahme auf die beiliegende Zeichung näher erläutert.The present invention will now be explained in more detail with reference to an embodiment with reference to the accompanying drawings.
Es zeigt:It shows:
Fig. 1 eine grafische Darstellung von Objektklassen;Fig. 1 is a graphic representation of object classes;
Fig. 2 ein Strukturdiagramm der Objektklassen in Fig. 1 ;Fig. 2 is a structural diagram of the object classes in Fig. 1;
Fig. 3 eine grafische Darstellung der Objektklassen;3 is a graphic representation of the object classes;
Fig. 4 ein Strukturdiagramm der Objektklassen in Fig. 3;Fig. 4 is a structural diagram of the object classes in Fig. 3;
Fig. 5 eine 3D-Analyse eines MR-Bilds;
Fig. 6 ein Beispiel einer Tabellenkalkulation; und5 a 3D analysis of an MR image; Fig. 6 is an example of a spreadsheet; and
Fig. 7 ein Beispiel einer Hierarchie.Fig. 7 is an example of a hierarchy.
Im weiteren Verlauf werden die folgenden Abkürzungen verwendet:In the further course the following abbreviations are used:
En -Einheiten = im Programmablauf benutzte Objekte und VerknüpfungenEn units = objects and links used in the program flow
CNT -Cognition network technology = Prinzipien der neuen ComputerspracheCNT cognition network technology = principles of the new computer language
CN -Cognition network = Netzwerk der Computersprachen-ObjekteCN -Cognition network = Network of computer language objects
CL -Cognition language = neue ComputerspracheCL cognition language = new computer language
CP -Cognition program = Programmcode in CLCP cognition program = program code in CL
CM -Cognition machine = Maschine mit lauffähigen CPsCM cognition machine = machine with executable CPs
PN -Programmnetz = alle wahrend des Programmablaufs vorkommenden Einheiten (En)PN program network = all units occurring during the program run (En)
Prozesse = SegmentierprozesseProcesses = Segmentation Processes
In dieser Anmeldung geht es um die automatische Deutung von Inhalten in komplexen Daten mittels eines computerimplementiuerten Verfahren. Insbesondere geht es um die automatische Deutung von Tabellen, Bildern, Texten und Netzwerken. Die Anmeldung beschreibt dabei keineswegs nur die Struktur einer fertigen Lösung zur Datenwahrnehmung, sondern es soll
vor allem ein Software-Werkzeug dargestellt werden, welches das Erstellen von komplexen Deutungen erst ermöglicht. Es wird hier somit eine neue Computersprache beschrieben, die speziell für die Deutung komplexer Inhalte in Daten wie Tabellen und andere Strukturen ausgelegt ist. Die innere Struktur dieser Sprache ist an die prinzipiellen Eigenschaften der menschlichen Denkstruktur angelehnt.This application deals with the automatic interpretation of content in complex data by means of a computer-implemented method. In particular, it deals with the automatic interpretation of tables, images, texts and networks. The application does not only describe the structure of a finished solution for data perception, but it should Above all, a software tool will be presented, which makes the creation of complex interpretations possible. It describes a new computer language specifically designed to interpret complex content in data such as spreadsheets and other structures. The internal structure of this language is based on the basic characteristics of the human thinking structure.
Kontextcontext
Die richtige Deutung von Inhalten in Daten setzt Wissen voraus. In konventionellen Computerprogrammen ist dieses Wissen implizit von dem Programmierer in das Programm in Form von Algorithmen eingebracht. Das Problem dabei ist, dass dieses Wissen über das gesamte Programm verteilt sein kann und in der Regel im Programm nicht sauber lokalisiert werden kann. Wissen und Prozesse sind miteinander verwoben. Dies nachträglich wieder zu entwirren ist für sehr komplexe Programme fast nicht mehr möglich. Damit sind Änderungen am Programm erschwert oder gänzlich unmöglich. In komplexen Zusammenhängen ist jedoch ein perfektes Funktionieren eines Programms nicht wirklich erreichbar und eine kontinuierliche Verbes- serung des Programme über Wochen, Monate, Jahre oder sogar Jahrzehnte unbedingt erforderlich. Das größte Problem dabei ist die sogenannte Übertragbarkeit. Auch wenn das einwandfreie Funktionieren eines Programms auf einer großen Anzahl von Datensätzen erfolgreich getestet wurde, so treten fast immer noch nicht adressierte Probleme auf neuen Datensätzen auf. Dies hat mit der unüberschaubar großen Menge von unterschiedlichen Situationen in komplexen Zusammenhängen zu tun.Proper interpretation of content in data requires knowledge. In conventional computer programs, this knowledge is implicitly incorporated by the programmer into the program in the form of algorithms. The problem is that this knowledge can be distributed throughout the program and usually can not be located properly in the program. Knowledge and processes are interwoven. Unraveling this retrospectively is almost impossible for very complex programs. This makes changes to the program difficult or completely impossible. In complex contexts, however, the perfect functioning of a program is not really achievable and a continuous improvement of the program over weeks, months, years or even decades is absolutely necessary. The biggest problem is the so-called transferability. Even if the proper functioning of a program has been successfully tested on a large number of data records, problems that are still largely unaddressed occur on new data records. This has to do with the unmanageably large amount of different situations in complex contexts.
In den Anfängen der Computer war Soft- und Hardware auch miteinander verwoben. Es stellte einen großen Fortschritt dar, beides voneinander so zu trennen, so dass sie unabhängig voneinander verbessert werden konnte. Ganz analog stellt die Cognition-Language ein Verfahren dar, mit dessen
Hilfe sehr anspruchsvolle und komplexe Programme geschrieben werden können und gleichzeitig Wissen und Prozesse einfach und bequem getrennt behandelt werden können.In the early days of the computer software and hardware were also interwoven. It was a great step forward to separate the two so that they could be independently improved. Similarly, the cognition language is a method by which Help very sophisticated and complex programs can be written while knowing and processes can be treated easily and conveniently separated.
Ein bisher bekanntes Verfahren mit einem Anspruch in diese Richtung stellen die Semantischen Netze dar. Hier wird Wissen durch die Struktur des semantischen Netzes repräsentiert und ein Computerprogramm nutzt dieses Wissen beim Behandeln einer Datenstruktur. Semantische Netze sind jedoch nicht als höhere Computersprache, sondern eher als Simulationswerk- zeuge mit sehr eingeschränkten Ausführungsmöglichkeiten zu verstehen. Mit einer Computersprache muss, auch wenn nicht alle Lösungen optimal elegant behandelt werden können, doch zumindest jedes Problem prinzipiell gelöst werden können. Neue Prozesse in semantischen Netzen müssen in konventioneller Computersprache geschrieben werden. In CL sind einige grundlegende Prozesse in konventioneller Computersprache vordefiniert und implementiert. Diese Prozesse sind jedoch so generisch, dass neue Prozesse aus diesen generischen Bausteinen erstellt werden können. Nur um die Leichtigkeit und Eleganz des Programmerstellens immer weiter zu verbessern, werden auch immer wieder neue generische CL-Bausteine, die in konventioneller Sprache programmiert sind, hinzugefügt. Auch einige andere Aspekte, wie das Konzept der Domäne und das der Navigation durch Untermengen (siehe unten) fehlen in semantischen Netzen.A previously known method with a claim in this direction represent the semantic networks. Here, knowledge is represented by the structure of the semantic network and a computer program uses this knowledge when dealing with a data structure. However, semantic networks are not to be understood as a higher computer language, but rather as simulation tools with very limited execution possibilities. Even if not all solutions can be handled elegantly with a computer language, at least every problem has to be solved in principle. New processes in semantic networks must be written in conventional computer language. In CL, some basic processes are predefined and implemented in conventional computer language. However, these processes are so generic that new processes can be created from these generic building blocks. Just to further enhance the ease and elegance of programming, new generic CL modules programmed in conventional language are also being added over and over again. Also some other aspects, such as the concept of the domain and the navigation through subsets (see below) are missing in semantic networks.
Um der hochstehenden Aufgabe gerecht werden zu können, zeichnet die neue höhere Computersprache, die „Cognition-Language" bzw. CL, folgende Eigenschaften aus:To cope with the demanding task, the new higher computer language, the "Cognition-Language" or CL, has the following characteristics:
Allgemeine Struktur der SpracheGeneral structure of the language
■ CL ist eine themenspezifische "High-Level"-Sprache.
■ CL ist modular; Module (CL-Objekte) werden zu einem Programm zusammengefügt. ■ CL is a topic-specific high-level language. ■ CL is modular; Modules (CL objects) are merged into a program.
■ Es gibt Input-, und CL-Objekte. ■ There are input and CL objects.
■ Spezifischere CL-Objekte sind Wissens- und Ablaufobjekte. ■ More specific CL objects are knowledge and workflow objects.
■ Spezifischere Input-Objekte sind Inputdaten und aus ihnen generierte Objekte. ■ More specific input objects are input data and objects generated from them.
■ Wissens- und Ablaufobjekte können zu Wissens- und Ablaufhierarchien zusammengebaut werden. ■ Knowledge and flow objects can be assembled into knowledge and flow hierarchies.
■ Die Möglichkeit der Vernetzung aller Objekte führt letztlich zu einem hierarchischem Netz, dem fertigen Programm. ■ The possibility of networking all objects ultimately leads to a hierarchical network, the finished program.
■ Das Programm transformiert schwach strukturierte Input-Daten in ein hierarchisches Netz von relevanten Input-Objekten. ■ The program transforms weakly structured input data into a hierarchical network of relevant input objects.
■ Diese Transformation geschieht über eine große Anzahl von Zwischenschritten, in denen letztlich nichtrelevante Zwischenobjekte erzeugt werden, die sich nach und nach in die relevanten entwickeln. ■ This transformation takes place over a large number of intermediate steps, in which ultimately non-relevant intermediate objects are generated, which gradually develop into the relevant ones.
■ Grundlegendes allgemeines und themenspezifisches Wissen ist in die ■ Basic general and topic-specific knowledge is in the
Sprache fest eingebaut.Language permanently installed.
■ Grundlegendes Wissen prägt die nachfolgend beschriebenen Struktur der Sprache und spezifisches Wissen die speziellen, konkreten vordefinier- ten Bausteine, die Basismodule, die CL-Objekte.
■ Eine beliebige Anzahl von CL-Objekten kann ausgewählt, individuell mit Parametern oder Variablen versehen und durch hierarchische Vernetzung zu einem vollständigen Programm zusammengebaut werden. ■ Fundamental knowledge characterizes the structure of the language described below and specific knowledge characterizes the specific, concrete predefined building blocks, the basic modules, the CL objects. ■ Any number of CL objects can be selected, customized with parameters or variables, and assembled into a complete program through hierarchical networking.
■ Der Programmablauf und die Ergebnisse können visualisiert und damit auf ihre Qualität überprüft werden. ■ The program sequence and the results can be visualized and thus checked for their quality.
Spezifische Struktur der SprachenSpecific structure of languages
■ Anwendungbezogenes „Weltwissen", WW, und Programmabläufe ■ Application- related "world knowledge", WW, and program sequences
(Abläufe) können getrennt formuliert werden.(Processes) can be formulated separately.
■ WW und Abläufe können als hierarchische Netzstrukturen von Wissens-Objekten bzw. von Ablauf-Objekten aufgebaut werden. ■ WW and processes can be constructed as hierarchical network structures of knowledge objects or of flow objects.
■ WW-Hierarchie, und Ablauf-Hierarchie stellen zusammen das Programm dar. ■ WW Hierarchy, and Flow Hierarchy together represent the program.
■ Untermengen aller Formen von Objekten, Domänen, können manuell oder mittels Prozessen direkt oder indirekt selektiert werden. Subset of all forms of objects, domains, can be selected manually or by processes directly or indirectly.
■ Domänen dienen der lokalen Ausführung von Prozessen und anderen Algorithmen. ■ Domains are for local execution of processes and other algorithms.
■ Domänen können Teil eines Programmablaufs wie Teil eines Wissenobjektes sein. ■ Domains can be part of a program flow as part of a knowledge object.
■ Indirektes Selektieren geschieht durch sequenzielles hierarchisches Selektieren mittels Navigation entlang von zum Teil vordefinierten oder aus- gewählten Verknüpfungen.
■ Domänen können mittels Prozessen oder manuell in Objekte (hierarchisch höher geordnete Objekte) transformiert werden (Segmentierung des Inputs, des Wissens und der Abläufe). ■ Indirect selection is done by sequential hierarchical selection by navigation along partially predefined or selected links. ■ Domains can be transformed into objects (hierarchically higher ordered objects) by processes or manually (segmentation of input, knowledge and processes).
■ Prozesse können auf Domänen lokal ausgeübt werden. ■ Processes can be performed locally on domains.
■ Abläufe und WW können gegenseitig aufeinander zugreifen und sich gegenseitig modifizieren. ■ Processes and WW can mutually access and mutually modify each other.
■ Beziehungen zwischen Teilbereichen im WW, in den Abläufen wie in den Daten können formuliert und automatisch berechnet werden. ■ Relations between subsections in the WW, in the processes as well as in the data can be formulated and automatically calculated.
■ Das WW besteht aus Wissensobjekten, speziell: den Konzepten (Klassen), Verknüpfungskonzepten, Konzeptverknüpfungen, Markern, Ob- jekt-Beschreibungen (Expressionen) und lokalen und globalen Variablen. ■ The WW consists of knowledge objects, in particular: the concepts (classes), linking concepts, concept links, markers, object descriptions (expressions) and local and global variables.
■ Die Ablaufhierarchie besteht aus Berechnungen, Bedingungen, unterschiedlichen Arten von Klassifikations- und Segmentations-Prozessen (den Prozessen) und aus Objekteigenschaftsberechnungen (Features) sowie ei- nem Formeleditor für Features und Variablen. ■ The flow hierarchy consists of calculations, conditions, different types of classification and segmentation processes (the processes), and object property computations (features), as well as a feature and variable formula editor.
■ Alle Objekte können manuell oder durch Prozesse miteinander verknüpft werden. ■ All objects can be linked together manually or through processes.
■ Unterschiedliche Datensätze können geladen werden und es können diese selbst oder ihre Komponenten durch Prozesse miteinander verknüpft werden. ■ Different data sets can be loaded and these or their components can be linked together by processes.
■ Unterschiedliche Analyseergebnisse können geladen werden und es können diese selbst oder ihre Komponenten durch Prozesse miteinander verknüpft werden.
■ Unterschiedliche Wissenshierarchien können geladen werden und es können diese selbst oder ihre Komponenten miteinander verknüpft werden. ■ Different analysis results can be loaded and these or their components can be linked together by processes. ■ Different knowledge hierarchies can be loaded and these or their components can be linked together.
■ Verknüpfte simultane Analyse und Deutung unterschiedlicher bzw. heterogener Tabellen und anderer Arten von Daten wie Texte, Zahlen, Vektoren, Spektren, Bilder und Präsentationsdokumente kann durchgeführt werden. ■ Linked simultaneous analysis and interpretation of different or heterogeneous tables and other types of data such as text, numbers, vectors, spectra, images, and presentation documents can be performed.
■ Alle Objekte und Verknüpfungen können durch Prozesse oder manuell gelöscht werden. ■ All objects and links can be deleted by processes or manually.
■ Die Verknüpfung von Input-Objekten mit Wissensobjekten entspricht einer Klassifikation, die mit einem Marker einer Markierung, und die mit einer lokalen Variablen einer Attributisierung. ■ The linking of input objects with knowledge objects corresponds to a classification, with a marker of a marker, and with a local variable of an attribute.
■ Nicht nur Input-Objekte sondern auch Wissensobjekte und Ablauf-Objekte können klassifiziert werden. ■ Not only input objects but also knowledge objects and process objects can be classified.
■ Ergebnisse können in Form von hierarchischen Objektnetzen oder in Form von Tabellen und Schaubildern exportiert werden. ■ Results can be exported as hierarchical object meshes or as tables and graphs.
■ Tabellen, Teilmengen davon und andere Datenobjekte können erzeugt und vernichtet werden bzw. geändert werden (z.B. neue Spalte hinzufügen, Spalten miteinander multiplizieren) ■ Tables, subsets and other data objects can be created and destroyed or changed (eg add new column, multiply columns together)
■ Untermengen einer Tabelle können über Prozesse in andere Tabellen eingefügt werden. Subset of a table can be inserted into other tables through processes.
■ Wiederholte Programmabläufe (Loops bzw. Schleifen) können formu- liert werden.
■ Unterprozesse können formuliert werden. ■ Repeated program sequences (loops or loops) can be formulated. ■ Sub-processes can be formulated.
- Ein Ablauf kann bedingungsabhängig einen Loop abbrechen und an andere Abläufe in beliebiger Position in der Ablaufhierarchie übergeben.- A process can conditionally cancel a loop and transfer it to other processes in any position in the flow hierarchy.
■ Allgemeine Daten, speziell auch Namen und Inhalte von Konzepten, oder noch spezieller auch Namen und Inhalte von Zeilen oder Spalten in Tabellenkonzepten der Wissenshierarchie, können aus Wissensobjekten über Variablen abgeholt und in andere Konzepte oder in Abläufen eingefügt und verwendet werden. ■ General data, especially the names and contents of concepts, or even more specifically names and contents of rows or columns in table concepts of the knowledge hierarchy, can be retrieved from knowledge objects via variables and inserted and used in other concepts or procedures.
■ Namen der Zeilen oder Spalten von Tabellen, können über Variablen abgeholt und in Konzepten oder Abläufen oder anderen Tabellen eingefügt und verwendet werden. ■ Names of rows or columns of tables, can be retrieved via variables and inserted and used in concepts or procedures or other tables.
■ Vernetzten Objekte können als hierarchisch übergeordnete Objekte aufgefasst werden, die Eigenschaften besitzen können und die wiederum zu hierarchisch höheren Objekten vernetzt werden können, usw. ■ Meshed objects can be thought of as hierarchically superior objects that can have properties that can be meshed into hierarchically tall objects, and so on.
Visualisierung des Programmablaufs und der ErgebnisseVisualization of the program flow and the results
■ Alle Strukturelemente können graphisch dargestellt werden. ■ All structural elements can be graphically displayed.
■ Der Ablauf des Programms kann dargestellt werden, indem die Evolu- tion der Wissens oder Datenobjekte dargestellt werden kann. ■ The course of the program can be displayed by presenting the evolution of the knowledge or data objects.
■ Die Darstellung der Objekte kann in Form von (transparenter) Einfär- bung geschehen, die ihrer Klassifikation, ihrer Markierung oder dem Wert eines Features oder eines Attributes entspricht. Auch der Umriss des Ob- jekts und seine Position kann dargestellt werden.
■ Die Ähnlichkeit von Objekten oder eine andere Form ihrer Zusammengehörigkeit kann dargestellt werden, z.B. durch gleichartige Einfärbung. ■ The representation of the objects can take the form of (transparent) coloring, which corresponds to their classification, their marking or the value of a feature or an attribute. The outline of the object and its position can also be displayed. ■ The similarity of objects or another form of belonging together can be shown, for example, by similar coloring.
Komplexe Daten insbesondere Tabellen, Bilder und Texte können au- tomatisch mit Hilfe der Cognition-Language, CL, analysiert und gedeutet werden. Die CL besitzt eine Struktur, die das Erstellen höchst komplexer Lösungen aus dem Wahrnehmungsbereich sinnvoll unterstützt und damit überhaupt erst ermöglicht. Im Gegensatz zu konventionellen Verfahren wird aus den Datensätzen automatisch und schrittweise eine Evolution von Objekten bis hin zu einer hierarchischen Netzstruktur dieser Objekte erzeugt. Dabei besteht diese Objektstruktur nur zum Teil aus vordefinierten Datenblöcken der Daten. Unter Einbeziehung von abstraktem Wissen werden vielmehr die Objekte nach Sinnkriterien und nicht nach formalen Kriterien generiert. Hierdurch wird es möglich, aus den Datensätzen, wie z.B. Tabellen, automatisch Sinn und Bedeutung zu extrahieren. Die neue Computersprache ermöglicht das schnelle und bequeme Erstellen derartiger Programme mit Hilfe der beschriebenen aufeinander abgestimmten Strukturelemente.Complex data, in particular tables, images and texts can be automatically analyzed and interpreted with the help of the Cognition-Language, CL. The CL has a structure that makes sense and thus makes possible the creation of highly complex solutions from the field of perception. In contrast to conventional methods, the data sets automatically and gradually generate an evolution from objects to a hierarchical network structure of these objects. In this case, this object structure only partially consists of predefined data blocks of the data. By incorporating abstract knowledge, the objects are rather generated according to meaning criteria and not according to formal criteria. This makes it possible to extract from the data sets, e.g. Tables automatically extract meaning and meaning. The new computer language makes it possible to quickly and easily create such programs using the described coordinated structural elements.
Die automatisch generierten Analysen können Nutzern ergänzend zu ihrer eigenen Deutung als Entscheidungshilfe dienen. Sie können die Zeit für eine Analyse drastisch senken und ihre Qualität erheblich steigern. Die Tabellen und andere Daten können dabei heterogene Inhalte aufweisen, so dass sehr unterschiedliche Arten von Informationen zu einer Gesamtbeurteilung, einer Gesamtdeutung automatisch zusammengeführt werden kön- nen.The automatically generated analyzes can serve as a supplement to their own interpretation as a decision-making aid. You can drastically reduce the time you spend on an analysis and significantly increase its quality. The tables and other data can have heterogeneous contents, so that very different types of information can be automatically combined to form an overall assessment, an overall interpretation.
Konkrete technische RealisierungConcrete technical realization
Die automatische Behandlung der Daten erfolgt durch ein Computer- programm einer besonderen Struktur. Die detaillierte Struktur dieses Programms wird im Einzelnen weiter unten beschrieben. Die grobe Struktur des
Programms aber setzt sich wie folgt zusammen.The automatic treatment of the data is done by a computer program of a special structure. The detailed structure of this program is described in detail below. The rough structure of the Program but is composed as follows.
Die drei wesentliche Bausteine dieser Programmstruktur sind:The three main building blocks of this program structure are:
1. die Input-Daten plus den aus diesen generierten Input-En.1. the input data plus the input-en generated from these.
2. die Programmsteuerung und2. the program control and
3. abstraktes und konkretes Wissen über Dateninhalte, Programmsteu- erung und Wissen.3. abstract and concrete knowledge of data content, program control and knowledge.
Es mag merkwürdig erscheinen, dass ein Programm Wissen über sich selbst enthält. Nur so werden jedoch Intelligenzleistungen ähnlich der eines Menschen erst möglich.It may seem strange that a program contains knowledge about itself. Only then, however, will intelligence achievements similar to those of a human become possible.
Zu den Input-Daten zählen die Input-Daten selbst, wie auch die aus ihnen prozedural generierten Objekte und ihre Verknüpfungen untereinander. Die Programmsteuerung repräsentiert und beschreibt die Dynamik des Programms, die, wenn einmal angestoßen, Berechnungen und Strukturverände- rungen vornehmen. Im einfachsten Fall strukturiert die Programmsteuerung unter Verwendung des abstrakten Wissens die Input-Daten in eine neue Form. Dabei werden vor allem Untermengen der Input-Daten bestimmt, als Objekte mit Eigenschaften definiert und sowohl miteinander als auch mit dem Wissen vernetzt. In vielen Fällen werden die Objekte auch durch die Programmsteuerung mit Attributen versehen.The input data itself includes the input data itself as well as the procedurally generated objects and their interconnections. The program control represents and describes the dynamics of the program, which, once initiated, make calculations and structural changes. In the simplest case, program control structures the input data into a new form using abstract knowledge. Above all, subsets of the input data are determined, defined as objects with properties and networked with each other as well as with the knowledge. In many cases, the objects are also provided with attributes by the program control.
Im allgemeinen Fall hingegen werden beim Ablauf der Programmsteuerung nicht nur die Input-Daten sondern auch Wissen und selbst die Programmsteuerung umstrukturiert. D.h. die Programmstruktur insgesamt verändert sich inputabhängig selbst. Die Veränderung der gesamten Pro- grammstruktur wird genau dann notwendig, wenn alle drei Komponenten, Wissen, Daten und Programmsteuerung, sich aneinander anpassen müs-
sen, um einen sinnvollen Programmablauf zu garantieren. Dieser Umstand liegt z.B. dann vor, wenn aus den Daten automatisch neues Wissen und neue Prozesse generiert werden müssen, wenn also nicht jede mögliche Situation in den Input-Daten in Form einer konkreten Programm- und Wis- sensstruktur vordefiniert werden kann, sondern wenn diese über Programmsteuerungsschritte erst gebildet werden können. Auf diese Weise kann 1. ein Programm noch flexibler auf Inputdaten eingestellt werden und 2. kann somit ein sich selbst optimierendes Programm (Wissen plus Programmsteuerung) erstellt werden, das möglicherweise nur auf einem Trai- ningsdatensatz sich selbst optimiert und anschließend in dieser optimierten Form fest eingestellt auf anderen neuen Datensätzen ablaufen gelassen wird.In the general case, however, not only the input data but also knowledge and even the program control are restructured during program control. This means that the program structure as a whole changes depending on the input itself. The change in the entire program structure becomes necessary precisely when all three components, knowledge, data and program control, have to adapt to each other. to guarantee a meaningful program. This circumstance occurs, for example, when new data and new processes have to be automatically generated from the data, that is, if not every possible situation in the input data can be predefined in the form of a concrete program and knowledge structure, but if these are exceeded Program control steps can only be formed. In this way, 1. a program can be set up more flexibly to input data, and 2. a self-optimizing program (knowledge plus program control) can be created which may only be self-optimizing on a training data set and then fixed in this optimized form set to run on other new records.
Neben diesem allgemeinen Vorgehen besteht der Inhalt dieser Erfin- düng in der Struktur einer neuen Programmiersprache, die ein schnelles und einfaches Programmieren in eben dieser Vorgehensweise ermöglicht. In dieser objekthaften Sprache gibt es drei grundlegende Arten von Objekten: In- put-, Ablauf- und Wissens-Objekte. Zudem gibt es eine Reihe spezieller, untergeordnete, Objekte, von denen neben eher konventionellen, wie Ob- jekteigenschaften und mathematischen Ausdrücken, drei Ablauf-Objekte besonders betont werden sollen.In addition to this general procedure, the content of this invention consists in the structure of a new programming language, which allows a quick and easy programming in just this procedure. In this object-oriented language, there are three basic types of objects: input, flow, and knowledge objects. In addition, there are a number of special, subordinate, objects, of which, in addition to more conventional, such as object properties and mathematical expressions, three flow objects are to be particularly emphasized.
Wichtige spezielle Ablaufobjekte sind Variablen, Selektionsprozesse (Bestimmung von Untermengen der gesamten En-Menge, kurz Domänen) und Strukturierungsprozesse (kurz Prozesse). Prozesse erzeugen, vernichten und verändern Objekte und Verknüpfungen in der gesamten Programmstruktur. Domänen erzeugen und vernichten (verändern) Teilmengen der gesamten Programmstruktur. Die Prozesse werden mit Domänen verknüpft und sind dann nur auf diesen Untermengen aktiv. Globale und lokale Vari- ablen dienen dazu, Daten, wie Strings, Zahlen oder auch Vektoren, Kurven oder Tabellen, an bestimmen Stellen der Programmstruktur (Daten, Wissen,
Prozesse) abzuholen und an anderen Stellen zu verwenden bzw. abzuspeichern (z.T. gebunden an Objekte) und später zu verwenden.Important special process objects are variables, selection processes (determination of subsets of the entire En set, short domains) and structuring processes (short processes). Processes create, destroy and modify objects and links in the entire program structure. Generate and destroy domains (change) subsets of the entire program structure. The processes are linked to domains and are then active only on these subsets. Global and local variables are used to transfer data, such as strings, numbers or even vectors, curves or tables, to specific places in the program structure (data, knowledge, Processes) and to use or save in other places (partly bound to objects) and later use.
Diese spezielle Struktur der Cognition-Language ist gewählt worden, um einen evolutionären Wahrnehmungs- bzw. Deutungsprozess zu modellieren. Die Input-Daten, der Programmablauf und das Wissen passen sich schrittweise aneinander an. Am Ende geht esThis particular structure of cognition language has been chosen to model an evolutionary process of perception. The input data, the program flow and the knowledge gradually adapt to each other. In the end it works
1. in einem automatischen Lernprozess um die Struktur des Wis- sens und des Programmablaufs, die auf neuen Datensätzen wieder verwendet werden können, und1. in an automatic learning process about the structure of the knowledge and the program flow, which can be reused on new data sets, and
2. in einem Deutungsprozess um die letztlich generierte "Datenobjekte von Interesse" (durch Vernetzung der Originaldatenobjekte erzeugte hierarchisch höhere Objekte).2. in an interpretation process around the ultimately generated "data objects of interest" (hierarchically higher objects generated by networking the original data objects).
Lösungswege:Solutions:
Technisch werden die genannten Lösungen ermöglicht durch a.) automatische Segmentierung der Daten in hierarchische Netzwerke, die mit Wissens-Objekten und anderen Objekten automatisch zu einem ganzheitlichen Programmnetz (PN) verknüpft werden, wobei sich die gesamte Vernetzung während des Programmablaufs dynamisch verändert,Technically, the solutions mentioned are made possible by a.) Automatic segmentation of the data into hierarchical networks, which are automatically linked to knowledge objects and other objects to form an integrated program network (PN), with the entire network dynamically changing during program execution,
b.) ein Navigationsverfahren im multimodalen Netz (der En) zum Auffinden von Teilnetzen (= Untermengen der Programmeinheiten), mit der Möglichkeit auf diesen Teilnetzen Klassifikations- und Segmentierungsprozesse lokal ablaufen zu lassen undb.) a navigation method in the multimodal network (the En) for locating subnets (= subsets of the program units), with the possibility to run classification and segmentation processes locally on these subnets and
c.) Inter- und Intranetzkommunikation durch Variablen mit den entsprechenden Prozessen.
A. Heterogene Verknüpfungen und heterogene Domänen (für alle Lösungen).c.) Inter- and Intranet communication by variables with the corresponding processes. A. Heterogeneous linkages and heterogeneous domains (for all solutions).
Automatisches Erstellen von Verknüpfungen zwischen Objekten, die dazu dienen, hierarchische übergeordnete Objekte zu generieren, diese als Ganzes mit Merkmalen versehen und klassifizieren zu können und wiederum auf noch höherer Ebene mit anderen Objekten verknüpfen zu können, usw.. Zudem dienen sie allgemein dem schnellen Auffinden von Objekten, indem man leichter auffindbare Objekte als Startobjekte benutzt und dann über etablierte Verknüpfungen die schwerer auffindbaren Objekte wesentlich schneller erreicht als durch anderes prozesshaftes Vorgehen (Indizierung). Die Verknüpfungen sollen jedoch nicht fest vorgegeben sein, sondern vielmehr davon abhängen, welche konkreten Strukturen in den jeweiligen Daten vorliegen. Somit ist das Ziel das automatische prozess- und wissensgetriebene Erstellen und Vernichten von Verknüpfungen zwischen automatisch generierten Untermengen der (heterogenen multimodalen) Daten. Dies ist nur möglich mit Hilfe eines multi-modalfähigen Netznavigationsverfahrens.Automatically create links between objects that can be used to generate hierarchical parent objects, to tag and classify them as a whole, and then link them to other objects at a higher level, and so on. In addition, they are generally used for quick retrieval objects by using objects that are easier to find as starting objects and then using established links to reach the objects that are harder to find much faster than through other process-oriented procedures (indexing). However, the links should not be fixed, but rather depend on which concrete structures exist in the respective data. Thus, the goal is the automatic process- and knowledge-driven creation and destruction of links between automatically generated subsets of (heterogeneous multimodal) data. This is only possible with the help of a multi-modal network navigation method.
Die automatisch neu zu erstellenden Verknüpfungen werden durch Navigation im CN, also entlang verschiedener Objekte und Verknüpfungen, definiert. Gleichzeitig ermöglichen diese neuen Verknüpfungen und auch das Erzeugen neuer Objekte, wieder neue Navigationspfade. Auf diese Weise wächst das CN, wobei es teilweise aber auch wieder abgebaut wird (klingt nach der Entwicklung des Gehirns). Dabei dienen sowohl die Existenz oder Nicht-Existenz der Knoten und Verknüpfungen als auch die Existenz oder Nicht-Existenz von Seitenzweigen des Pfads als Bedingung ob der Pfad fortgeführt oder abgebrochen wird. Teil des Navigationspfads können auch mathematisch bzw. logisch miteinander verknüpfte Bedingungen, Knoten und Kanten des Netzes sein (mit anderen Worten manche der Verknüpfungen sind mathematische Operationen wie und, oder +, - * usw.). Am Ende
oder auch bereits an Zwischenschritten dieser Navigation können Segmentierungsprozesse stehen, die auf die an dieser Stelle und auf die dort vorgefundenen Untermengen ausgeübt werden. Wird der Pfad wegen Nichterfüllung der Bedingungen abgebrochen, ist die Untermenge für alle nachfolgen- den Prozesse gleich der Nullmenge. Wird der Pfad bis zur Stelle des Prozesses geführt, gilt die an dieser Stelle des Pfads gefundene Untermenge für den angehängten Segmentierungsprozess als die "Untermenge von Interesse", als die sogenannte Domäne, und der Prozess wird auf dieser Untermenge ausgeführt. Segmentierungsprozesse erzeugen und/oder vernichten Objekte, Gruppen von Objekten (Domänen) und Verknüpfungen. Zu diesen Objekten und Verknüpfungen gehören die Segmentierungsprozesse selbst, lokale oder globale Variablen oder deren Werte, Klassen und Markierungen (Labels), aus den Daten durch Zusammenfassung von deren Elementen generierte Objekte und alle Arten von Verknüpfungen. Zu den Verknüpfungen aller Art gehören also sowohl die vordefinierten, automatisch während des Programmablaufs aufbereiteten Verknüpfungen (wie z.B. für Bildobjekte direkte geometrische Nachbarschaften in Form von Nachbarschaftslisten oder geometrisch hierarchische Verknüpfungen) als auch die in Segmentierungsprozessen beschriebenen und prozesshaft erzeugten Verknüpfungen. SoI- che prozessgetriebenen Verknüpfungen sind bisher nirgends so beschrieben worden, insbesondere nicht, wenn die Navigation und Verknüpfungen auf heterogenen Objekten und Verknüpfungen durchgeführt werden, wobei auch die internen Objekte wie Prozesse, Attribute, Merkmale und Klassen dazu- gezählt werden. So können Elementen einer Domäne mit den Elementen einer anderen oder sogar andersartigen Domänen auf einfache automatische Weise verknüpft werden. Ein spezieller Segmentierungsprozess kann dabei heißen: "verknüpfe die En der Startmenge des Pfads mit den En der Endmenge. Bisher können nur Verknüpfungen von Bildobjekten mit Klassen der Klassenhierarchie automatisch erstellt werden. Nur innerhalb der BiId- Objekthierarchie kann auf die beschriebene Weise navigiert werden, nicht jedoch innerhalb der Prozess-, Variablen-, Merkmals-, Expressions- und
Klassenhierarchie. Variablen sind zudem nicht hierarchisch strukturierbar und Merkmale nur bedingt und Expressionen existieren nur für Erstellung von benutzerdefinierten Merkmalen und für die Verknüpfung von Merkmalen zu Klassen.The automatically created links are defined by navigation in the CN, ie along different objects and links. At the same time, these new links as well as the creation of new objects enable new navigation paths. In this way, the CN grows, but it is partially degraded again (sounds like the development of the brain). Both the existence or non-existence of the nodes and links as well as the existence or non-existence of side branches of the path serve as a condition of whether the path is continued or aborted. Part of the navigation path can also be mathematically or logically linked conditions, nodes, and edges of the mesh (in other words, some of the joins are mathematical operations such as and, or +, - *, etc.). At the end or even at intermediate steps of this navigation can be segmentation processes, which are exercised at the here and on the subsets found there. If the path is aborted due to non-fulfillment of conditions, the subset for all subsequent processes is equal to the zero quantity. If the path is passed to the point of the process, the subset found at this point of the path will be considered the "subset of interest", as the so-called domain, for the attached segmentation process, and the process will be executed on that subset. Segmentation processes create and / or destroy objects, groups of objects (domains), and links. These objects and joins include the segmentation processes themselves, local or global variables or their values, classes and labels, objects generated from the data by aggregating their elements, and all kinds of joins. The shortcuts of all kinds thus include both the predefined links that are automatically prepared during the course of the program (such as, for example, for image objects, direct geometric neighborhoods in the form of neighborhood lists or geometrically hierarchical links) and the links described in segmentation processes and generated processually. So far no process-driven links have been described in this way, especially not when the navigation and links are performed on heterogeneous objects and links, whereby the internal objects such as processes, attributes, features and classes are also counted. Thus, elements of one domain can be linked to the elements of another or even different domains in a simple automatic way. A special segmentation process can be: "Link the enum of the start set of the path to the en of the final set." So far, only links of image objects to classes of the class hierarchy can be automatically created. "" Only in the BiId object hierarchy can not navigate in the described way however, within the process, variable, feature, expression and Class hierarchy. In addition, variables are not hierarchically structurable and characteristics only conditionally, and expressions only exist for creating user-defined characteristics and for linking characteristics to classes.
Es können auch mittels Prozessen keine Verknüpfungen zwischen Bildobjekten erstellt werden und somit schon gar nicht zwischen Objekten verschiedener Bilder oder gar heterogene Verknüpfungen zwischen einerseits Objekten in Bildern und andererseits andersartigen Datenobjekten wie z.B. Tabelleneinträgen oder internen Objekten wie Prozessen oder Inhalten in Klassen (Expressionen und Bedingungen).It is also not possible to create links between image objects by means of processes, and therefore certainly not between objects of different images or even heterogeneous links between objects in images on the one hand and other types of data objects such as images on the other hand. Table entries or internal objects such as processes or content in classes (expressions and conditions).
Auf die beschriebene Weise der heterogenen Navigation und Verknüpfungs- und Domänenerzeugung können die an ganz unterschiedli- chen Orten gelegenen Tabelleneinträge, Bildobjekte und Textobjekte untereinander und sogar datenübergreifend auf abstrakte Weise automatisch miteinander verknüpft werden.In the described manner of heterogeneous navigation and linking and domain generation, the table entries, image objects and text objects located at completely different locations can be automatically linked with each other and even across data in an abstract manner in an abstract manner.
Die so neu definierten Verknüpfungen können danach wiederum zur Navigation durch das allgemeine Objektnetz und so zur Definition und Erzeugung wieder neuer Domänen und Verknüpfungen dienen. Gruppen von verknüpften Objekten können wieder als Objekte mit Merkmalen definiert werden, die auf höherer hierarchischer Ebene wiederum verknüpft werden können. Auf diese Weise können z.B. Objekte in zweidimensionalen Schichtbildern zu dreidimensionalen Objekten mit Merkmalen wie Volumen durch Verknüpfung von Objekten in unterschiedlichen Schichtbildern zusammengesetzt werden. Auch innerhalb eines Bilds können so automatisch nicht-benachbarte Objekte, die in einem Sinnzusammenhang stehen, zu einem Objekt (z.B. gepunktete Linie) mit einem Merkmal, wie Länge, versehen werden. Solche übergeordneten Objekte können dann auch mit lokalen Variablen oder mit Klassen verknüpft werden. Das gleiche gilt für Texte und
Tabellen und andere Daten. Auch nicht benachbarte Tabelleneinträge können in einem Sinnzusammenhang stehen und übergeordnete Objekte mit Merkmalen bilden, oder ein Tabelleneintrag kann erst durch Beziehungen zu anderen Einträgen eine besondere Bedeutung erlangen.The newly defined links can then in turn be used to navigate through the general object network and thus to define and create again new domains and links. Groups of linked objects can again be defined as objects with features that can be linked at a higher hierarchical level. In this way, for example, objects in two-dimensional slice images can be combined to form three-dimensional objects with features such as volume by linking objects in different slice images. Even within an image, objects that are not adjacent to one another, which are in a meaning context, can automatically be provided with an attribute (eg dotted line) with a feature, such as length. Such superordinate objects can then also be linked with local variables or with classes. The same applies to texts and Tables and other data. Non-contiguous table entries can also be meaningful and form superordinate objects with characteristics, or a table entry can only acquire special significance through relationships to other entries.
Zusammenfassend kann man sagen, dass die automatische Erzeugung von Verknüpfungen durch Navigation im CN neu ist und vor allem neu bezüglich Navigation im heterogenen multimodalen CN.In summary, it can be said that the automatic generation of links by navigation in the CN is new and, above all, new with regard to navigation in the heterogeneous multimodal CN.
B. Kommunikation im CN während des Programmablaufes (für alle Lösungen).B. Communication in the CN during program execution (for all solutions).
Die Vernetzung und die programminterne Kommunikation geschieht auf zwei Arten: 1. über Links bzw. Verknüpfungen und 2. durch Variablen.The networking and the internal program communication happens in two ways: 1. via links resp. Links and 2. by variables.
Expressionen sind kleine mathematische Teilnetze die mit einem Namen versehen werden können und somit an beliebigen Stellen des CPs durch Verlinkung (unter Verwendung ihres Namens) verwendet werden können.Expressions are small mathematical subnets that can be given a name and thus can be used at any point on the CP by linking (using their name).
Neu ist nun, alle Mechanismen im System wie benutzerdefinierte Schwellwerte, Klassenbeschreibungen, Merkmale, Algorithmen, Prozesse, Bedingungen, Domänen, Teile des Programmablaufs usw. mit allen möglichen mathematischen und logischen Operationen wie +,-,*,/,log, exp, sin,...und, oder, nicht-und, nicht-oder vernetzen zu können (in einer Art Formeleditor) und dies als Expression mit einem Namen zu versehen und an beliebiger Stelle des CPs verwenden zu können. Bei dieser Vorgehensweise ist vor allem das Verwenden von mit Namen versehenen Teil-Programmabläufen, "Customized Algorithms", CAs, erwähnenswert. Bisher fanden Ver- weise (Links) auf Klassen innerhalb eines Programmablaufs Verwendung. Nun können auch CAs innerhalb einer Klassendefinition benutzt werden.
Das ermöglicht, ein Sub-Programm in CL zu schreiben zur Berechnung eines komplexen Merkmals, das über die Möglichkeiten ein CF mittels mathematischer Vernetzung zu erstellen hinausgeht. Es stellt somit eine Art "höheres CF" dar, ein CF, das nicht in C++, sondern in CL programmiert wurde. Ein weiterer Vorteil der Expressionen ist die Möglichkeit, Programmablauf und Wissen klarer voneinander zu trennen und gleichzeitig die Kommunikation zwischen beiden zu verbessern. Expressionen können unabhängig formuliert werden und an verschiedenen Stellen Verwendung finden. Dabei kann es Sinn machen, eine Klassenbeschreibung in mehrere Expressionen aufzuspalten (z.B. in der Bildanalyse in eine Expression mit Formbeschreibungen des Objekts und eine weitere mit Farbbeschreibungen). Es ist durchaus wahrscheinlich, dass im Programmablauf an verschiedenen Stellen nur Teilaspekte einer Klassenbeschreibung sinnvoller Weise benötigt werden.What is new now is all the mechanisms in the system, such as user-defined thresholds, class descriptions, features, algorithms, processes, conditions, domains, parts of the program, etc., with all sorts of mathematical and logical operations such as +, -, *, /, log, exp, sin , ... and, or, not-and, not-or-networking (in a kind of formula editor) and naming it as Expression and using it anywhere on the CP. In this approach, especially the use of named subprograms, "Customized Algorithms", CAs, is worth mentioning. Until now, references (links) to classes within a program flow were used. Now you can also use CAs within a class definition. This makes it possible to write a subprogram in CL to compute a complex feature that goes beyond the possibilities of creating a CF using mathematical meshing. It is thus a kind of "higher CF", a CF that was not programmed in C ++, but in CL. Another advantage of the expressions is the ability to more clearly separate program flow and knowledge while improving communication between the two. Expressions can be formulated independently and used in various places. It may make sense to split a class description into several expressions (eg in the image analysis in an expression with form descriptions of the object and another with color descriptions). It is quite likely that only partial aspects of a class description are meaningfully needed in different parts of the program flow.
Die bessere Trennung von Programmablauf und Wissen ist vor allem dann von besonderer Bedeutung, wenn ein Programm auf eine neue Ausprägung von Input-Daten angepasst werden soll. Einerseits möchte dann ein professioneller CL-Programmierer möglichst wenig am Programmablauf än- dem müssen (wünschenswerter Weise nichts) und hauptsächlich oder nur die Expressionen in den Klassen der neuen Situation anpassen. Andererseits wäre dann ein Nicht-CL-Programmierer, also ein Anwender einer CL- Lösung , in der Lage ohne den Programmablauf verstehen zu müssen, das Programm allein durch Optimieren der Expressionen auf seine Daten anzu- passen. Das Ändern der Expressionen ist auf dramatische Weise einfacher als das Ändern eines Programmablaufs. Da nun die Expressionen auch im Programmablauf Verwendung finden, ändert ein Anwender damit indirekt ebenso den Programmablauf. Dies geschieht dann aber auf sinnvolle Weise ohne dass der Anwender es überhaupt merken muss.The better separation of program flow and knowledge is especially important if a program is to be adapted to a new form of input data. On the one hand, a professional CL programmer would like to have as little as possible to change the program (desirably nothing) and to adapt mainly or only the expressions in the classes of the new situation. On the other hand, a non-CL programmer, ie a user of a CL solution, would then have to be able to adapt the program to its data solely by optimizing the expressions without having to understand the program sequence. Changing the expressions is dramatically easier than changing a program flow. Since the expressions are now also used in the program sequence, a user indirectly also changes the program sequence. But this happens in a meaningful way without the user even having to remember it.
1) Arithm/Iogic Expressions: Generelle Ausdrücke, formuliert als "For-
mein," umfassen ClassDescriptions, Cust Arth Features, tresholds etc. erlauben die Definition von Regeln, deren logische Verknüpfung sowie alle mathematischen Operationen wie +,-,*,/,log, exp, sin,...1) Arithm / Iogic Expressions: General terms, formulated as "For- my, "include ClassDescriptions, Cust Arth features, tresholds, etc. allow the definition of rules, their logical operation and all mathematical operations such as +, -, *, /, log, exp, sin, ...
2) Procedural Expressions: Generelle Ausdrücke, formuliert in Prozess2) Procedural Expressions: General terms formulated in process
Sprache, erlauben CustAlg, CustRelationalFeatures, ...Language, allow CustAlg, CustRelationalFeatures, ...
3) Arithm. Expressions können eingesetzt werden als3) Arithm. Expressions can be used as
Feature: Def: berechnet eine Eigenschaft eines Objekts (BiIdO, Link, Klasse, Prozess,...) (returns double)Feature: Def: computes a property of an object (BiIdO, Link, Class, Process, ...) (returns double)
Fuzzy Conditions: wie gehabt (thresholds sind einfache spezielle Fälle einer Fuzzy Condition)Fuzzy Conditions: as usual (thresholds are simple special cases of a fuzzy condition)
4) Proc. Expressions können eingesetzt werden als Algorithmus: Def.: verändert Netzstruktur durch erzeugen/verändern/löschen von Objekten/Links/Attributen4) Proc. Expressions can be used as an algorithm: Def .: changes network structure by creating / modifying / deleting objects / links / attributes
Feature: Def: berechnet eine Eigenschaft eines Objekts (BiIdO ,Link , Klasse, Prozess,...) (returns double)Feature: Def: computes a property of an object (BiIdO, Link, Class, Process, ...) (returns double)
Domain: Def: beschreibt eine Menge von Objekten auf Basis der Netzstruktur unter Berücksichtigung des aktuellen Prozessierungszustands.Domain: Def: describes a set of objects based on the network structure, taking into account the current processing status.
Fuzzy Conditions: wie gehabt (thresholds sind einfache spezielle Fälle einer Fuzzy Condition)Fuzzy Conditions: as usual (thresholds are simple special cases of a fuzzy condition)
Process: wie gehabtProcess: as usual
5) Expressions haben eindeutige Namen.5) Expressions have unique names.
6) Domain: Net-Struktur (global / local) + Fuzzy Condition (Expression) global: all objects, all classes, image object level, etc.. local: current object, neighbors, super/sub object(s), ... Fuzzy Condition: additional expression
7) Class:6) domain: net structure (global / local) + fuzzy condition (expression) global: all objects, all classes, image object level, etc .. local: current object, neighbors, super / sub object (s), .. Fuzzy Condition: additional expression 7) Class:
* can störe an arbitrary number of named expressions * predefined names:* can interfere with arbitrary number of named expressions * predefined names:
* classify = aktuelle class description* classify = current class description
* sgmn = std. segmentierverfahren für diese Objekte* sgmn = std. segmentation method for these objects
* general = std. generalisierverfahren für diese Objekte* general = std. generalization procedure for these objects
8) Class Centric Development:8) Class Centric Development:
ex: for all objects on img obj level main with membership to nuclei. classify > 0.2 : assign nucleiex: for all objects on img obj level main with membership to nuclei. classify> 0.2: assign nuclei
* Class expressions können über "class_name"."expression_name" adressiert werden.* Class expressions can be addressed via "class_name". "Expression_name".
* Class expressions können "Platzhalter-Expressions" initialisieren.* Class expressions can initialize "wildcard expressions".
ex2: for all objects on img obj level main with assigned to nuclei: apply nuclei. generalizeex2: for all objects on img obj level main with assigned to nuclei: apply nuclei. generalize
Variablen und entsprechende ProzesseVariables and corresponding processes
Die zweite Art der programminternen Kommunikation geschieht mittels Variablen. Sie können als Container verstanden werden, die Informationen bei Programm-Objekten und -Verknüpfungen (also bei CN-En) abholen können und bei anderen Programmobjekten und -Verknüpfungen zur Verfügung stellen oder abspeichern. Im Fall des Abspeicherns handelt es sich um lokale Variablen, oder Objektvariablen, und im anderen Fall des Transports und des "zur Verfügungsteilens" um globale Variablen, oder Szenenvariablen.
In erster Linie haben vor allem die globale Variablen die Aufgabe der programminternen Kommunikation während lokale Variablen hauptsächlich einmal ermittelte Ergebnisse verknüpft mit CN En abspeichern und sie für spätere Kommunikationen bereitstellen. Das Abspeichern von Ergebnissen in oder an Objekte oder Verknüpfungen kann mehrere Gründe haben. Zum einen kann der Rechenaufwand zum Berechnen eines Ergebnisse sehr groß sein und das Ergebnis an mehreren Stellen des Programmablaufs benötigt werden. Speichert man die Werte lokal ab, muss die Berechnung nur einmal geschehen und die Werte können immer wieder abgerufen werden. Zum anderen kann es sein, dass eine Neuberechnung des Ergebnisses zu einem späteren Zeitpunkt des Programmablaufs gar nicht mehr möglich ist. Da das gesamte Programmobjektnetz dynamisch ist, Beziehungen und Objekte (also das gesamte CN) sich ständig ändern, werden sich auch die Ergeb- nisse von Berechnungen ändern. Alte Ergebnisse können aber von Bedeutung sein, wenn z.B. die Entwicklungsgeschichte eines Objekts als Grundlage einer Segmentierungsentscheidung dient.The second type of internal program communication is done by means of variables. They can be understood as containers that can fetch information from program objects and links (ie at CN-En) and make or store them in other program objects and links. In the case of saving, these are local variables, or object variables, and in the other case of transport and "sharing" around global variables, or scene variables. First and foremost, the global variables have the task of intra-program communication, while local variables primarily store results once associated with CN En and provide them for later communications. Saving results to or to objects or links can have several reasons. On the one hand, the computational effort for calculating a result can be very large and the result can be required at several points in the program sequence. If you store the values locally, the calculation only has to be done once and the values can be retrieved again and again. On the other hand, it may be that a recalculation of the result at a later time of the program flow is no longer possible. Since the entire program object network is dynamic, relationships and objects (that is, the entire CN) are constantly changing, so will the results of calculations. However, old results can be important if, for example, the history of the development of an object serves as the basis for a segmentation decision.
Globale Variablen haben nur einen Sinn, wenn sie Hand in Hand mit entsprechenden Segmentierprozessen gehen, also deren Inhalte bzw. Werte auch tatsächlich abgeholt, verwendet oder abgelegt werden können. Sie müssen also in der Lage sein alle im Programmnetzwerk relevanten Daten aufnehmen zu können. Dementsprechend müssen diese Aktionen auch als Segmentierprozesse formulierbar sein. Zum Beispiel muss der Zugriff auf die Klassenhierarchie möglich sein, um dortige Veränderungen automatisch in den Programmablauf einfließen lassen zu können. In der Textanalyse muss es also möglich sein, den Namen der Klassen (bzw. die Konzepte in der Ontologie), als String in eine Variable schreiben zu können und diesen String mit den Textinhalten, bzw. Worten, der Textinputdaten vergleichen zu kön- nen. Das beinhaltet bereits zwei Arten von Prozessen: "schreibe Klassenname als String in Variable" und "vergleiche in Form einer Bedingung" (z.B.
= oder Fuzzy-Vergleich) den Inhalt der Variablen mit Textobjekten. Diese Aktion scheint auf den ersten Blick sinnlos zu sein, da man im Programmablauf ja direkt den Klassennamen verwenden könnte, ohne die Klassenhierarchie (Ontologie ist hier immer eingeschlossen) bemühen zu müssen. Dies setzt aber voraus, dass der CL-Programmierer alle Einträge der Klassenhierarchie kennt, auch die zukünftigen, was wir aber ausdrücklich vermeiden wollen. Wie bereits weiter oben erwähnt, kann sich die Klassenhierarchie ändern und man möchte dann nicht nach allen entsprechenden Stellen im Programmablauf suchen müssen, um dort ebenfalls dann alle entsprechen- den Einträge ändern zu müssen. Das sollte automatisch geschehen und ist über die Navigation und die Domänen auf die folgende Art zu realisieren (am Textbeispiel erklärt).Global variables only have a meaning if they go hand in hand with corresponding segmentation processes, ie their contents or values can actually be fetched, used or stored. So you need to be able to record all relevant data in the program network. Accordingly, these actions must also be formulated as segmentation processes. For example, access to the class hierarchy must be possible in order to be able to automatically incorporate changes there into the program flow. In text analysis, it must therefore be possible to write the name of the classes (or the concepts in the ontology) as a string in a variable and to be able to compare this string with the text contents or words of the text input data. This already includes two types of processes: "write class name as string in variable" and "compare in condition" (eg = or fuzzy comparison) the contents of the variables with text objects. This action seems to be meaningless at first glance, because you could directly use the class name in the program flow, without having to try the class hierarchy (ontology is always included here). However, this assumes that the CL programmer knows all the entries in the class hierarchy, including the future ones, which we explicitly want to avoid. As already mentioned above, the class hierarchy can change and you do not want to have to search for all corresponding points in the program flow in order to have to change all corresponding entries there as well. This should happen automatically and can be realized via the navigation and the domains in the following way (explained in the text example).
Genauso wie man nur bestimmte Objekte in den Inputdaten selektiv über die Domänen behandeln kann, ohne genau zu wissen, welche ganz konkret bei einer konkreten Analyse vorkommen oder erst durch Segmen- tierprozesse gebildet werden, so kann man auch unbekannte Klassen, Prozesse, Domänen, Expressionen oder Variablen über die beschriebene Navigation auffinden und behandeln. Bei Inputobjekten verwendet man häufig die Navigation über Klassen und Expressionen: Alle Inputobjekte, die mit einer bestimmten Klasse verknüpft sind und bestimmte Bedingungen erfüllen repräsentieren die Domäne und werden behandelt. Hier geht also die Navigation von den Klassen über die Klassifikationsverknüpfungen zu den Input- Objekten. Entsprechend kann man auch für Klassen vorgehen, wenn man von abstrakteren Klassen zu konkreteren navigiert.Just as one can only selectively treat specific objects in the input data via the domains, without knowing exactly which concretely occur in a concrete analysis or are first formed by segmentation processes, so too can unknown classes, processes, domains, expressions or find and handle variables via the described navigation. Input objects often use class and expression navigation: all input objects that are linked to a particular class and meet certain conditions represent the domain and are treated. So here navigation goes from the classes via the classification links to the input objects. Similarly, one can proceed to classes as one navigates from more abstract classes to more concrete ones.
Wenn z.B. an einer Stelle eines Programmablaufs zur Textanalyse, im Zusammenhang mit Proteinen in zellbiologischer Hinsicht, Proteinnamen automatisch interpretieren möchte, dann muss man im Programm auch die Abkürzungen der Proteine behandeln können. Diese Abkürzungen bestehen in der Regel nur aus drei Buchstaben und sind somit in hohem Maß mehrdeutig. Es ist nun möglich, alle Abkürzungen im Inputtext aufzusuchen, ohne
sie vorher zu kennen. Sie müssen nur in der Klassenhierarchie mit anderen und letztlich mit abstrakteren Klassen verknüpft sein. Dann kann die Navigation und damit die Definition der Domäne über diese Verknüpfungen vorgenommen werden. Wenn also die im Inputtext vorkommenden Abkürzungen in der Ontologie ebenfalls erwähnt sind und z.B. über hierarchische Verknüpfungen mit der Klasse bzw. dem Konzept "Protein" verbunden sind, dann kann man über die Navigation "zu allen Proteinen", dann über die hierarchische Verknüpfung "ist speziell" und mit der Bedingung "Anzahl Buchstaben < 4" diese Teilmenge der Worte im Text, nämlich die Abkürzungen, als Domäne erreichen. Anschließend kann man über Segmentierungsprozesse die Klassifikationsverknüpfungen zwischen der Klasse "Proteinabkürzungen" und den im Inputtext vorkommenden Proteinabkürzungen erstellen. In einem ersten Schritt sind möglicherweise viele der Verknüpfungen falsch, da auch Abkürzungen anderer Begriffe verknüpft werden. Später können andere Prozesse aber zur Korrektur herangezogen werden.For example, if you want to automatically interpret protein names at one point of a text analysis program, in conjunction with proteins in cell biology, then you must also be able to treat the protein shortcuts in the program. As a rule, these abbreviations consist of only three letters and are therefore highly ambiguous. It is now possible to search all abbreviations in the input text, without to know her beforehand. They only need to be linked to others in the class hierarchy and ultimately to more abstract classes. Then the navigation and thus the definition of the domain can be made via these links. Thus, if the abbreviations in ontology appearing in the input text are also mentioned and linked to the class or the concept "protein" via hierarchical links, then you can navigate "to all proteins", then via the hierarchical link " specifically "and with the condition" number of letters <4 "reach this subset of words in the text, namely the abbreviations, as a domain. Then you can create the classification links between the class "Protein Abbreviations" and the protein abbreviations occurring in the input text via segmentation processes. In a first step, many of the joins may be wrong, as abbreviations of other terms are also linked. Later, however, other processes can be used for correction.
Die Prozesse zum Erstellen der Klassifikationsverknüpfungen können unterschiedlicher Art sein. Es kann einen fest installierten Prozess "String- Match" geben, bei dem -falls Klassenname mit Name im Text übereinstim- men- die Klassifikationsverknüpfung erstellt wird. Oder eine Variable kann mit den Namen der Konzepte als "Werte" versehen und mit der Bedingung "Wert der Variablen=Wort-String" die Abkürzungen mit einer Markierung versehen. Diese Markierung (mit z.B. dem Namen: Abkürzung von Proteinen), man kann sie auch erzwungene Klassifikation nennen, dient quasi als Index, denn die Abkürzungen können nun sehr schnell über die erstellten Links zu den Markierungen wieder aufgefunden werden. Zudem ist eine einfache Formulierung der Domäne möglich: "gehe zur Klasse "Abkürzungen von Proteinen" in der Klassenhierarchie und anschließend über Klassifikationsoder Markierungsverknüpfungen zu den Input-Objekten". Die speziell für Ab- kürzungen erstellten Programmabläufe können allesamt auf dieser Domäne ablaufen, die durch diese Quasi-Indizierung sehr schnell gefunden wird.
Variablen müssen dabei keineswegs nur Zahlen oder Strings sein. Vor allem zum Trainieren eines Programms (aber auch beim normalen Programmablauf) ist es angebracht und bequemer, auch Tabellen, Vektoren, Variablensätze, oder sogar Datenblöcke, wie Bilder oder Texte, als Inhalte von Variablen zu ermöglichen und somit auch die programminterne Kommunikation dieser Daten. Ein Variablensatz besitzt einen Namen, wie alle Variablen, und ist eine Menge von Variablen plus deren Werte.The processes for creating the classification links can be of different types. There can be a fixed "String Match" process, where-if the class name matches the name in the text-the classification link is created. Or a variable can label the names of the concepts as "values" and mark the abbreviations with the condition "value of variables = word-string". This label (with the name abbreviation of proteins, for example), you can also call it forced classification, serves as an index, because the abbreviations can now be found very quickly on the links created to the markers again. In addition, a simple formulation of the domain is possible: "go to class" abbreviations of proteins "in the class hierarchy and then via classification or labeling links to the input objects". The programs that are created specifically for abbreviations can all run on this domain, which is found very quickly by this quasi-indexing. By no means do variables have to be just numbers or strings. Especially for training a program (but also in the normal program sequence) it is appropriate and convenient to also tables, vectors, variable sets, or even blocks of data, such as images or texts, as the contents of variables to allow and thus the internal program communication of these data. A variable set has a name, like all variables, and is a set of variables plus their values.
In diesem Sinn kann ein repräsentatives Bild oder eine Schablonenum- riss eines in einem Bild zu findenden Objekts eine lokale Variable in der Wissenshierarchie darstellen. Bei Bedarf kann diese Variable durch Navigation abgerufen werden, zu bestimmten Bildobjekten transportiert werden und dort zu einem Segmentierprozess verwendet werden (z.B. Klassifikation durch Bestimmung des Skalen- und rotationsinvarianten besten Deckungs- grads). Ähnliches gilt für Tabellen oder Texte oder andere Daten wie DNA- Code. Tabellenbeispiele, Textbeispiele (viele Worte) oder DNA-Codebeispiel können als Vorlage dienen und mit einem konkreten, bereits segmentierten Inputobjekt verglichen werden. Dieser Vergleichs-Segmentierungsprozess ist dann natürlich in der Regel kein simpler Match, sondern einer, der Verzer- rungen zulässt.In this sense, a representative image or template outline of an object to be found in an image may represent a local variable in the knowledge hierarchy. If necessary, this variable can be retrieved by navigation, transported to specific image objects and used there for a segmentation process (e.g., classification by determining the scale-invariant and rotationally-invariant best coverage). The same applies to tables or texts or other data such as DNA code. Table examples, text examples (many words) or DNA code example can serve as a template and be compared with a concrete, already segmented input object. Of course, this comparison segmentation process is not usually a simple match, but one that allows distortions.
Beim automatischen oder semi-automatischen Trainieren eines CPs werden dem Programm die gewünschten Endergebnisse in irgend einer Form mitgeteilt. Durch hierarchische Annotation kann ein Nutzer festlegen, welche Art von Objekten gefunden werden soll. Es kann aber auch interaktiv geschehen, indem ein Anwender bestimmte Prozesse (mit variierenden Parametern) auf einen Datensatz anwendet und dabei einige gewünschte Objekte entstehen oder Objekte manuell markiert. Die automatisch gefundenen richtigen Objekte kann der Anwender ebenfalls markieren. Das Programm kann dann automatisch aus diesen markierten Objekten Parameter extrahieren und mit diesen Parametern neue Prozesse durchführen, die wieder zu
Objekten führen, die erneut markiert werden können, usw. Letztlich steht am Ende dieser Aktion ein Parametersatz zur Verfügung, der das optimierte Ablaufprogramm repräsentiert, dadurch bestimmt, dass eine optimale Übereinstimmung (beste Gesamt-Klassifikation aller Objekte) mit den markierten Objekten besteht. In diesen Parametern können Segmentier- und Ablaufparameter (auch Klassifikation) für alle En stehen. Damit kann also auch festgelegt werden, welche Expressionen, Klassen oder Prozessblöcke aktiv sein sollen und in welcher Reihenfolge. Es ist an dieser Stelle als selbstverständlich vorausgesetzt, dass im CN Merkmale für alle En zur Verfügung stehen. So müssen für ein selbst-lernendes CP auch Segmentierprozesse oder Blöcke daraus über Merkmale wie Prozesslaufzeit klassifizierbar sein.During automatic or semi-automatic training of a CP, the program will be informed of the desired final results in some form. Hierarchical annotation allows a user to specify what kind of objects to find. However, it can also be done interactively by a user applying certain processes (with varying parameters) to a data set, creating some desired objects or manually marking objects. The user can also mark the automatically found correct objects. The program can then automatically extract parameters from these selected objects and perform new processes with these parameters Finally, at the end of this action, a parameter set is available that represents the optimized sequence program, which determines that there is an optimal match (best overall classification of all objects) with the selected objects. In these parameters, segmentation and execution parameters (also classification) can stand for all En. Thus, it can also be determined which expressions, classes or process blocks are to be active and in which order. It is taken for granted that CN features are available to all En. Thus, for a self-learning CP, segmentation processes or blocks thereof must also be classifiable via features such as process runtime.
Da nun üblicherweise nicht nur eine Art (eine Klasse) von Objekten aufgefunden werden soll, sondern eine ganze Vielfalt davon, müssen auch viele solcher Parametersätze und damit möglicherweise eine sehr große Anzahl von Parameter eintrainiert werden. Wenn also die Anzahl der Parameter unübersichtlich groß wird, macht es Sinn, Variablen mit ihren Werten hierarchisch zu strukturieren in Form von Gruppen mit eigenem Namen. Parametersätze sind aber noch mehr als hierarchisch strukturierte Variablen, denn unterschiedliche Parametersätze können die gleichen Variablen jedoch mit unterschiedliche Werten beinhalten. Ein Parametersatz ist also eine Art n- dimensionaler Vektor mit einer Anzahl von n Werten und mit frei wählbaren Dimensionen (dargestellt durch die Namen der Variablen). Wird ein Parametersatz aktiviert, werden die Werte des Satzes automatisch in die dazu- gehörigen Variablen geschrieben. Das bedeutet, dass an unterschiedliche Stellen des Programmablaufs unterschiedliche Parametersätze wirksam sein können, und damit möglicherweise die gleichen Variablen aber mit unterschiedlichen Werten.Since now usually not just one kind (a class) of objects is to be found, but a whole variety thereof, also many such parameter sets and thus possibly a very large number of parameters must be trained. So if the number of parameters becomes confusing, it makes sense to hierarchically structure variables with their values in the form of groups with their own names. Parameter sets are even more than hierarchically structured variables, because different parameter sets can contain the same variables but with different values. A parameter set is therefore a kind of n-dimensional vector with a number of n values and with freely selectable dimensions (represented by the names of the variables). If a parameter set is activated, the values of the block are automatically written to the corresponding variables. This means that different parameter sets can be effective at different points in the program sequence, and thus possibly the same variables but with different values.
C. Automatische wissensgetriebene Segmentierung vonC. Automatic Knowledge Driven Segmentation of
Tabelleninhalten zum Zweck deren automatischer Deutung.
Auch im Fall der Tabellenkalkulation generieren die CNT-Softwarelö- sungen automatisch nicht-vordefienierte aber dennoch sinnvolle Objekte und Beziehungen , Sinnobjekte, aus bzw. zwischen Untermengen der Daten. Welche Objekte und Verknüpfungen automatisch erstellt werden, kann in einer Wissensstruktur, der Klassenhierarchie, beschrieben werden. Sinnobjekte können auch Objekte sein (bzw. sind dieses in der Regel), die nur die Funktion haben, als Zwischenobjekte zu dienen, um letztlich die Segmentierung der eigentlichen Sinnobjekte zu ermöglichen. Die Art der automatisch zu segmentierenden Objekte kann also auf abstrakte Weise in Form einer hierarchischen Wissensnetzes separat vom übrigen Programmablauf formuliert werden. Damit unterscheidet sich die Tabellenkalkulation nach der CNT- Technologie auf dramatische Weise von konventionellen Tabellenkalkulationen.Table contents for the purpose of their automatic interpretation. Even in the case of spreadsheets, the CNT software solutions automatically generate non-predefined yet useful objects and relationships, meaning objects, from or between subsets of data. Which objects and links are created automatically can be described in a knowledge structure, the class hierarchy. Sense objects can also be objects (or are these as a rule), which only have the function of serving as intermediate objects in order to ultimately enable the segmentation of the actual meaning objects. The type of objects to be automatically segmented can thus be formulated in an abstract manner in the form of a hierarchical knowledge network separately from the rest of the program sequence. This makes spreadsheets based on CNT technology dramatically different from conventional spreadsheets.
Automatisch und prozessautomatisch generierte Verknüpfungen dienen der Klassifikation und dem schnellen Auffinden von zu behandelten Sinnobjekten. Sinnobjekt können ein nicht-vordefiniertes Segment einer Zeile oder Spalte sein oder ein nur sehr abstrakt wissensbasiert beschriebenes und prozesshaft definiertes Objekt, das aus hierarchisch verknüpften Zeilen oder Spalten oder Segmenten davon besteht. In einem multimodalen Ansatz besteht ein solches Objekt aus multimodalen Teilen also z.B. aus Bild-, Text- und Tabellensegmenten.Automatic and process-automatically generated links are used to classify and quickly find meaning objects to be treated. A meaning object can be a non-predefined segment of a row or column, or an object that is described in a very abstractly knowledge-based and process-defined manner, which consists of hierarchically linked rows or columns or segments thereof. In a multimodal approach, such an object consists of multimodal parts, e.g. from image, text and table segments.
Die gesamte in bereits existierenden beschriebenen CN-Struktur wird dazu benötigt. Zusätzlich sind jedoch noch spezielle, tabellenspezifische Strukturen notwendig. Zu diesen speziellen Strukturen zählen optional Transformationen von Tabellen in Bilder mit thematischen Ebenen, um Tabellen im gleichen CN behandeln zu können wie Bilder. Dies vereinfacht die Datenintegration und die Bedienbarkeit, da die meisten Funktionen nur einmal für beide Anwendungen benötigt werden.
Weitere spezielle Strukturen sind die folgenden:The entire CN structure described in already existing is needed. In addition, however, special, table-specific structures are necessary. These special structures optionally include transformations of tables into thematic-level images to treat tables in the same CN as images. This simplifies data integration and usability as most features are needed only once for both applications. Other special structures are the following:
Zum benutzerfreundlichen Bearbeiten der Tabellen sollte es möglich sein, Sinnobjekte innerhalb von Tabellen (bzw. von aus Tabellen generierten Bildern plus thematischen Ebenen) in neue Tabellen zu transferieren. Das erfordert die folgenden Segmentierprozesse: "Erzeuge leere Tabelle mit Zeilenlänge x und Spaltenlänge y", "definiere Sinnobjekt Y (Tabellenunter- menge) als Sinntabelle Z ", "schreibe Sinntabelle in lokale Variable LV" und "fülle leere Tabelle mit Inhalt von LA" oder "schreibe Inhalt von LA in leere Tabelle an Positionen x,y". Dies bedeutet, Variablen müssen neben Zahlen und Buchstabenketten (Strings) auch Tabellen beinhalten können. Es wäre allerdings auch (etwas umständlicher) möglich über die oben beschriebene Domänennavigation Eintrag für Eintrag des Sinnobjektes an die gewünschte Stelle der leeren Tabelle zu transferieren. In diesem Fall kommt man mit String- und Zahleninhalten von Variablen aus.For the user-friendly editing of the tables, it should be possible to transfer meaning objects within tables (or from images generated from tables plus thematic levels) into new tables. This requires the following segmentation processes: "Create empty table with row length x and column length y", "define meaning object Y (table subset) as sense table Z", "write sense table in local variable LV" and "fill empty table with content from LA" or "write content of LA in empty table at positions x, y". This means that variables must be able to contain numbers and strings as well as tables. However, it would also be possible (somewhat more cumbersome) to transfer entry by entry of the object of meaning to the desired location of the empty table via the domain navigation described above. In this case, one comes with string and number contents of variables.
So wie in der Bildanalyse konventionelle Prozesse, wie Mittelungs- oder Kantenfilter, auch in die CNT Einzug gehalten haben, so ist dies auch für die Tabellenkalkulation notwendig. Multiplikationen oder allgemein mathematische Operationen einer Zeile oder Spalte mit einer anderen oder auch das Umsortieren von Zeilen und Spalten, werden als Segmentierprozesse angeboten.Just as in image analysis conventional processes, such as averaging or edge filters, have also found their way into the CNT, this is also necessary for spreadsheets. Multiplication or general mathematical operations of one row or column with another, or else the reordering of rows and columns, are offered as segmentation processes.
Tabellen sollten über Domänen und Navigation hierarchisch strukturierbar sein. Es muss zum Navigieren folgende Arten von Formulierungen möglich sein: "gehe zur Spalte mit dem Namen XYZ und mit der Merkmalsexpressionen Spaltenlänge=10 und Spaltendurchschnittswert<100, von dort zu der linken Nachbarspalte, von dort entlang der hierarchischen Ver- knüpfung "ist Teil von" zum Überobjekt von dort entlang aller Verknüpfungen "hat Teile" zu allen Unterobjekten. Diese am Ende der Navigation stehende
Untermenge der Tabelle repräsentiert die Domäne auf der ein Segmentie- rungsprozess wie "finde den Tabelleneintrag in der Domäne mit dem maximalem Wert" ablaufen kann.Tables should be hierarchically structured via domains and navigation. The following types of phrases must be possible to navigate: "go to the column with the name XYZ and with the feature expressions column length = 10 and column average value <100, from there to the left neighbor column, from there along the hierarchical link" is part of "to the overobject from there along all the links" has parts "to all subobjects.These are at the bottom of the navigation Subset of the table represents the domain on which a segmentation process such as "can find the table entry in the domain with the maximum value" expires.
Die Klassifikation von Sinnobjekten muss möglich sein, indem Klassen von Sinnobjekten mit Expressionen als Inhalten (oder Klassen verknüpft mit Expressionen) formuliert werden können. Es muss möglich sein, folgende Arten von Expressionen zu formulieren: "Sinnobjekt ABC hat als Unterobjekte die als KLM und die als NOP klassifizierten Objekte mit dem Mermal D der KLM-Objekte <5 und dem Merkmal E der NOP-Objekte >100". Auch Fuzzy-Merkmale können formuliert werden.The classification of meaning objects must be possible by formulating classes of meaning objects with expressions as content (or classes linked to expressions). It must be possible to formulate the following types of expressions: "Sense object ABC has as sub-objects the objects classified as KLM and the objects classified as NOP with the Mermal D of the KLM objects <5 and the feature E of the NOP objects> 100". Fuzzy features can also be formulated.
D. Automatischen Segmentieren, Analysieren und Deuten von komplexen drei- und mehrdimensionalen Bildern durch Verknüpfung von zweidimensionalen Objekten.D. Automatic segmentation, analysis and interpretation of complex three-dimensional and multi-dimensional images by linking two-dimensional objects.
Zusätzlich zu üblichen dreidimensionalen Segmentierverfahren beinhaltet die CNT für mehrdimensionale Bilder die Möglichkeit ein vierdimensi- nales Bild (ein zeitlich veränderliches dreidimensionales Bild) schichtweise zu segmentieren und zu klassifizieren und anschließend durch Verknüpfung der zweidimensionalen Objekte drei- oder vierdimensionale Objekte zu erzeugen. Dieser Vorgang muss als ein evolutionärer angesehen werden, bei dem zwei- und drei/vierdimensionale Analysen sich in einem in einem Wechselspiel einander ablösen.In addition to conventional three-dimensional segmentation techniques, the multidimensional image CNT includes the ability to segment and classify a four-dimensional image (a time-varying three-dimensional image) in layers, and then create three- or four-dimensional objects by linking two-dimensional objects. This process must be regarded as an evolutionary one in which two and three / four-dimensional analyzes alternate in an interplay of one another.
Die Schichtstrukturen können dabei als ein Bild mit unterschiedlichen Kacheln dargestellt werden oder als eine Anzahl von Bildern, die nach ihrer geometrischen vierdimensionalen Lage sortiert oder markiert sind.The layer structures can be represented as an image with different tiles or as a number of images that are sorted or marked according to their geometrical four-dimensional position.
Es müssen Merkmale zur Verfügung stehen, bei denen automatisch verknüpfte zweidimensionale Objekte als drei- oder vierdimensionale Ob-
jekte betrachtet werden. Beispiele solcher Merkmale sind Volumen oder Geschwindigkeit eines Objekts.There must be features that automatically link two-dimensional objects as three- or four-dimensional objects. be considered. Examples of such features are volume or velocity of an object.
Das intelligente Segmentieren von mehrdimensionalen Bildern macht das Visualisieren der Bildinhalte in mehrdimensionalen Bildern auf sinnvolle Weise überhaupt erst möglich. Die unterschiedlichen Objekte von Interesse können durch unterschiedliche Farben drei/vierdimensional dargestellt werden und die weniger interessanten Objekte zu einem gewünschten Maß transparent dargestellt werden.The intelligent segmentation of multi-dimensional images makes the visualization of image content in multi-dimensional images meaningful in the first place. The different objects of interest can be represented three / four-dimensionally by different colors and the less interesting objects can be displayed transparently to a desired degree.
E. Automatische Datenintegration durch verknüpfte simultane Analyse und Deutung, unterschiedlicher bzw. heterogener Tabellen und anderer Arten von Daten wie Texte, Zahlen, Vektoren, Spektren, Bilder und Präsentationsdokumente und sogar CL-interne Strukturen wie Konzepte und Programmabläufe.E. Automatic data integration through concurrent simultaneous analysis and interpretation, different or heterogeneous tables and other types of data such as text, numbers, vectors, spectra, images and presentation documents, and even CL internal structures such as concepts and program flows.
F. Visualisierung der Resultate als Schaubilder.F. Visualization of results as graphs.
G. Neue Computersprache zum Erstellen selbst-lernender Pro- gramme.G. New computer language for creating self-learning programs.
Wie bereits weiter oben erwähnt ist, bedarf es nur der Annotation der Input-Daten und der Möglichkeit, Trainingergebnisse (Lernergebnisse) in Form von Tabellen oder Parametersätzen abspeichern zu können. Ansons- ten braucht es keine besonderen Ausprägungen der CNT für diese Anwendung, die über die multi-modale Anwendung hinausginge. Eine Ausnahme bildet nur der Fall von extrem komplexen Parametersätzen:As already mentioned above, it is only necessary to annotate the input data and to be able to save training results (learning results) in the form of tables or parameter sets. Otherwise, there is no need for special CNT features for this application beyond the multi-modal application. An exception is only the case of extremely complex parameter sets:
Falls die Anzahl der auszuprobierenden Parameter sehr groß wird, ist das Durchlaufen aller Kombinationsmöglichkeiten in vernünftiger Zeit nicht mehr möglich. Dann müssen evolutionäre und genetische Algorithmen in der
CNT eingesetzt werden könnenIf the number of parameters to be tested becomes very large, it is no longer possible to go through all possible combinations in a reasonable time. Then evolutionary and genetic algorithms must be in the CNT can be used
Neu sind folgende Eigenschaften der Programmiersprache (stichwortartig):New features of the programming language (keyword-like):
I .Erweiterung der Sprache auf globale Variablen, die mit Hilfe von entsprechenden Prozessen Informationen unterschiedlicher Art (Strings, Vektoren, Tabellen,..) zwischen (und innerhalb) Weltwissen, Programmablauf und lnputdaten(kurz: allen En) transportieren können.I. Extension of the language to global variables which, with the help of corresponding processes, can transport information of different kinds (strings, vectors, tables,...) Between (and within) world knowledge, program flow and input data (in short all En).
2. Segmentierung und Klassifikation von Prozessen und Wissensobjekten.2. Segmentation and classification of processes and knowledge objects.
3. Prozessgetriebene Erstellung von Verknüpfungen für alle Pro- grammobjekte (alle En).3. Process-driven creation of links for all program objects (all En).
4. Behandlung der vernetzten Objekte als hierarchisch übergeordnete Objekte, die Eigenschaften besitzen können und die wiederum zu hierarchisch höheren Objekten vernetzt werden können, u.s.w.4. Treatment of the networked objects as hierarchically superior objects that may have properties and which in turn can be networked to hierarchically higher objects, and so on.
5. Erweiterung des Domänenbegriffes auf Untermengen des Weltwissens und anderen En des Programmablaufs unter Einbeziehung von CP- erstellten Verknüpfungen.5. Extension of the domain concept to subsets of world knowledge and other enums of the program flow including CP-created links.
6. Anwendung der Sprache auf heterogene Tabellen aller Art (darunter u.a. auf Business-Intelligence) mit entsprechend themenspezifisch ange- passten Prozessen und Objekteigenschaftsberechnungen.6. Application of the language to heterogeneous tables of all kinds (including, but not limited to, business intelligence) with corresponding topic-specific processes and object property calculations.
7. n-dimensionale Bild- und Tabellenverarbeitung durch die Möglichkeit mehrere Bilder oder Tabellen zu laden (oder auch nur Bilder mit dem Pro- zess: lade Tabelle als Bild) und diese und ihre Objekte prozedural zu verlin-
ken.7. n-dimensional image and table processing by being able to load several images or tables (or even images with the process: load table as image) and to link these and their objects in a procedural manner. ken.
8. Multimodale Daten laden und verarbeiten zu können durch multi-mo- dale Navigation und Domänen, also aus multimodalen Daten durch multimo- dale Navigation sehr heterogene Untermengen ausschneiden zu können. Segmentierprozesse können multimodale Domänen zu En erheben und diese mit multimodalen Expressionen und Merkmalen weiter segmentiert und klassifiziert werden.8. Multimodal data can be loaded and processed through multi-mo- dal navigation and domains, ie, multimodal data can be cut out by multimodal navigation to create very heterogeneous subsets. Segmentation processes can raise multimodal domains to En and further segment and classify them with multimodal expressions and features.
Die Erfindung im EinzelnenThe invention in detail
Fig. 1 zeigt graphisch die Objektklassen der Einheiten, En.Fig. 1 graphically shows the object classes of the units, En.
Fig. 2 zeigt das zugehörige Strukturdiagramm.Fig. 2 shows the associated structure diagram.
Fig. 3 zeigt auf eine andere Weise die Objektklassen in der CL:Fig. 3 shows in another way the object classes in the CL:
Fig. 4 zeigt das zu Fig. 3 zugehörige Strukturdiagramm:4 shows the structure diagram associated with FIG. 3:
Konsequenzenconsequences
Cognition-Language ermöglicht das Erstellen von Software-Lösungen zur Deutung von komplexen Datensätzen. Sie ist speziell für Problemstellungen mit nicht-eindeutigen Lösungen konstruiert. Beispiel einer eindeutigen Lösung ist die Summe einer Spalte in einer Tabelle oder das Auffinden der größten Zahlenwerte in der Tabelle (können ein oder mehrer Einträge sein). Alle Rechenmaschinen dieser Welt, sofern sie nicht defekt sind, werden für die gleiche Tabelle zu dem gleichen Ergebnis gelangen. In Fällen jedoch, in denen die Anzahl der notwendigen Rechenoperationen für ein eindeutiges Resultat unbehandelbar groß werden, müssen neue Lösungswege beschrit- ten werden. Die Fragestellung "welcher Zug in einer gegebenen Situation
eines Schachspiels ist der optimale?" wird von unterschiedlichen Rechnern unterschiedlich beantwortet. Die Antwort hängt davon ab, wie viele Züge der Rechner in annehmbarer Zeit vorausberechnen kann (alle Züge kann kein Rechner ausrechnen) und mit welchen Strategien er ausgestattet ist. Oft kann dabei nicht einmal bewiesen werden, welche Strategie eindeutig die bessere ist. Eine noch dramatisch verschärfte Situation findet man in Wahrnehmungsproblemen vor. Der Inhalt einer komplexen Tabelle wird wahrscheinlich von 100 verschiedenen Personen auf 100 verschiedene Arten gedeutet und kann von heutigen Computerprogrammen nur sehr primitiv oder überhaupt nicht gedeutet werden.Cognition-Language enables the creation of software solutions for the interpretation of complex data records. It is specially designed for problems with ambiguous solutions. An example of a unique solution is the sum of a column in a table or finding the largest numeric values in the table (can be one or more entries). All calculating machines in the world, if they are not defective, will arrive at the same result for the same table. However, in cases where the number of necessary arithmetic operations for unambiguous results becomes untreatable, new approaches have to be taken. The question "which train in a given situation The answer depends on how many moves the calculator can predict in a reasonable amount of time (all moves can not be calculated by a calculator) and which strategies it is equipped with Once again, which strategy is clearly the better One can find a dramatically aggravated situation in perceptual issues The content of a complex table is probably interpreted by 100 different people in 100 different ways and can only be interpreted very primitively or not at all by today's computer programs become.
Ein anderes Beispiel von Nicht-Berechenbarkeit: Die Anzahl der Kombinationsmöglichkeiten von Pixeln eines Bilds zu einem Objekt ist so riesig, dass kein Rechner nur annähernd alle möglichen Objekte erstellen und auf ihre Eigenschaften untersuchen kann. Somit kann kein Rechner das "beste" Objekt eines Bilds eindeutig finden (außer in trivialen Fällen). Die Unberechenbarkeit trifft vor allem dann zu, wenn die Bedeutung von Zahlenblöcken (oder Bildobjekten) erst durch Beziehungen zu anderen Zahlenblöcken (oder Bildobjekten) definiert werden kann (was in fast allen Fällen auch tatsächlich so gegeben ist). In solchen Fällen, also in den Normalfällen eines Deutungs- problems, explodieren die Kombinationsmöglichkeiten ins Unermessliche. Hierin, in der Komplexität der Aufgabe, besteht der Unterschied zwischen einer Tabellenkalkulation und einer Tabellendeutung.Another example of non-predictability: The number of possible combinations of pixels of an image to an object is so huge that no computer can create only approximately all possible objects and examine their properties. Thus, no computer can unambiguously find the "best" object of an image (except in trivial cases). The unpredictability is especially true when the meaning of blocks of numbers (or image objects) can be defined only by relationships to other blocks of numbers (or image objects) (which in almost all cases is actually so given). In such cases, that is, in the normal cases of an interpretation problem, the combination possibilities explode to an immeasurable degree. Herein, in the complexity of the task, is the difference between a spreadsheet and a table meaning.
Die Natur hat für solche unberechenbaren Situationen eine Strategie entwickelt: Evolution in kleinen Schritten über primitive Lebensformen zu komplexeren. Mit der Cognition-Language wird eine Sprache angeboten, die auf natürliche Weise eine Evolution in kleinen Schritten von Bedeutungsblöcken innerhalb von Datenstrukturen erlaubt, von primitiven Bedeutungsblöcken zu ausgefeilteren. Bei diesem Vorgehen sind individuelle Behandlun- gen der Bedeutungsblöcke notwendig: unterschiedliche Bedeutungen (auch wenn sie noch primitiv sind) erfordern unterschiedliche Behandlungen.
Hierbei kann ein primitiver Bedeutungsblock eine einzige Zahl einer Tabelle sein, wenn sie von den anderen Zahlen drastisch abweicht. Diese Zahl ist aber Bestandteil einer größeren Einheit z.B. einer Spalte. Somit kann die ganze Spalte eine besondere Bedeutung erlangen und damit auch für sie eine spezielle Behandlung notwendig machen. Es kann dann aber auch notwendig sein, dass für andere Spalten, die zu dieser einen eine besondere Beziehung haben, ebenfalls eine besondere (evtl. andere) Behandlung erforderlich wird.Nature has developed a strategy for such unpredictable situations: evolution in small steps over primitive life forms to more complex ones. The cognition language provides a language that naturally allows small-step evolution of blocks of meaning within data structures, from primitive blocks of meaning to more sophisticated ones. In this approach, individual treatment of the meaning blocks is necessary: different meanings (even if they are still primitive) require different treatments. Here, a primitive semantic block can be a single number of a table if it deviates drastically from the other numbers. However, this number is part of a larger unit eg a column. Thus, the whole column can gain a special meaning and thus make a special treatment necessary for them. However, it may also be necessary for other columns that have a special relationship to this one to also require special (possibly different) treatment.
Mit der CL mit den Konzepten, Markierungen und den Domänen wird eine lokale Behandlung ermöglicht und eine schrittweise Entwicklung vomWith the CL with the concepts, markings and the domains a local treatment is enabled and a gradual development of the
Einfachen zum Ausgefeilten. Die Trennung von Wissen und Prozessen macht die Programme übersichtlicher und vereinfacht Ihre Erstellung und ihre kontinuierliche Verbesserung und die Fehlersuche.Simple to the sophisticated. The separation of knowledge and processes makes the programs clearer and simplifies your creation and continuous improvement and troubleshooting.
Tabellen DeutungTables interpretation
Tabellen und digitale Bilder haben eine ähnliche Struktur: Sie bestehen aus einem n-dimensionalen geordneten Feld von Zahlenwerten. In Bildern spielen neben den Pixeln die Bildobjekte die entscheidenden Rollen, in Ta- bellen sind es neben den Zahlen vor allem die Zeilen und Spalten. Bildobjekte sind in der Regel sehr schwierig zu extrahieren, Zeilen und Spalten auf der anderen Seite sind vorgegeben. Nun sind aber keineswegs Zeilen und Spalten die einzigen interessanten Objekte in Tabellen. Innerhalb einer Spalte oder Zeile können nicht-bezeichnete Unterobjekte enthalten sein. So kann in den monatlichen Umsatzzahlen eines Unternehmens ein Sprung in den Zahlenwerten auftreten. Dies kann durch ein Ereignis ausgelöst worden sein, das in den Tabellen ebenfalls explizit erscheint oder auch nicht (z.B. eine Marketingaktivität). Jedenfalls gibt es eine Zeit vor und eine Zeit nach dem Ereignis, d.h. die Zeile kann in zwei Unterobjekte aufgeteilt werden, ei- nes mit hohem und eines mit geringem Durchschnittswerten. Für eine Deutung der Tabelle kann es durchaus Sinn machen, diese Unterobjekte zu be-
handeln und in Bezug zu anderen Objekten (zu den Marketingaktivitäten) zu setzen. Ein Einbeziehen der Umsatzzahlen der Vorjahre kann dann ebenfalls Sinn machen. Somit ergibt sich also ein ähnliches mehrskaliges Segmentierungsproblem wie bei der Bildanalyse, in diesem Beispiel allerdings nur in einer Dimension.Tables and digital images have a similar structure: they consist of an n-dimensional ordered array of numeric values. In images, the picture objects play the decisive roles in addition to the pixels; in tables, in addition to the numbers, above all the lines and columns. Picture objects are usually very difficult to extract, lines and columns on the other side are given. But by no means are rows and columns the only interesting objects in tables. Within a column or row, undesignated sub-objects may be included. Thus, in the monthly sales figures of a company, a jump in the numerical values occur. This could have been triggered by an event that also appears explicitly in the tables or not (eg a marketing activity). In any case, there is a time before and a time after the event, ie the line can be divided into two sub-objects, one with high and one with low averages. For an interpretation of the table, it may make sense to treat these sub-objects. act and relate to other objects (to the marketing activities). Including the sales figures of the previous years can then make sense. Thus, this results in a similar multi-scale segmentation problem as in the image analysis, in this example, however, only in one dimension.
In Bildern spielen je nach Dimension des Bilds n-dimensionale Nachbarschaften eine große Rolle. Dies ist für Tabellen von geringerer Bedeutung, obgleich sie auch nicht bedeutungslos sind, vor allem wenn Zeilen und Spalten nach bestimmten Kriterien sortiert werden können (Sortierung verändert die Tabelle und kann in Analogie zur Bildanalyse als spezieller Pixelfilter betrachtet werden). Dann kann es Sinn machen, zweidimensionale Objekte zu segmentieren, z.B. Bereiche, in denen Gewinne, Umsätze, Marketingaktivitäten und andere Bereiche sich gleichzeitig auf hohem Niveau befinden. Zwei- oder mehrdimensionale Tabellenprobleme ähnlich denen der Bilder treten in der Praxis allerdings auch ohne Sortierung auf, wenn innerhalb einer Zeile ein Parameter eines Messwerts in kleinen Schritten zu- oder abnimmt und in den Spalten ein anderer Parameter ebenfalls in einigermaßen homogenen Schritten ab- oder zunimmt. Dies wird jedoch nicht der Normalfall sein und direkte Nachbarschaft in Tabellen wird in der Regel nur im Eindimensionalen von Bedeutung sein. Dennoch gibt es übergeordnete Objekte, deren Einträge über die gesamte Tabelle verteilt sein kann. Deshalb ist es wichtig, dass Daten-Objekte automatisch miteinander verknüpft werden können, wenn sie nach einer automatischen Klassifikationsanalyse zusammen ein sinnvolles Objekt ergeben.Depending on the dimension of the picture, n-dimensional neighborhoods play an important role in pictures. This is of minor importance to tables, although they are not insignificant, especially if rows and columns can be sorted according to certain criteria (sorting alters the table and can be considered as a special pixel filter in analogy to image analysis). Then it may make sense to segment two-dimensional objects, e.g. Areas where profits, sales, marketing activities and other areas are at a high level. However, two-dimensional or multi-dimensional table problems similar to those of the images occur in practice even without sorting if within one line one parameter of a measured value increases or decreases in small steps and in the columns another parameter also decreases or increases in fairly homogeneous steps , However, this will not be the norm, and direct neighborhood in tables will usually only be significant in the one-dimensional. Nevertheless, there are higher-level objects whose entries can be distributed over the entire table. Therefore, it is important that data objects can be automatically linked with each other if they together make a meaningful object after an automatic classification analysis.
Dies kann als eine Möglichkeit der mehrdimensionale Segmentierung von Objekten betrachtet werden. In diesem Fall könnte man die Zeitsegmente mit hoher Marketingaktivität mit den Zeitsegmenten hoher Umsätze und den Zeitsegmenten hoher Gewinne velinken. Dieses Netz könnte man in ein hierarchisch höheres Objekt transformieren und im Weltwissen mit der
Klasse „Marketingerfolg" verknüpfen (Klassifikation). Diese Klassifikation kann automatisch geschehen, indem die Klasse Marketingerfolg bestimmte Objektbeschreibungen (Expressionen) erfüllt. Expressionen basieren auf Objekteigenschaftsberechnungen (Features) und können einfache Bedin- gungen (Verhältnis Marketingaufwand zu Gewinnzuwachs beim Sprung kleiner 0.01) oder Fuzzybeschreibungen sein. Eine Klasse kann aus der logischen Verknüpfung von vielen Expressionen sein. Beim Vergleich der Expressionslogik mit den konkreten Objekten ergibt sich eine Klassifikationswahrscheinlichkeit, die im genannten Beispiel die Größe des Erfolgs be- schreibt. Somit können über eine Segmentierung und anschließender Klassifikation alle Marketingerfolge (z.B. seit Bestehen der Firma) mit einer Klassifikationswahrscheinlichkeit größer 0.5 gefunden werden. Diese können nun wiederum miteinander verknüpft werden und ein Objekt auf noch höherer Ebene bilden. Die einzelnen Marketingerfolge können miteinander verglichen werden und auch wiederum mit anderen höheren Objekten in Bezug gesetzt werden, um weitere Korrelationen herauszufinden.This can be considered as a way of multidimensional segmentation of objects. In this case, one could decrease the time segments with high marketing activity with the time segments of high turnover and the time segments of high profits. One could transform this net into a hierarchically higher object and in the world knowledge with the Associate Marketing Success Class (Classification) This classification can be done automatically by the Marketing Success class satisfying certain object descriptions (expressions) Expressions are based on object property calculations (features) and can have simple conditions (ratio of marketing effort to profit increase if jumping less than 0.01) or A class can be a logical combination of many expressions.A comparison of the expression logic with the concrete objects results in a classification probability, which in the example cited describes the size of the success.Thus, all marketing successes can be achieved through segmentation and subsequent classification (for example, since the company was founded) with a classification probability greater than 0.5, which can now be linked together again and form an object on an even higher level be compared with each other and in turn be related to other higher objects in order to find out more correlations.
Die Vorzüge der Domänen können ebenfalls an diesem Beispiel erklärt werden. Die Objekte "Marketingerfolge" waren in den ursprünglichen Daten nicht vorhanden, sie wurden in Cognition-Language erst erzeugt. Nun kann man sie als Domänen verwenden. Domänen leiten die Prozesse an die richtigen Stellen innerhalb der Daten. In unserem Beispiel wäre die Domänenbeschreibung wie folgt: "gehe zu allen Marketingerfolgen ( Klassenbeschreibung der Domäne) mit Klassifikationswahrscheinlichkeit größer 0.7 (Bedin- gung für große Erfolge) in der Zeit nach 1.1.2000 (2. Bedingung, Zeitpunkt AG Gründung) und lasse den Prozess aktiv werden". Der Prozess kann die Berechnung einer Zahl sein z.B. die Varianz des Verhältnisses von Marketingaufwand zu Umsatz der Firma. Hier ist vorausgesetzt, dass im Programm Formeln basierend auf Features und Variablen erstellt werden können (For- meleditor). Damit erhält man ein Maß dafür, ob Marketingaufwand und Firmenumsatz linear miteinander verknüpft sind. Im Einzelnen sieht dieser Vor-
gang in Cognition-Language wie folgt aus.The advantages of the domains can also be explained by this example. The objects "marketing successes" did not exist in the original data, they were first created in Cognition-Language. Now you can use them as domains. Domains direct the processes to the right places within the data. In our example the domain description would be as follows: "go to all marketing successes (class description of the domain) with classification probability greater than 0.7 (condition for great successes) in the period after 1.1.2000 (2nd condition, time AG establishment) and leave the Process become active ". The process can be the calculation of a number, for example the variance of the ratio of marketing effort to turnover of the company. Here it is assumed that formulas based on features and variables can be created in the program (formula editor). This gives you a measure of whether marketing expenses and company sales are linearly linked. In detail, this proposal provides in cognition-language like this.
1. Prozess, Domäne: gehe zu allen Marketingerfolgen (mit den entsprechenden Bedingungen), keine Prozessaktivität; 2. Prozess, (Unter- prozess): Domäne: gehe zu dem Unterobjekt Marketingaufwand, Prozessaktivität: schreibe den Wert des Features "Summe Marketingaufwand" in die globale Variable "Marketingaufwand"; 3. Prozess, (Unterprozess): Domäne: gehe zu dem Unterobjekt Umsatz, Prozessaktivität: schreibe den Wert des Features "Summe Umsatz" in die globale Variable "Umsatz": 4. Prozess, Unterprozess: keine Domäne Prozessaktivität: teile die globalen Variablen "Marketingaufwand" und "Umsatz" durcheinander und schreibe es in die globale Variable "Verhältnis"; 5. Prozess: Domäne: gehe zum Überobjekt (Marketingerfolg), Prozessaktivität: schreibe globale Variable "Verhältnis" in lokale Variable "Marketingaufwand/Umsatz"; 6. Prozess (kein Unterprozess): Domäne: gehe zu allen Marketingerfolgen wie gehabt, Prozessaktivität: berechne den statistischen Wert der Standardabweichung der lokalen Variablen "Marketingaufwand/Umsatz" und schreibe das Ergebnis in eine globale oder lokale Variable mit geeignetem Namen.1st process, domain: go to all marketing successes (with the appropriate conditions), no process activity; 2. Process, (sub-process): Domain: go to the sub-object Marketing Expense, Process Activity: write the value of the feature "Sum Marketing Expenditure" in the global variable "Marketing Expenditure"; 3rd process, (subprocess): domain: go to the subobject sales, process activity: write the value of the "total sales" feature into the global variable "sales": 4th process, subprocess: no domain process activity: divide the global variables " Marketing effort "and" turnover "messed up and write it into the global variable" ratio "; 5. process: domain: go to the over-object (marketing success), process activity: write global variable "ratio" into local variable "marketing effort / sales"; 6th process (no subprocess): domain: go to all marketing successes as usual, process activity: calculate the statistical value of the standard deviation of the local variable "marketing effort / revenue" and write the result into a global or local variable with an appropriate name.
Figur 5 zeigt eine 3D-Analyse eines MR-Bilds.FIG. 5 shows a 3D analysis of an MR image.
Man sieht links für eine 3D-Analyse eines MR-Bilds eines menschlichen Kopfs einmal einen Streifen in Grautönen von ca. 6 Schnitten und ein Seg- mentierresultat (2-fach vergrößert im Vergleich zu den Graubildern). Hier sind die linken (grün) und rechten (rot) Ventrikel und die weiße Gehirnmasse durch Segmentation der Schnitte gefunden. Auf der rechten Seite sind die linken Ventrikel-Schnitte miteinander verknüpft und das Gesamtvolumen des linken Ventrikels kann ermittelt werden. Die Verknüpfung kann visualisiert werden, indem man auf einem einzelnen Schnitt das Objekt mit der Compu- termaus anklickt. Dann könnten (als Beispiel) alle Objekte, die mit diesem verknüpft sind, gleichzeitig automatisch mitmarkiert werden, so wie in den
rechten beiden Streifen gezeigt. Man kann damit überprüfen, ob die automatische Verknüpfung wunschgemäss funktioniert hat. Entsprechendes kann man auch für andere Daten wie Texte oder Tabellen implementieren (sie auch Figur 6).On the left, for a 3D analysis of an MR image of a human head, one sees a strip in shades of gray of about 6 sections and a segmentation result (twice enlarged in comparison to the gray images). Here are the left (green) and right (red) ventricles and the white brain mass found by segmentation of the cuts. On the right side, the left ventricular slices are linked and the total volume of the left ventricle can be determined. The link can be visualized by clicking on the object with the computer mouse on a single cut. Then, as an example, all objects linked to it could be automatically marked at the same time, as in the shown on the right two strips. It can be checked to see if the automatic link has worked as desired. The same can also be implemented for other data such as texts or tables (see also FIG. 6).
Fig. 6 zeigt ein Beispiel einer Tabellenkalkulation.Fig. 6 shows an example of a spreadsheet.
Hier wurde bei einer Tabellenkalkulation in CNT ein Zeilensegment angeklickt und die mit diesem Segment verknüpften sind ebenfalls automatisch selektiert (rot markiert). So kann ein hierarchisch übergeordnetes Objekt vi- sualisiert werden. Die Grauwerte stellen die Zahlenwerte dar. Man kann aber auch direkt die Zahlen darstellen lassen. In den rechten beiden Streifen sind geometrisch übergeordnete Objekte farbkodiert dargestellt. Klickt man hier auf z.B. ein braunes Feld, dann ist das gesamte braune Feld markiert. Es steht dann auch als Objekt zur Domänennavigation zur Verfügung.Here, a line segment was clicked in a spreadsheet in CNT and those associated with this segment are also automatically selected (marked in red). Thus, a hierarchically superior object can be visualized. The gray values represent the numerical values. But you can also directly display the numbers. Geometrically superior objects are color-coded in the two right-hand stripes. If you click here on e.g. a brown field, then the entire brown field is marked. It is then also available as an object for domain navigation.
Fig. 7 zeigt ein Beispiel einer Hierarchie.Fig. 7 shows an example of a hierarchy.
Man sieht hier die Klassenhierarchie, die Prozesshierarchie und die segmentierten und klassifizierten Input-Daten. Die roten und blauen Streifen sind nicht-vordefinierte automatisch gefundene Sinnobjekte (und deshalb auch alle unterschiedlich lang).Here you can see the class hierarchy, the process hierarchy and the segmented and classified input data. The red and blue stripes are non-predefined automatically found sense objects (and therefore all of different lengths).
Beispiel einer " Sprachdefinition: http://www.ecma-internatio- nal.org/publications/files/ECMA-ST/Ecma-262.pdf (188 Seiten!).Example of a "language definition: http: //www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf (188 pages!).
Wichtig ist vielleicht auch die Frage nach der Ablaufsteuerung (Runtime-Environment). Hier gibt es noch etliche Alternativen bzw. Ergänzungen.Perhaps also important is the question of the flow control (runtime environment). There are still several alternatives or additions.
1. Iteratives Prozessieren von heterogenen Massendaten aus heterogenen Datenquellen zum Extrahieren benutzerspezifischer, relevanter Infor-
mationen (Kenngrößen, Diagramme).1. Iterative processing of heterogeneous mass data from heterogeneous data sources for extracting user-specific, relevant information mations (parameters, diagrams).
2. Das Prozessieren ist charakterisiert durch2. Processing is characterized by
2a. die Zuordnung von Daten zu Objekten,2a. the assignment of data to objects,
2b. die Erzeugung, Vernichtung und Verknüpfung von Objekten bzw. Objektmengen,2 B. the creation, destruction and linking of objects or sets of objects,
2c. die Beschränkung der Anwendung von Prozessierungsanweisun- gen auf bestimmte, dynamisch erzeugte Objektmengen (Domänen).2c. the limitation on the application of processing instructions to certain dynamically generated sets of objects (domains).
3. Objekte und Prozessierungsanweisungen können grafisch oder tex- tuell dargestellt und vom Benutzer editiert werden.
3. Objects and processing instructions can be graphically or textually displayed and edited by the user.