DE60031664T2 - Computerverfahren und vorrichtung zum schaffen von sichtbarer graphik unter verwendung von graph algebra - Google Patents

Computerverfahren und vorrichtung zum schaffen von sichtbarer graphik unter verwendung von graph algebra Download PDF

Info

Publication number
DE60031664T2
DE60031664T2 DE60031664T DE60031664T DE60031664T2 DE 60031664 T2 DE60031664 T2 DE 60031664T2 DE 60031664 T DE60031664 T DE 60031664T DE 60031664 T DE60031664 T DE 60031664T DE 60031664 T2 DE60031664 T2 DE 60031664T2
Authority
DE
Germany
Prior art keywords
data
variable
graph
interface
aesthetic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60031664T
Other languages
English (en)
Other versions
DE60031664D1 (de
Inventor
Leland Chicago WILKINSON
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SPSS Inc
Original Assignee
SPSS Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SPSS Inc filed Critical SPSS Inc
Publication of DE60031664D1 publication Critical patent/DE60031664D1/de
Application granted granted Critical
Publication of DE60031664T2 publication Critical patent/DE60031664T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/08Volume rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/904Browsing; Visualisation therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/206Drawing of charts or graphs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2216/00Indexing scheme relating to additional aspects of information retrieval not explicitly covered by G06F16/00 and subgroups
    • G06F2216/03Data mining

Description

  • GEBIET DER ERFINDUNG
  • Diese Erfindung betrifft allgemein ein Computerverfahren und eine Vorrichtung zum mathematischen Konstruieren von Graphen und zum ästhetischen Repräsentieren von Graphen als Graphik und insbesondere ein Computerverfahren und eine Vorrichtung zum Konstruieren von Graphen unter Verwendung einer Graphalgebra, gefolgt vom visuellen oder andersartigen Repräsentieren der Graphen als eine quantitative, ästhetische graphische Repräsentation.
  • HINTERGRUND DER ERFINDUNG
  • Bis vor kurzem wurde Graphik typischerweise mit der Hand gezeichnet, um mathematische, statistische und geometrische Relationen zu repräsentieren. Computergraphikprogramme, besonders naturwissenschaftliche und mathematische Plotpakete, haben diese Aufgabe sehr erleichtert, ohne aber ihren Ad-hoc-Aspekt zu verändern. Ebenso wenig haben statistische oder mathematische Pakete, die komplexere Graphik generieren, zu unserem Verständnis beigetragen, wie sie erzeugt werden.
  • Es besteht ein Bedarf an einem Computerverfahren und System, die die Fähigkeit verleihen, Graphik systematisch zu konstruieren, um komplexere multivariate Umgebungen zu handhaben. Dies ist auch in Verbindung mit Data-Mining-Computersystemen der Fall. Leider übertrifft die Leistungsstärke von Data-Mining-Systemen bei weitem die in ihren Anzeigen benutzten Computergraphikverfahren. Die meisten Data-Mining-Computersysteme stützen sich noch immer auf Torten-, Linien- und Balkendiagramme der Schichten von Datenkuben (Vielweg-Aggregationen einer Teilmenge einer Datenbank). Diesen Diagrammen gelingt es nicht, die Relationen zwischen den Entitäten aufzuzeigen, die sie repräsentieren, weil sie über keine tiefe Grammatik für ihre Generierung verfügen. Sie sind ganz einfach an Facetten des Datenkubus festverdrahtet. Bohrt man beispielsweise durch den Kubus, um eine andere Datenschicht zu betrachten, dann erhält man nur ein einfaches Tortendiagramm. Eine ähnliche Festverdrahtung gibt es in Anzeigen von Baumklassifikatoren, Neuronennetzen und anderen Algorithmen.
  • Es besteht auch Bedarf an einem Verfahren und einer Vorrichtung zum Erzeugen von ästhetischer Graphik aus Daten unter Verwendung von Graphalgebra. Ein Beispiel für eine Graphalgebra findet sich in dem Papier „A Graph Algebra" von L. Wilkinson, Proceedings of the Symposium on the Interface, S. 341–351.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Gemäß der vorliegenden Erfindung wird ein Computerverfahren zum Erzeugen von quantitativer Graphik unter Verwendung von Graphalgebra bereitgestellt.
  • Gemäß einem anderen Aspekt der vorliegenden Erfindung wird ein Datenverarbeitungssystem bereitgestellt, um Graphen mathematisch unter Verwendung von Graphalgebra zu konstruieren und die Graphen ästhetisch als Graphik anzuzeigen, die eine visuelle oder andere sensorische Anzeige des zugrunde liegenden Graphen sein kann.
  • Gemäß noch einem anderen Aspekt der vorliegenden Erfindung wird ein nichtflüchtiges Speichermedium mit in einer maschinenlesbaren Form codierten Computersoftware bereitgestellt, um Graphen mathematisch unter Verwendung einer Graphalgebra zu erzeugen und den mathematischen Graphen ästhetisch anzuzeigen, beispielsweise durch eine visuelle Repräsentation.
  • Gemäß der Erfindung enthält ein Verfahren zum Erzeugen von quantitativer Graphik die Ausführung der folgenden Schritte auf einem Computer: Indexieren der Daten, um eine Datenmenge zu bilden; Umwandeln der Datenmenge in eine variable Datenstruktur, wobei die variable Datenstruktur eine Indexmenge ist; Umwandeln der variablen Datenstruktur in eine Menge von Variablen durch Verwendung von mindestens einer Operation aus der aus einem Blend-Operator, einem Cross-Operator und einem Nest-Operator bestehenden Gruppe; Abbilden der Menge der Variablen in eine Punktmenge; und Abbilden der Punktmenge in eine ästhetische Repräsentation, die eine visuelle Graphik sein kann.
  • Gemäß einem anderen Aspekt der vorliegenden Erfindung wird ein Verfahren zum Erzeugen von quantitativer Graphik bereitgestellt, das folgende Schritte enthält: Bereitstellen einer Variablenliste; Bereitstellen einer Liste von Punktrepräsentationen; Bereitstellen einer Liste von Koordinatensystemen; Bereitstellen einer Liste von ästhetischen Repräsentationen; Auswählen von mindestens einer Variablen aus einer Variablenliste; Auswählen von mindestens einer Punktrepräsentation aus einer Liste von Punktrepräsentationen; Auswählen von mindestens einem Koordinatensystem aus der Liste von Koordinatensystemen; Auswählen von mindestens einer ästhetischen Repräsentation aus der Liste von ästhetischen Repräsentationen; Bewegen der mindestens einen Variablen an eine vorbestimmte Position; und Anzeigen einer sichtbaren Graphik, die die mindestens eine Variable, die mindestens eine Punktrepräsentation, das mindestens eine Koordinatensystem und die mindestens eine ästhetische Repräsentation reflektiert.
  • Gemäß einem anderen erfindungsgemäßen Aspekt enthält das Datenverarbeitungssystem zum Konstruieren von Graphen, das die Graphen mathematisch und ästhetisch als Graphik repräsentiert: einen Computerprozessor; und einen ansprechbar an den Computerprozessor gekoppelten Speicher, der einen Satz von Computerbefehlen enthält zum: (a) Indexieren von Daten, um eine Datenmenge zu bilden, (b) Umwandeln der Datenmenge in eine variable Datenstruktur, wobei die variable Datenstruktur eine Indexmenge, einen Bereich und eine Funktion hat; (c) Umwandeln der variablen Datenstruktur in eine Menge von Variablen durch Verwendung von mindestens einem aus der folgenden Gruppe ausgewählten Operator: einem Blend-Operator, einem Cross-Operator und einem Nest-Operator; (d) Abbilden der Menge der Variablen in eine Menge mathematischer Punkte; und (e) Abbilden der Menge mathematischer Punkte in eine ästhetische Repräsentation.
  • Gemäß noch einem anderen Aspekt der vorliegenden Erfindung wird ein nichtflüchtiges Speichermedium bereitgestellt, das in einem maschinenlesbaren Format codierte Computersoftware zum Erzeugen von quantitativer Graphik enthält. Das nichtflüchtige Speichermedium enthält: einen Satz von Computerbefehlen zum Indexieren von Daten, um eine Datenmenge zu bilden; einen Satz von Computerbefehlen zum Umwandeln der Datenmenge in eine variable Datenstruktur, wobei die variable Datenstruktur eine Indexmenge, einen Bereich und eine Funktion hat; einen Satz von Computerbefehlen zum Umwandeln der variablen Datenstruktur in eine Menge von Variablen durch Verwendung mindestens eines Operators, der aus der die Folgenden umfassenden Gruppe ausgewählt ist: einen Blend-Operator, einen Cross-Operator und einen Nest-Operator; einen Satz von Computerbefehlen zum Abbilden der Menge der Variablen in eine Punktmenge; und einen Satz von Computerbefehlen zum Abbilden der Punktmenge in eine ästhetische Repräsentation.
  • Die erfindungsgemäßen Verfahren, Systeme und Einrichtungen ermöglichen die Manipulation von Daten auf viele verschiedene Weisen und auch ihre Repräsentation durch Graphik auf viele verschiedene Weisen. So ist die Erzeugung von Graphik gemäß der vorliegenden Erfindung nicht durch die Beschränkungen von graphischen Repräsentationen begrenzt, die nur Aggregationen einer Teilmenge einer Datenbank sind.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die vorliegende Erfindung lässt sich leichter mit Bezug auf die beigefügten Zeichnungen verstehen, von denen:
  • 1 ein Flussdiagramm ist, das das Verfahren zum Formen von Graphik aus Daten gemäß der vorliegenden Erfindung schematisch veranschaulicht;
  • 2 ein Objektdiagramm ist, das die primären Softwarekomponenten des Datenverarbeitungssystems und ihre Relation zueinander zeigt;
  • 3 ein Objektdiagramm des Datenansichtspakets der vorliegenden Erfindung ist;
  • 4 ein Objektdiagramm des Serveraspekts der vorliegenden Erfindung ist;
  • 5 ein Objektdiagramm des Rahmenmodells der vorliegenden Erfindung ist;
  • 6 ein Diagramm des Algebrapakets der vorliegenden Erfindung ist;
  • 7 ein Objektdiagramm eines einfachen algebraischen Ausdrucks ist;
  • 8 ein Objektdiagramm eines algebraischen Ausdrucks ist;
  • 9 ein Objektdiagramm eines algebraischen Ausdrucks ist;
  • 10 ein Objektdiagramm des Dimensionsaspekts der vorliegenden Erfindung ist;
  • 11 ein Objektdiagramm ist, das den Rahmenaspekt der vorliegenden Erfindung zeigt;
  • 12 ein Objektdiagramm des Anzeigers der vorliegenden Erfindung ist;
  • 13 ein Objektdiagramm ist, das die Software-Wechselwirkungen abbildet, die auftreten, wenn der Benutzer ein Item auswählt;
  • 14 ein Objektdiagramm ist, das die Controller-Schnittstelle und die Controller zeigt, die durch die Controller-Schnittstelle laufen;
  • 15 ein Objektdiagramm der Builder-Controller ist;
  • 16 ein Objektdiagramm des Elementepakets der vorliegenden Erfindung ist;
  • 17 ein Objektdiagramm ist, das die Wechselbeziehung zwischen dem Datenansichtspaket, dem Rahmenmodell, dem Controller und dem Graphrahmen zeigt;
  • 18 ein Flussdiagramm ist, das die in Patentanspruch 1 definierten Verfahrensschritte der vorliegenden Erfindung schematisch veranschaulicht; und
  • 19 ein Flussdiagramm ist, das die Verfahrensschritte der in Patentanspruch 6 definierten erfindungsgemäßen Ausführungsart schematisch veranschaulicht.
  • Alle abgebildeten Diagramme verwenden Standard-UML-Notation, um die Klassen, Schnittstellen, Komponenten und Relationen zu charakterisieren.
  • DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
  • Die folgenden Bezeichnungen werden überall in der Patentbeschreibung benutzt und haben die folgenden Bedeutungen.
  • „Abstrakte" Klassen sind allgemeine Verfahren zum Definieren von Anwendungsprogramm-Schnittstellen (APIs = Application Program Interfaces) und zum Implementieren dieser Funktionen.
  • „Controller" sind Softwarekomponenten, die Interaktivität in einem Graphen steuern. Beispiele für einen Controller sind Eigenschaftsänderungs-Lauscher, die Graphrahmen belauschen. Sobald er ein Eigenschaftsänderungs-Ereignis hört, kann sich der Controller einfach auf den Graphrahmen 134 einstellen oder er kann sein Aussehen auf der Basis der im Graphrahmen 134 enthaltenen Information aktualisieren.
  • „Daten" heißt aufgenommene Beobachtungen von Quantitäten, Qualitäten oder Relationen. Daten haben keine zwangsläufige Organisation oder Struktur, sondern sind eine Informationssammlung und werden manchmal als Rohdaten oder Quelldaten bezeichnet. Daten enthalten auch beispielsweise Metadaten, assoziierte Daten und Annotationsdaten.
    • • Roh- oder Quelldaten residieren im Computerspeicher, beispielsweise in einer freien Textdatei.
    • • Jedes Metadatenstück hat eine Stringbeschreibung und kann einen Typ haben, um seinen Typ erkennbar zu machen.
    • • Assoziierte Daten sind Daten, die mit den tatsächlichen Daten assoziiert sind und für Benutzeranfragen und zum Tiefergehen (Untersuchen von Teilmengen der Daten) benutzt werden.
    • • Annotationsdaten sind mit den tatsächlichen Daten verbunden, die ermöglichen, dass eine Art von Annotation im Graphen erscheint.
  • „Datenansicht" ist eine Funktion, die Rohdaten indexiert, um eine Datenmenge zu erzeugen. Verschiedene Indexier- oder Organisationsschemata können je nach Wunsch benutzt werden wie beispielsweise hierarchische, relationale oder topologische.
  • „Rahmenmodellzustand" ist eine Klasse, um den Zustand des Rahmenmodells effizient über den Draht weiterzuleiten. In DataView.addFrameModelState (Rahmenmodellzustand) können Datenansicht-Implementierungen ein neues Rahmenmodell durch Verwendung des Konstruktors instantiieren, der einen Rahmenmodellzustand annimmt.
  • Eine „Generische Funktion" benutzt Reflexion, um ein Funktionsobjekt aus einem vollständig qualifizierten Verfahrensnamen einer Funktion zu erzeugen, die Zielvariable(n) in einer Datenansicht und eine optionale Hash-Tabelle mit zusätzlichen Parametern für die Funktion. Die Resultate der Funktion sind persistent.
  • „Instantiieren" bedeutet eine Instanz bereitstellen.
  • Ein „Lauscher" ist ein Untermodul des Computerprogramms, das nach einem Befehl sucht und das Modul (von dem das Untermodul ein Teil ist) informiert, dass die Nachricht gesendet wurde, sodass eine Aktion ausgeführt werden kann.
  • „Renderer" sind Wrapper für System-Toolbox/Toolkit-Zeichenobjekte und/oder eine Graphik-Klassenbibliothek. Renderer sind verantwortlich für das Erzeugen, Zeichnen, Zugriffprüfen und Pflegen von GPL-Primitiven 180 (GPL = Graphics Production Library). Zugriffprüfen wird über Pointer-Ereignisse 184 ausgeführt, die Erweiterungen von Mouse-Ereignisse 186 sind. So können Renderer Mouse-Lauscher und Mousebewegungs-Lauscher hinzufügen und entfernen. Renderer stellen auch Schichten zum Zeichnen zur Verfügung (d. h. ein Objekt in Schicht 2 sollte ein Objekt in Schicht 1 „überlagern"). Renderer arbeiten in einem von zwei „Fensterdehnungs"-Modi (RESIZE und NORESIZE – wie unten), die die Größe der Primitiven im Verhältnis zum umgebenden Fenster beeinflussen. Schließlich verbreiten Renderer Eigenschaftsänderungs-Ereignisse, wenn sich die Anzahl der Schichten („Number Of Layers") oder der Fensterdehnungstyp („Window Stretch Type") ändert. Renderer bilden ein MIN bis MAX Koordinatensystem über die tatsächliche Zeichenebene ab. Koordinatenwerte nehmen von links nach rechts und von unten nach oben zu.
  • „Variable" bedeutet eine Menge von Variablen der Form V = varset[X]. Ein „varset" oder eine „variable Datenstruktur" ist eine wie folgt definierte Menge:
    varset [X1, ..., Xn] = [I, X1, ... , Xn, f], wo
    X1, ..., Xn n Mengen repräsentiert,
    I eine Indexmenge {1, 2, ..., m} ist, die über alle natürlichen Zahlen N variiert,
    f: I → X1 × X2 × ... × Xn und f über alle mögliche Funktionen dieser Form variiert.
  • V kann eine kategorische Variable sein (d. h. X ist eine endliche Menge); oder V kann eine stetige Variable sein (d. h. X ist eine Menge reeller Zahlen).
  • Es folgt eine Beschreibung eines Softwaresystems gemäß der vorliegenden Erfindung. Die Software kann auf einem beliebigen Medium gespeichert sein, typischerweise einem optischen oder magnetischen, das dazu fähig ist, den Softwarecode aufzubewahren, und von einem Allzweck-Computersystem gelesen oder ausgeführt werden kann. Das Softwaresystem kann auch über ein Netz laufen unter Verwendung einer typischen Client-Server-Anordnung.
  • Es folgt eine Liste von Softwarekomponenten, die einem oder mehreren der folgenden Diagramme gemeinsam sind, und die jeweiligen Zeichnungen, auf die sie positioniert sind:
    Komponente ABB.
    Achse 114 10, 11
    Controller-Schnittstelle 40 2, 14, 15
    Koordinatenspezifikation 50 2, 5
    Datendurchlauflauscher-Schnittstelle 62 3, 4
    Datenansicht-Schnittstelle 14 1–4
    Element 46 2, 11, 16
    Rahmenlayout-Schnittstelle 42 2, 11
    Glyphen-Schnittstelle 32 1, 10, 11, 13
    Graph 10 1, 2, 11
    Graphdimension 100 5, 10
    Item-Rahmen-Schnittstelle 18 1, 3, 5
    Legende 112 10, 11
    Legendenzugriff-Ereignis 130 10, 13
    Mouse-Ereignis 186 12, 13
    Pointer-Ereignis 184 12, 13
    Primitive Schnittstelle 34 1, 12, 13
    Skalierungsspezifikation 48 2, 5
    Transformation 36 1, 11, 12
    Variable Transformationsspezifikation 52 2, 5
  • Mit Bezug auf die Abbildungen im Allgemeinen und insbesondere auf 2 ist ein Objektdiagramm veranschaulicht, das die Primärelemente der erfindungsgemäßen Software zum Erzeugen einer graphischen Repräsentation von Daten abbildet. Die vier Hauptkomponenten des Systems sind Graph 10, Datenansicht-Schnittstelle 14, Controller-Schnittstelle 40 und Rahmenlayout-Schnittstelle 42.
  • Der Graph 10 kann durch Festsetzen eines algebraischen Modellausdrucks oder Strings 44 und durch Manipulieren einer Anzahl von Eigenschaften vervollständigt werden, die Folgendes umfassen: Elemente 46, Skalierungsspezifikationen 48, Koordinatenspezifikationen 50 und Variable Transformationsspezifikationen 52. Nachdem die Datenansicht-Schnittstelle 14 des vorliegenden Systems Daten empfangen und manipuliert hat, meldet sie den anderen Softwarekomponenten Änderungen der Daten. Die Controller-Schnittstelle 40 ist für alle Wechselwirkungen mit dem Graphen 10 verantwortlich, den Aufbau des Graphen eingeschlossen. Die Rahmenlayout-Schnittstelle 42 steuert das Aussehen und den Eindruck des Graphen 10.
  • In 1 wird ein Blockdiagramm gezeigt, das das erfindungsgemäße Verfahren und System zum Erzeugen einer graphischen Repräsentation von Daten schematisch veranschaulicht. 1 bildet die gesamte Operationsfolge ab, die die Computersoftware ausführt, um die Information in graphischer Form als Graph 10 visuell zu repräsentieren. Die Komponenten des Graphs 10 sind Daten 12, die aufgenommene Beobachtungen von Quantitäten, Qualitäten oder Relationen sind. Vor der Repräsentation in graphischer Form haben die Daten 12 keine zwangsläufige Organisation oder Struktur.
  • Wie 1 zeigt, ist die Datenansicht 14 eine Funktion, die eine Datenmenge 16 aus den Daten 12 erzeugt. Verschiedene Datenansichten 14 nutzen verschiedene Schemata, um die Daten 12 zu organisieren. Das Datenansicht-Objekt implementiert die Datenansicht 14 durch Festlegen eines Indexierungsschemas und durch Assoziieren der Daten 12 mit den Indizes, um die Datenmenge 16, eine indexierte Menge der Daten 12, zu erzeugen. Jedes Element in der Datenmenge 16 wird als ein „Eintrag" oder ein „Wert" bezeichnet. Die Datenmenge 16 ist durch ein Schema indexiert, das dem Benutzer ermöglicht, Daten 12 in der Datenmenge 16 aufzufinden und die separaten Elemente miteinander zu assoziieren.
  • Der Item-Rahmen 18 ist eine Schnittstelle, die eine Kollektion von Funktionen auf Indexmengen spezifiziert hat. Diese Funktionen sind Transformationen auf Indexmengen; sie erzeugen Indexmengen. Einige Funktionen im Item-Rahmen 18 können Indizes permutieren; beispielsweise kann eine Baumstruktur (siehe beispielsweise 8 und 9) in eine sequentielle Indexliste umgewandelt werden. Andere Funktionen des Item-Rahmens 18 können eine Datenmenge 16 zur Teilmenge machen, indem einige Indizes in Nullwerte umgewandelt werden (d. h. sie werden gelöscht). Funktionen des Item-Rahmens 18 werden benutzt, um zur Erzeugung von Variablen erforderliche Daten 12 zur organisieren und herauszufiltern.
  • Nachdem die Daten 12 in Datenmengen 16 indexiert worden sind, bildet eine Funktion Variable 20 eine Datenmenge 16 auf eine Variable Datenstruktur ab, die auch „Varset" genannt wird. Eine Variable Datenstruktur ist eine wie folgt definierte Menge:
    varset [X1, ..., Xn] = [I, X1, ..., Xn, f], wo
    X1, ..., Xn n Mengen repräsentiert,
    I eine Indexmenge {1, 2, ..., m} ist, die über alle natürlichen Zahlen N variiert,
    f: I → X1 × X2 × ... × Xn und f über alle mögliche Funktionen dieser Form variiert.
  • Die Variable Datenstruktur ist auch eine Menge von Variablen der Form V = varset[X], wo die Menge von Variablen nicht der Algebra ausgesetzt wurde. Variablen sind kategorisch oder stetig, was nur darauf basiert, wie die Variablen definiert sind. V ist eine kategorische Variable, wenn X eine endliche Menge ist; V ist eine stetige Variable, wenn X eine Menge reeller Zahlen ist.
  • Die Abbildung geht von einer Keyindexmenge auf Wertmengen in der Datenmenge 16. Die Variable 20 muss den Bereich jeder Variablen überwachen, sodass Fehler in der Datenmenge 16 abgefangen werden können. Liegt beispielsweise ein Wert in der Datenmenge 16 nicht im Bereich, muss die Variable 20 entweder in der Lage sein, den Wert passend zuzuweisen oder melden, dass der Variablenwert nicht verarbeitet werden kann. Die Variable 20 muss auch weiterhin für alle möglichen Werte in einer Domäne Werte im Bereich korrekt zurückliefern, während sich die Datenmenge 16 mit der Zeit ändert.
  • Nachdem die Datenmenge 16 durch die Variable 20 in die Variable Datenstruktur 22 abgebildet worden ist, implementiert das Algebraobjekt eine Algebra 24 auf der Variablen Datenstuktur 22. Die Ausgabe der Algebra 24 ist eine Menge von Variablen 22. Eine „Algebra" besteht aus einem Mengensystem, Mengenoperatoren und Regeln für die Kombination der Operatoren. Ein Operator ist eine auf der Menge definierte Funktion, die einen Wert in dieser Menge zurückliefert.
  • Die Algebra 24 hat drei binäre Operatoren-Blend-Operator (+) 26, Nest-Operator (/) 28 und Cross-Operator (*) 30 – und eine Menge assoziierter Regeln. Die hierarchische Ordnung der Operatoren ist Blend-Operator (+) 26, Cross-Operator (*) 30 und Nest-Operator (/) 28. Blend 26 wird zuletzt berechnet, während Nest 28 zuerst berechnet wird. Die Ordnung der Operatoren kann durch den Gebrauch von Klammern geändert werden. Die Regeln für den Operator schließen Assoziativität, Distributivität und Kommutativität ein. Nur Blend 26 ist kommutativ. Der Blend-Operator 26 involviert eine Vereinigung im Bereich. Der Cross-Operator 30 involviert ein kartesisches Produkt im Bereich. Der Nest-Operator 28 schichtet Werte.
  • Die Softwarekomponente, die alle algebraischen Spezifikationen zum Abbilden von Datenmengen auf Mengen von Variablen enthält, ist das Rahmenmodell 94, das in 5 veranschaulicht ist. Das Rahmenmodell 94 enthält auch die Struktur von Dimensionen, aus denen ein Graphrahmen 134 (von 11) wird und Daten 12 (von 1) für Elemente 46.
  • Die algebraischen Spezifikationen enthalten Variable Transformationsspezifikationen 52, Skalierungsspezifikation 48, Koordinatenspezifikationen 50, Elementspezifikation 96 und einen Baum 98. Die tatsächliche Rahmenstruktur wird erzeugt, indem alle diese Spezifikationen in ein Baumobjekt 98 interpretiert werden, und auch die Element-Graphdimensionen 100 und die Item-Rahmen-Schnittstelle 18, die die Daten 12 für den Graphen 10 sind.
  • Der Baum 98 umfasst Graphdimensionen 100 (von 10), die in einer Form organisiert sind, die für eine Ansicht zur Konstruktion eines Graphen „vorbereitet" ist. Der Baum 98 kann aus einer beliebigen Anzahl von Teilbäumen bestehen, wobei jede „Ebene" eines Baums eine Cross-Dimension und die Zeilen Nest-Dimensionen repräsentieren. Blend-Operationen 26 werden durch Blenden von zwei Bäumen 98 mit identischen Strukturen (die algebraische Expansion garantiert der Ästhetik, dass dies der Fall ist) ausgeführt. Das Blenden 26 von zwei Bäumen erzeugt neue Ebenen in einem Baum. Das Nesten 28 von zwei Bäumen erzeugt „Zeilen" in einem Baum. Es folgen Beispiele von algebraischen Aussagen und ihre Baumäquivalente:
  • BEISPIEL 1.
  • Algebraischer Ausdruck: a·b·c·d·e·f Baumäquivalent:
    Figure 00080001
  • BEISPIEL 2.
  • Algebraischer Ausdruck: a·b + a·c Baumäquivalent:
    Figure 00090001
  • BEISPIEL 3.
  • Algebraischer String: a·b/c·1·c Baumäquivalent:
    Figure 00090002
  • BEISPIEL 4.
  • Algebraischer Ausdruck: y·1·(a·b)/c·1 Baumäquivalent:
    Figure 00090003
  • 6 bildet das Algebrapaket als ein Tertiärbaummodell ab. Das Algebrapaket ist ein einfaches Objektmodell für algebraische Ausdrücke, drei Klassen umfassend: Algebra 24, Faktor 106 und Ausdruck 108. Im gezeigten Modell ist die Algebra 24 die abstrakte Überklasse, und Faktor 106 und Ausdruck 108 sind Unterklassen der Überklasse. Die Algebra 24 wandelt den String 44 (in 2 gezeigt) in einen Baum 98 um (von 5). Der Faktor 106 ist eine Grundeinheit der Algebra 24. Faktoren 106 entsprechen direkt den Stringnamen der Menge der Variablen 22 (von 1). Beispielsweise sind „a" und „b" Faktoren im Ausdruck „a + b".
  • Ausdrücke 108, die auch durch Tertiärbäume repräsentiert werden, bestehen aus einer linken Seite, einer rechten Seite und einem Operator. Die Seiten sind Instanzen der Algebra 24 (d. h. entweder Ausdrücke 108 oder Faktoren 106). Der Operator ist einer der Folgenden: Blend (+) 26, Nest (/) 28 und Cross (*) 30.
  • Stringausdrücke 44 werden in Monome expandiert und dann geparst, um ein Ausdrucksobjekt zu erzeugen. Die Expansion wird durch eine statisches Verfahren im Ausdruck 108 ausgeführt, das den ursprünglichen String 44 untersucht und in Monome in einem neuen String expandiert, wobei die Assoziativitäts-, Distributivitäts- und Kommutativitätsregeln berücksichtigt werden. Die Operatoren für die Expansion sind Blend (+) 26, Nest (/) 28 und Cross (*) 30. Ein anderes statisches Verfahren nimmt dann den expandierten String und parst ihn, um ein wirkliches Ausdrucksobjekt zu erzeugen. Es ist auch denkbar, dass ein beliebiges algebraisches Ausdrucksobjekt von Hand erzeugt werden könnte.
  • Die unten gezeigten Beispiele veranschaulichen, wie ein algebraischer Ausdruck handcodiert wird:
  • BEISPIEL 1
    • Ausdruck: (einfache Cross-Operation mit zwei Variablen): (a·b)
    • Der Ausdruck kann wie folgt handcodiert werden: Ausdruck = neuer Ausdruck (neuer Faktor („a"), Algebra.CROSS, neuer Faktor(„b"))
  • Das Objektdiagramm für dieses Beispiel wird in 7 gezeigt.
  • BEISPIEL 2
    • Ausdruck: (a + b)·c
    • Der Ausdruck wird in Monome expandiert: a·c + b·c
    • Der Ausdruck kann wie folgt handcodiert werden: Faktor a = neuer Faktor („a"); Faktor b = neuer Faktor („b"); Faktor c = neuer Faktor („c"); Ausdruck ex1 = neuer Ausdruck (a, Algebra.CROSS, c); Ausdruck ex2 = neuer Ausdruck (b, Algebra.CROSS, c); Ausdruck Hauptausdruck = neuer Ausdruck (ex1, Algebra.BLEND, ex2)
  • Das Objektdiagramm ist in 8 gezeigt.
  • BEISPIEL 3
    • Ausdruck: (a*b)/c
    • Der Ausdruck wird in Monome expandiert: a/c * b/c
    • Der Ausdruck kann wie folgt handcodiert werden: Faktor a = neuer Faktor („a"); Faktor b = neuer Faktor („b"); Faktor c = neuer Faktor („c"); Ausdruck ex1 = neuer Ausdruck (a, Algebra.NEST, c); Ausdruck ex2 = neuer Ausdruck (b, Algebra.NEST, c); Ausdruck Hauptausdruck = neuer Ausdruck (ex1, Algebra.CROSS, ex2)
  • Das Objektdiagramm ist in 9 gezeigt.
  • Es werden auch Algebra-Ausnahmen 110 für bestimmte Funktionalitäten bereitgestellt, die nicht in der normalen Algebra-Klasse 24 verarbeitet werden können.
  • 3 zeigt ein Objektdiagramm des gesamten Datenansicht-Pakets des vorliegenden Systems. Das Datenansicht-Paket enthält die Klassen, die dem Programm erlauben, auf Daten zuzugreifen und sie zu manipulieren. Die Datenansicht-Schnittstelle 14 stellt Daten 12 in Form der Geometrie zur Verfügung, die zum Erzeugen eines Graphen erforderlich ist. Die Datenansicht-Schnittstelle 14 fungiert auch als „Linse" für die Software, indem sie darstellt, was der Rest des Systems „sieht", wenn er Daten 12 anfordert. Die abstrakte Datenansicht-Klasse 54 implementiert Funktionen der Datenansicht-Schnittstelle 14. Die Geometrie für jedes Element eines jeden Panels (Facette) eines Graphen ist in der Item-Rahmen-Schnittstelle 18 gespeichert, die im Wesentlichen eine Tabelle ist.
  • Das Datenansicht-Paket stellt auch einen Weg bereit, um die Assoziierte Datenschnittstelle 56 (Graph-Metadaten) einzubeziehen. Die Assoziierte Datenschnittstelle 56 hat eine Unterstützungsklasse, die Assoziierte Datenunterstützung 58, die die Routinen unterstützt, die von der Software gebraucht werden, um auf andere Daten zuzugreifen und diese Daten mit den primären Daten 12 zu verknüpfen.
  • Das Datenansicht-Paket enthält auch das Datendurchlauf-Ereignis 60 und die entsprechende Datendurchlauflauscher-Schnittstelle 62, die Clienten benachrichtigt, wenn ein Datendurchlauf bevorsteht und wenn der Datendurchlauf abgeschlossen ist. Die Datenansicht 14 feuert jedes Mal ein Datendurchlauf-Ereignis 60 ab, wenn die Datenansicht 14 geändert worden ist; beispielsweise, wenn der Datenansicht neue Daten hinzugefügt worden sind.
  • Ein vollständiger Datendurchlauf funktioniert wie folgt:
    • • Ein Client ruft DataView.beginDataPass() auf.
    • • Die Datenansicht-Schnittstelle 14 löscht alle vorherigen Spezifikationen (einschließlich Skalierungsspezifikation 48 (von 2), Elementspezifikation 96 (von 5), Variable Transformationsspezifikation 52 (von 2), Koordinatenspezifikation 50 (von 2) und Rahmenmodellzustand).
    • • Datenansicht-Schnittstelle 14 benachrichtigt Lauscher über aboutToDataPass().
    • • Lauscher fügen für den Datendurchlauf erforderliche Spezifikationen hinzu. – Beispielsweise fügt das Rahmenmodell 94 (in 5 gezeigt) – das auch eine Datendurchlauflauscher-Schnittstelle 62 ist – eine Kopie der Spezifikationen hinzu (in Form eines Rahmenmodellzustands-Objekts).
    • • Der Datendurchlauf findet statt.
    • • Wenn der Datendurchlauf abgeschlossen ist, benachrichtigt die Datenansicht-Schnittstelle 14 Lauscher über finishedDataPass().
    • • Die Lauscher können, falls erforderlich, ihre Daten über DataView.getResults() abfragen.
  • Die wichtigste von der Datenansicht-Schnittstelle 14 ausgeführte Funktion ist die Verarbeitung der in einem Rahmenmodell enthaltenen Spezifikationen. Diese Spezifikationen sind die Datenmanipulationen, die ausgeführt werden müssen, um die Elemente 46 (von 2) in einem Graphen zu zeichnen. Diese Spezifikationen sind die „Graphgrammatik"; sie enthalten Algebraischen Ausdruck, Skalierspezifikation 48 (von 2), Elementspezifikation 96 (von 5), Variable Transformationsspezifikation 52 (von 2) und Koordinatenspezifikation 50 (von 2), wie oben erörtert. Die Datenansicht-Schnittstelle 14 nimmt die Spezifikationen und erzeugt die Geometrie für die Elemente im Rahmenmodell (von 12). Andere Erfordernisse sind Pinselunterstützung und Fallebenenzugriff. Ausnahmen sind vorgesehen für die konkrete Datenansicht-Schnittstelle 14, die eine bestimmte Funktionalität nicht unterstützen kann.
  • Eine Unterstützungsklasse, Datenansicht-Unterstützung 64, wird bereitgestellt zusammen mit einer Implementierung der Datenansicht-Schnittstelle 14 unter Verwendung von JDBC-Datenansicht 66 (JDBC = Java Database Connectivity), die Quelldaten von der JDBC-Quellspezifikation 68 erfasst. Die JDBC-Datenansicht 66 stellt eine Verknüpfung mit einer Datenbank zur Verfügung, sodass das Programm Daten von dieser Datenbank benutzen kann. Datenansicht-Unterstützung 64 ist eine Implementierung der Datenansicht-Schnittstelle 14, die den DMS-Item-Rahmen 70 (DMS = Datenmanagementsystem) benutzt. Der DMS-Item-Rahmen 70 fungiert als Pointer, der auf ein einzelnes Item in einem Datenmanagementsystem zeigt. Die JDBC-Datenansicht 66 enthält einen JDBC-Datenansicht-Anpasser (nicht gezeigt), um für die Daten 12, Metadaten und synthetischen Variablen die Datenquelle(n) einzurichten.
  • Der JDBC-Datenansicht-Anpasser (JDBC = Java Database Connectivity) ist eine Benutzerschnittstelle (UI = User Interface) zum Anpassen der JDBC-Datenansicht 66. Er verleiht die Fähigkeit, alle Datenbankanforderungen in einer JDBC-Datenansicht 66 anzupassen, sowie die Fähigkeit, synthetische Variablen über Funktionen hinzuzufügen. Im Folgenden werden die UI-Screens beschrieben:
    • • Hauptdaten (2 Screens) – Der erste Screen verlangt den JDBC-Treiber, die Datenbank-URL, einen Benutzernamen, ein Passwort und eine SQL-Anweisung (SQL = Sequential Query Language). Der zweite Screen fordert den Benutzer auf, (a) jede Variable in der Resultatsmenge als kategorisch zu kennzeichnen und (b) für jede Variable einen Typ auszuwählen (Zahl, Text).
    • • Tabellen-Meta (2 Screens) – Der erste Screen verlangt den JDBC-Treiber, die Datenbank-URL (Universal Resource Locator), einen Benutzernamen, ein Passwort und eine SQL-Anweisung. Der zweite Screen fordert den Benutzer auf, Folgendes auszuwählen: (a) eine Spalte in der Resultatsmenge, die die Beschreibungen der Metadaten enthält, (b) eine Spalte, die die MIMF-Typen für die Metadaten enthält und, (c) eine Spalte, die die eigentlichen Metadaten enthält.
    • • Variablen-Meta (2 Screens) – Der erste Screen verlangt den JDBC-Treiber, die Datenbank-URL, einen Benutzernamen, ein Passwort und eine SQL-Anweisung. Der zweite Screen fordert den Benutzer auf, Folgendes zu kennzeichnen: (a) die Spalte in der Resultatsmenge, die mit den Variablennamen übereinstimmt, (b) die für Metadaten zu benutzenden Spalten und (c) die jeweiligen MIME-Typen.
    • • Wert-Meta (2 Screens) – Der erste Screen verlangt den JDBC-Treiber, die Datenbank-URL, einen Benutzernamen, ein Passwort und eine SQL-Anweisung. Der zweite Screen fordert den Benutzer auf, Folgendes zu kennzeichnen: (a) die Spalte in der Resultatsmenge, die mit den Kategorienamen übereinstimmt, (b) die für Metadaten zu verwendenden Spalten und (c) die jeweiligen MIME-Typen.
    • • Item-Meta (2 Screens) – Der erste Screen verlangt den JDBC-Treiber, die Datenbank-URL, einen Benutzernamen, ein Passwort, eine SQL-Anweisung und die Variable, zu der Wert-Metadaten zu addieren sind. Der zweite Screen fordert den Benutzer auf, die für Metadaten zu benutzenden Spalten und die jeweiligen MIME-Typen zu kennzeichnen.
    • • Funktionen (1 Screen) – Der Screen fordert eine auf einer Funktion basierende neue (synthetische) Variable an sowie eine oder mehrere der bestehenden Variablen. Doppelklicken auf der Box für die synthetische Variable ermöglicht dem Benutzer, die synthetische Variable zu bearbeiten. „Add" addiert eine neue synthetische Variable und „Remove" entfernt die synthetische Variable.
  • Außerdem wird im Datenansicht-Paket ein Modell für die Assoziierte Datenschnittstelle 56 (Metadaten) zum Verknüpfen von Information mit beliebigen Objekten bereitgestellt. Die Assoziierte Datenschnittstelle 56 kann an ein einzelnes Item 71 von Daten 12, Gruppen von Items 71, Mengen von Variablen 22, Kategorien innerhalb einer Menge der Variablen 22 oder ganze Tabellen angeschlossen werden. Die Abstrakte Klasse Item-Unterstützung 74 ist ein allgemeines Verfahren zum Definieren einer Anwenderprogramm-Schnittstelle (API = Application Program Interface) und zum Implementieren einer Funktion der Item-Schnittstelle 72. Die Item-Unterstützung 74 kann irgendeins der Folgenden benutzen: ein Text-Item 76, ein Datum-Item 78 oder ein Zahl-Item 80. Der Abstrakte Item-Rahmen 82 implementiert Funktionen der Item-Rahmen-Schnittstelle 18. Der Abstrakte Item-Rahmen 82 hat eine Unterstützungsklasse Item-Rahmen-Unterstützung 84.
  • Die elementare Zeichenschnittstelle, Primitive Graphschnittstelle 34 (von 1), implementiert die Assoziierte Datenschnittstelle 56, sodass Metadaten in jedes auf den Screen gezeichnete Objekt eincodiert werden können. Die Assoziierte Datenschnittstelle 56 kann aus jedem gültigen Java-Objekt bestehen. Jedes assoziierte Datenstück enthält eine String-Beschreibung 44 der assoziierten Daten, die Daten selbst als Java-Objekt und einen optionalen MIME-Typ für diese Daten. Der MIME-Typ kann von Clienten dazu benutzt werden, um einen passenden „Abspieler" für die Metadaten zu bestimmen.
  • Funktionen werden unter Verwendung von statischen finalen Klassen implementiert. Die Verfahren in dieser Klasse operieren auf einem Primitiv 180 (von 12). Die Generische Funktionsklasse (nicht gezeigt) ist ein Funktionsobjekt, das Java-Reflexion auf den statischen Verfahren benutzt. Auf einem String-Funktionsnamen basierend, sucht ein Generisches Funktionsobjekt das korrekte Verfahren auf und wird ein funktionskonformes Objekt. So erhalten wir den Effekt von potentiell vielen Arten von Funktionsobjekten unter Verwendung von relativ wenigen Klassen. Außerdem müssen wir nur zusätzliche primitive Operationen zu den statischen finalen Klassen addieren, um mehr Funktionen einzubeziehen.
  • Nachdem die Menge von Variablen 22 erlangt worden ist, besteht der nächste Schritt des erfinderischen Verfahren aus dem Abbilden einer Menge aus der Menge der Variablen 22 in eine Punktmenge. Dies wird durch eine Glyphe 32 erreicht – eine Schnittstelle, die eine bestimmte Graphfunktion benutzt, um einen Primitiven Graphen 34 aus einer Menge in der Menge der Variablen 22 zu erzeugen. Die Glyphe 32 führt auch andere organisatorische Aufgaben aus; beispielsweise die Mengen in der Menge der Variablen 22 mit den Dimensionen eines geometrischen Raums in Beziehung zu setzten, in den der Graph eingebettet wird.
  • Der resultierende Primitive Graph 34 ist eine Teilmenge von der Cross-Operation unterworfenen Mengen. Das Graphobjekt ist eine Kollektion, die den Primitiven Graphen 34 und die Verfahren umfasst, die zur Repräsentation des Primitiven Graphen 34 als ein geometrisches Objekt erforderlich sind.
  • Nachdem der Primitive Graph 34 gewonnen worden ist, umfasst der nächste Schritt des erfinderischen Verfahrens die Transformation des Primitiven Graphen 34 und seine Repräsentation in Form eines Koordinatensystems. Das geschieht durch die Transformation 36. Die Transformation 36 ist ein System oder Schema zum Auffinden eines Raumpunktes, dessen Koordinaten gegeben sind. Dieses Schema umfasst eine Achse 114 für jede Dimension, eine Skale (siehe 10) für jede Achse 114 und ein Verfahren zum Auffinden eines beliebigen Raumpunkts. Das bekannteste Koordinatensystem ist das kartesische Koordinatensystem. Das Standard-Koordinatensystem ist das 2D-Koordinatensystem 140, ein Graphrahmen für zweidimensionale Graphen. Das Transformationsobjekt transformiert den Primitiven Graphen 34 und repräsentiert ihn in rechtwinkligen Koordinaten, Polarkoordinaten oder anderen Koordinatensystemen einschließlich beispielsweise konformer Abbildungen und geographischer Projektionen. Die Transformationen 36 sind jedoch auf Transformationen beschränkt, die die fünktionale Relation zwischen der Domäne und dem Bereich eines bestimmten Primitiven Graphen 34 beibehalten.
  • Die Koordinatenspezifikation 50 wird benutzt, um Facettierung zu bezeichnen, wenn die Anzahl der Dimensionen zweideutig ist. Jede Koordinatenspezifikation macht eine bestimmte Facette explizit. Beispielsweise könnte ein Graph mit sechs Dimensionen a*b*c*d*e*f ein im 2D-Raum zweimal facettierter zweidimensionaler Graph oder ein im 3D-Raum facettierter dreidimensionaler Graph sein. Die Verwendung der Koordinatenspezifikation 50 macht deutlich, wie der Graph facettiert ist.
  • Ein letzter Schritt in der Konstruktion des Graphen involviert die ästhetische Repräsentation der Punktmenge in die Graphik. Dieser Schritt umfasst das Abbilden der Punktmenge in eine ästhetische Repräsentation durch Anwendung der Ästhetik 38. Die Ästhetik 38 ist eine Funktion, die Punkte oder Punkteinträge in Strings oder reelle Zahlen abbildet, die als Eingabe in eine physikalische Anzeigeeinrichtung dienen. Die Ästhetik 38 ist auch ein Objekt, das ästhetische Funktionen in die Konstruktion eines Graphen 10 implementiert.
  • Der Graph 10 ist ein unter einer oder mehreren Ästhetischen Funktionen 38 erstelltes Kombinationsbild des Primitiven Graphen 34. Das graphische Objekt ist dafür verantwortlich, den Graphen 10 in einem Anzeigesystem zu realisieren.
  • 10 präsentiert eine Übersicht der Dimensionsaspekte der vorliegenden Erfindung. Im Allgemeinen ist die Graphdimension 100 eine Neudarstellung der Daten 12, wobei die Datenwerte nach einer numerischen Skale abgebildete wurden. Der String 44 (von 2) enthält die Befehle zum Durchführen der Neudarstellung der Daten 12. Die Graphdimension 100 parst einen Ausdrucksbaum, um zu bestimmen, wie die Daten in Form von Mengen der Variablen 22 (von 1) kombiniert werden. Die Graphdimension 100 bildet dann die Items einer oder mehrerer Variabler Mengen 22 auf eine Skale, die eine Dimension in einem Graphrahmen 134 (in 11 gezeigt) ist. Ein in der Graphdimension 100 enthaltener Guide 116 wird verwendet, um die Resultate nach einer numerischen Skale abzubilden.
  • Im Fall der kategorischen Variablen ist die numerische Skale eine ganze Zahl von Null bis zu einem durch (Anzahl der Kategorien – 1) definierten Wert; im Fall der stetigen Variablen geht die numerische Skale von min(Daten) bis max(Daten). Die Graphdimension 100 bildet Attribute ab, die eines der durch den „Typ" der Graphdimension 100 definierten Attribute sein können wie beispielsweise Position (z. B. Größe, Form), Farbe (z. B. Farbton, Helligkeit oder Sättigung), Bewegung, Rotation, Unschärfe, Transparenz oder Textur (z. B. Muster, Orientierung oder Körnung). Als Alternative kann das Attribut nichtvisuell sein wie beispielsweise Sound. Die Graphdimension 100 wird als ein „Modell" angesehen und die Legende 112 und Achse 114 sind „Ansichten" des Modells.
  • Die Graphdimension 100 wird die Assoziierte Datenschnittstelle 56 (von 3) (Metadaten) von allen Mengen der Variablen 22 präservieren, die sie enthält. Metadaten der variablen Schicht werden kombiniert und können über getAssociatedData() abgerufen werden. Metadaten der kategorischen Schicht werden innerhalb der Kategorien präserviert und kombiniert und können über getAssociatedDataFor() abgerufen werden.
  • Wie in 10 gezeigt ist, enthält der Guide 116 ein Scalebuilder-Objekt 118, das die numerische Skale für die Dimension aufbaut. Die numerische Skale kann ein beliebiges Scalebuilder-Objekt 118 sein, und die Attribute sind ein Array von Java-Objekten. Gibt es weniger Attribute als Skalenwerte, dann werden die Guides 116 durch die Attributliste recyceln. Die abstrakte Klasse Guide 116 behandelt den Kategorischen Guide 120 und den Stetigen Guide 122 auf dieselbe Weise. Der Kategorische Guide 120 bildet Attribute und Kategorien auf eine numerische Skale ab, die von Null bis zum Wert n-1 geht, wo n die Anzahl der Kategorien repräsentiert. Der Stetige Guide 122 bildet Attribute auf eine stetige numerische Skale ab.
  • Der Scalebuilder 118 nimmt die Minimum- und Maximumwerte für eine Zahlengruppe und erzeugt eine Skale. Der Client kann den Gebrauch eines jeden der Folgenden anfordern:
    • • ein spezifisches Minimum,
    • • ein spezifisches Maximum,
    • • eine spezifische Anzahl von Strichen und/oder
    • • einen spezifischen Abstand zwischen Strichen (Delta).
  • Man beachte, dass das Festlegen der Anzahl der Striche Delta außer Kraft setzen kann und umgekehrt.
  • Der Guide 116 ist dafür verantwortlich, die Werte auf der numerischen Skale auf die passenden Attribute abzubilden. Sowohl der Guide 116 als auch der Scalebuilder 118 sind Abstraktionen. Konkrete Guides 116 sind entweder der Kategorische Guide 120 oder der Stetige Guide 122, was von den Daten abhängt, und Konkrete Scalebuilder 118 sind Lineare Skale 124, Logarithmische Skale 126 oder Zeitskale 128.
  • Die Achse 114 und Legende 112 benutzen das Modell, um Bilder zu zeichnen. Der Graphrahmen 134 (von 11) benutzt auch dieses Modell.
  • Die Achse 114 ist eine Legende für positionale Graphdimensionen. Den Achsen sollten nur eine Graphdimension zugeordnet werden und sie sollte den Typ POSITIONAL haben. Achsen verwenden nicht das GPL-Symbol für die Strichzeichen, sondern sie verwenden Instanzen der GPL-Linie (sodass Transformationen korrekt funktionieren). Achsen berücksichtigen auch Nebenstriche und ein Lineal. Die Nebenstriche werden unter Verwendung eines Scalebuilders bestimmt, um eine Skale zwischen den Hauptstrichen aufzubauen. Sowohl das Lineal als auch die Striche (und die Nebenstriche) haben ihre eigenen Instanzen der Ästhetik.
  • Die Legende 112 ist ein Bild von einer oder mehreren Graphdimensionen 100. Die Legende 112 nimmt die Information von der Graphdimension 100 und erzeugt ein Bild unter Verwendung von Objekten der Primitiven Graphschnittstelle 34 in einer Renderer-Schnittstelle 152 (von 12). Legenden werden aus Segmenten zusammengesetzt, die den Werten auf den Legenden entsprechen (diese sind Kategorien in einem kategorischen Fall). Jedes Segment hat vier Stücke: den Hauptstrich, das Strichlabel, die Nebenstriche und das Lineal. In einer alternative Ausführungsart können Legenden an der Nord-, Süd-, Ost- oder Westseite einen Label haben und können vertikal oder horizontal ausgerichtet werden. Die einzelnen Legendenelemente umfassen Text, der mit einem Symbol assoziiert ist. Die Strings werden als „Strichlabel" angesehen, und die Symbole werden als „Striche" angesehen. Das Standardsymbol ist ein Symbol 170, kann aber auf jeden Symboltyp eingestellt werden – z. B. Polygon 154, Rechteck 164, Kreis 172; dies kann jedoch außer Kraft gesetzt werden, wenn die Graph-Dimension 100 den Typ FORM (SHAPE) hat. Symbole sind einfach Formen, die eine Position und eine Größe haben. Die in dieser Schnittstelle definierten Konstanten beschreiben, wie das Symbol aussehen sollte.
  • Die Legende 112 funktioniert durch Aufsuchen der entsprechenden Attribute für einen von einer Graphdimension 100 ermittelten gegebenen Skalenwert und die Benutzung des Attributs, um die Ästhetik 38 des Strichs (d. h. des Symbols) zu modifizieren. Die Ästhetikklasse 38 enthält alle Ästhetikattribute zum Zeichnen eines primitiven Graphen. Die Attribute können visuell oder, wie beispielsweise Sound, nichtvisuell sein. Die Renderer-Schnittstelle 152 (von 12) wendet die Ästhetik 38 an, wenn der primitive Graph gezeichnet wird.
  • Der Strichlabel wird auch ermittelt, indem der Skalenwert auf der Graphdimension 100 aufgesucht wird. Viele Optionen steuern das Aussehen von Legende 112 und Layout; diese werden durch das in 11 gezeigte Rahmenlayout-Objekt 42 des Graphrahmens festgelegt.
  • Die Legenden 112 registrieren sich bei einer Renderer-Schnittstelle 152, um das Pointer-Ereignis 184 (in 12 gezeigt) zu empfangen. Nach Empfang eines Pointer- Ereignisses 184, wird die Legende 112 bestimmen, auf welchen Teil der Legende 112 zugegriffen wurde und wird dann ein Legendenzugriff-Ereignis 130 an die Legendenzugriff-Lauscher-Schnittstelle 132 (in 10 gezeigt) abfeuern. Die Legende 112 wird Legendenzugriff-Lauscher 132 über eins von vier Verfahren benachrichtigen, je nachdem auf welchen Teil zugegriffen wurde: einen Strich, einen Strichlabel, den Legendenlabel oder einen anderen Teil der Legende 112. Legendenzugriff-Ereignis 130 erbt vom Pointer-Ereignis 184, das vom Mouse-Ereignis 186 erbt, sodass die gesamte mit dem Zugriff assoziierte Information präserviert ist.
  • Das Legendenzugriff-Ereignis 130 enthält Information bezüglich sowohl der Position des Zugriffs als auch der Werte auf Legende 112, die dem Zugriff entsprechen, wenn solche Werte existieren (d. h. wenn auf einen Strich oder Strichlabel zugegriffen wurde). Die Größe des „Werte"-Arrays wird der Anzahl der Graphdimensionen 100 auf der Legende 112 gleich sein.
  • Der einzige Unterschied zwischen Legende 112 und Achse 114 besteht darin, wie die beiden gezeichnet sind. Da Legende 112 und Achse 114 jeweils ihren eigenen Scalebuilder 118 haben, erbt die Achse 114 von der Legende 112. Der Scalebuilder 118 erzeugt eine unabhängige Skale für die Achse 114, sodass sie ohne Modellwechsel angepasst werden kann. Die Achse 114 fügt auch Nebenstriche und ein Lineal hinzu und redefiniert die Hauptstriche nicht als Symbole 170, sondern als Linien 156. Die Nebenstriche werden unter Verwendung eines Scalebuilder-Objekts 118 erzeugt, das zwischen zwei Hauptstrichen eine Skale in einem Teil der Achse 114 aufbaut und für jeden Wert auf der Skale einen Nebenstrich zeichnet. So hängt die Positionierung von Nebenstrichen von der bestimmten Skale ab, die zum Erzeugen der Striche benutzt wird – z. B. Lineare Skale 124, Logarithmische Skale 126 oder Zeitskale 128. Wie im Fall der Legende 112 kann die Achse 114 zwischen Datenkoordinaten und Renderer-Koordinaten übersetzen.
  • 11 ist ein Objektdiagramm des Rahmen- und Layoutaspekts der vorliegenden Erfindung. Das Design für Rahmen wird in Modell und Ansicht aufgeteilt.
    • • Das Modell, Rahmenmodell 94 (in 5 gezeigt), ist eine Softwarekomponente, die die Struktur von Graph 10 bereitstellt und Graphdimensionen 100 (von 10), Dimensionen für Elemente 46 und Daten 12 für Element 46 enthält.
    • • Die Ansicht, Graphrahmen 134, ist eine Komponente, die ein Bild des Modells durch Aufbau von Graphen aus dem Baum 98 von im Rahmenmodell 94 enthaltenen Dimensionen bereitstellt.
  • Rahmenmodell 94 und Graphrahmen 134 kommunizieren über Rahmenmodelländerungs-Ereignisse 102 (in 5 gezeigt). Rahmenmodell 94 strahlt auch Rahmenmodelländerungs-Ereignisse 102 an die Rahmenmodelländerungs-Lauscher-Schnittstelle 104 aus.
  • Die Rahmenlayout-Schnittstelle 42 (von 2) stellt detaillierte Steuerung über das Aussehen und den Eindruck eines Graphen bereit. Die abstrakte Klasse Basislayout 142 stellt Setter/Getter-Verfahren für viele Eigenschaften bereit, wie beispielsweise Schriftarten, Farben, Positionierungen, wo Striche die Achse 114 schneiden und viele andere. Die Rahmenlayout-Schnittstelle 42 funktioniert, indem sie API-Aufrufe auf gpl.graph-Objekten macht, während sie aufgebaut werden. Die Rahmenlayout-Schnittstelle 42 erhält zwei Gelegenheiten, den Graphrahmen 134 zu ändern: die erste, bevor die Komponenten eines Graphrahmens 134 aufgebaut worden sind; und danach die zweite. Der Graphrahmen 134 umfasst seine Elemente 46 (einschließlich des Rahmenelements 136), seine Legende 112 und seine Achsen 114.
  • Das Basislayout 142 ist eine Rahmenlayout-Schnittstelle 42, die die Verfahren zur elementaren Steuerung des Aussehens und Ausdrucks der Graphrahmen 134 bereitstellt. Das Basislayout 142 stellt nur die Standardwerte bereit; die Unterklassen modifizieren die panelierten Graphen.
  • Konkrete Rahmenlayouts können Größen, Beabstandung und Sichtbarkeit modifizieren, um ein bestimmtes Aussehen zu erzielen. Wie in 11 gezeigt ist, werden vier konkrete Layouts bereitgestellt: Zeilenplotlayout 144, Trellislayout 146, Tortendiagrammlayout 148 und Standardlayout 150. Jedes dieser Layouts ist eine Rahmenlayout-Schnittstelle 42 und wird unten zusammengefasst:
    • • Das Zeilenplotlayout 144 erzeugt einen Graphen mit „Zeilenplot"-Aussehen und Ausdruck. Einige Charakteristiken dieses Aussehens und Ausdrucks schließen ein: a) grauen Hintergrund mit weißem Gitternetz, b) weißen Raum zwischen Panelen und c) alternierende X-Achsen-Positionen zwischen Panelen.
    • • Das Trellislayout 146 basiert auf den „Trellis"-Anzeigen aus „Visualizing Data" von W.S. Cleveland und erzeugt einen Graphen mit einem „Trellis"-Aussehen und Eindruck. Einige Charakteristiken dieses Aussehens und Eindrucks schließen ein: a) weißen Hintergrund und hellgraues Gitternetz, b) Streifenlabel auf jedem Tochterrahmen, c) weißen Raum zwischen Panelen und d) alternierende X-Achsen-Positionen zwischen Panelen: alternierend zwischen Kopf des gesamten Graphen und Fuß des gesamten Graphen.
    • • Das Standardlayout 150 ähnelt dem Zeilenplotlayout 144, versucht aber nicht, Achsenlabel in panelierten Graphen zu unterdrücken. Standardlayout 150 wird benutzt, wenn der Graphrahmen 134 kein Layout spezifiziert.
    • • Das Tortendiagrammlayout 148 kann benutzt werden, um das Standardlayout 150 zu erweitern.
  • Wie oben beschrieben ist, ist der Graphrahmen 134 ein Bild eines Rahmenmodells 94. Der Graphrahmen 134 zeichnet eine Hintergrundbox, Gitternetz, einen Kopftitel und einen Fußtitel (Fußnote) und schließt Achsen 114, eine Legende 112 und null oder mehrere Elemente 46 ein.
  • Der Graphrahmen 134 benutzt die im Baum 98 des Rahmenmodells 94 erzeugten Dimensionen, um die Achsen 114 zu erzeugen. Die Anzahl der erzeugten Achsen 114 basiert auf dem besonderen Koordinatensystem 138, das für den Graphrahmen 134 installiert ist. Die Transformation 36 (in 1 gezeigt) muss den Graphrahmen 134 mit einem Koordinatensystem 138 versorgen, das für die bestimmte Transformation 36 angemessen ist. Das Standard-Koordinatensystem 138 ist das 2D-Koordinatensystem 140. Die Achsen 114 sind skaliert unter Verwendung der vom Baum 98 erhaltenen POSITIONS-Dimensionen. Eine beliebige Anzahl von Element-Objekten 46 benutzen die Achsen 114 innerhalb des Rahmens, um sich selbst zu zeichnen. Elementobjekte 46 können dem Graphrahmen 134 nichtpositionelle Dimensionen hinzufügen, wodurch bewirkt wird, dass er eine Legende 112 zeichnet. Pro Graphrahmen 134 wird nur eine Legende 112 gezeichnet.
  • Der Graphrahmen 134 hat auch ein „Quaderhülle" genanntes Hintergrundpanel. Die Ästhetik 38 der Quaderhülle ist die „Standard-Ästhetik" eines Graphrahmens 134.
  • Der Graphrahmen 134 hat auch sowohl ein Gitternetz als auch zwei Titelmengen für die Labelerzeugung. Das Gitternetz hat sein eigenes Ästhetikobjekt 38, das dazu benutzt werden kann, das Aussehen des Gitternetzes zu ändern. Ein „Titel" erscheint am Kopf des Graphrahmens 134 und der zweite „Fußtitel" erscheint am Fuß (wie eine Fußnote). Der Kopftitel kann ein String 44 (von 2) sein oder ein Textarray 166, oder er kann zum Ziehen-und-Ablegen verschiedener Elementobjekte 46 zwischen Rahmen an die Legende 112 gesetzt werden.
  • Innerhalb des Graphrahmens 134 zeichnen die Elemente 46 eine Datenrepräsentation. Alle Elemente 46 operieren unabhängig von einander, und es können viele verschiedene Elemente 46 dem Graphrahmen 134 hinzugefügt werden. Jedes Element 46 hat seine eigene Elementspezifikation 96 (von 5), die dem Rahmenmodell 94 hinzugefügt wird. Nachdem die Datenansicht-Schnittstelle 14 das Rahmenmodell 94 verarbeitet, wird die Item-Rahmen-Schnittstelle 18 (in 1 gezeigt) die Daten für die Elemente 46 enthalten – d. h. die zum Zeichnen der Elemente erforderliche Geometrie. Beispielsweise wird die Item-Rahmen-Schnittstelle 18 für ein auf Mittelwerten basierendes Balkendiagramm nur die zu zeichnenden Mittelwerte enthalten. Die Item-Rahmen-Schnittstelle 18 für ein Streuungsdiagramm wird alle Rohwerte für das Streuungsdiagramm enthalten. Die Item-Rahmen-Schnittstelle 18 für ein glätteres Diagramm wird alle x,y-Paare für das glättere Diagramm enthalten.
  • Je nach Konstruktion des Baums 98 kann der Graphrahmen 134 ein Rahmenelement 136 zum Panelieren erzeugen. Verlangt die Struktur des Baums 98 mehr POSITIONS-Dimensionen als der Graphrahmen 134 handhaben kann, dann wird der Graphrahmen 134 ein Rahmenelement 136 benutzen und es an den Baum 98 weitergeben. Das Rahmenelement 136 wird dann den Baum 98 untersuchen, um passende „Tochter"-Graphrahmen im Inneren des ursprünglichen Graphrahmens 134 zu erzeugen und zu platzieren. Jeder „Tochter"-Graphrahmen erhält seinen eigenen Baum 98, und der Prozess kann sich wiederholen. Die zum Mutter-Graphrahmen 134 hinzugefügten Elemente 46 werden wie eine biologische Zelle „geteilt" – d. h. das Element 46 teilt sich in und enthält n Klone seiner selbst – und jeder Klon wird in einen Graphrahmen 134 platziert.
  • Die Glyphen-Schnittstelle 32 (in 1 gezeigt) kann bewirken, dass eine Transformation 36 bei einem Graphrahmen 134 „gesetzt" oder „registriert" wird. Wenn sie bei einem Graphrahmen 134 registriert ist, beeinflusst die Transformation 36 die Form des Rahmens, der Gitterlinie, der Achsen 114 und der Elemente 46. Eine beim Graphrahmen 134 registrierte Polartransformation würde beispielsweise bewirken, dass der Graph kreisförmig wäre, würde aber den Titel oder die Legende 112 nicht beeinflussen. Eine beim Graphrahmen 134 registrierte Ähnlichkeitstransformation würde den gesamten Graphen dimensionieren oder auf der Anzeige bewegen.
  • Alles Gezeichnete muss die Glyphen-Schnittstelle 32 (von 1) implementieren. Glyphen zeichnen sich oder bauen sich auf durch Erzeugen von Objekten einer Primitiven Graphschnittstelle 34 innerhalb einer Instanz der Renderer- Schnittstelle 152. Die Glyphen-Schnittstelle 32 kann dann das Bild durch Manipulation dieser Objekte ändern. rebuild()-Aufrufe bewirken das Löschen und das Rekonstruieren dieser Objekte, während Renderer.refresh()-Aufrufe das Screenbild aktualisieren, wobei irgendwelche durch die Glyphe 32 an Objekten der Primitiven Graphschnittstelle 34 ausgeführten Änderungen reflektiert werden.
  • Einzelne Glyphen 32 sind für die Dokumentation verantwortlich, wenn ein rebuild() erforderlich ist. Obwohl die Glyphen 32 auf jede Schicht der Renderer-Schnittstelle 152 gesetzt werden können (die Schichtung bestimmt die Zeichenordnung), können sie ihre Mutter oder ihren Ursprung zurückverfolgen. Beispielsweise wäre die Mutter einer Legende 112 ein Graphrahmen 134.
  • Als Standard wird der Graphrahmen 134 den gesamten Raum in einer Renderer-Schnittstelle 152 einnehmen. Wenn also beim Graphrahmen 134 keine Skaliertransformation 36 registriert ist, dann wird der Graphrahmen 134 das gesamte Fenster ausfüllen, sodass die Achsen 114, Legenden 112 und Titel nicht sichtbar wären. Aus diesem Grund sollte eine Skaliertransformation 36 – wie ein Affine 2D-Transformation – die den Graphrahmen 134 um etwas unter 1,0 skaliert, beim Graphrahmen 134 registriert sein.
  • Der Graphrahmen 134 ist auch ein Mouse-Lauscher. Wenn der Graphrahmen 134 ein Pointer-Ereignis 184 (in 12 gezeigt) von einer Renderer-Schnittstelle 152 hört und erkennt, dass die zugegriffene Primitive Graph-Schnittstelle 34 Teil eines der Folgenden war: Hintergrund, Gitternetz oder Titel des Graphrahmens 134, dann wird der Graphrahmen 134 ein Glyphenzugriff-Ereignis 194 an interessierte Lauscher abfeuern, wodurch sie informiert werden, dass auf einen Rahmen zugegriffen wurde.
  • 12 ist ein Objektdiagramm des Anzeigers der vorliegenden Erfindung. Die Renderer-Schnittstelle 152 ist dazu ausgelegt, von den Zeichenwerkzeugen des Systems unabhängig zu sein. In der bevorzugten Ausführungsart werden Implementierungen der Renderer-Schnittstelle 152 mit Standard-JDK 1.1-Graphik, Java2D und Java3D arbeiten. Diese Unabhängigkeit wird dadurch erzielt, dass primitive graphzeichnende Objekte als Schnittstellen bereitgestellt werden; dazu gehören beispielsweise Polygon 154, Linien 156, Symbollinie 158, Linie 160, Bild 162, Rechteck 164, Text 166, wovon Textbeschreibung 168 ein Teil ist, Symbol 170, Kreis 172, Hexagon 174, Ellipse 175, Schicht 177 (nicht gezeigt), Symbollinie 179 (nicht gezeigt) und Gleichseitiges Dreieck 176. Primitive sind die elementaren Zeichenformen in der GPL. Jede konkrete Renderer-Schnittstelle 152 muss eine Fabrikmethode, createPrimitive() genannt, bereitstellen, um ein konkretes primitives Graphobjekt (das Objekt sollte aus einer inneren Klasse kommen) zu instantiieren. Die Renderer-Schnittstelle 152 legt ein quadratisches Renderer.MIN bis Renderer.MAX-Koordinatensystem über das Zeichenfenster des Systems. Die Werte nehmen von links nach rechts und von unten nach oben zu. Alle Koordinaten zum Zeichnen unterliegen dieser Skale. Die Renderer-Schnittstelle 152 verfolgt auch die Schichtung, von der die Zeichenordnung bestimmt wird. So sollten beispielsweise Objekte in Schicht 2 Objekte in Schicht 1 „überlagern".
  • Alle zeichnenden Primitive Graphschnittstellen erstrecken sich von der Primitiven Graphschnittstelle 34, die Verfahrenssignaturen zum Abfragen/Ändern der Objekt-Ästhetik 38 (ein Objekt, das Farben, Druckformate, Sichtbarkeit usw. des Primitivs beschreibt), Schichtung und Handhabung der Transformationen enthält. Die Primitive Graphschnittstelle 34 erweitert die Assoziierte Datenschnittstelle 56, sodass Metadaten in ein beliebiges Zeichenobjekt eincodiert werden können. Die abstrakte Klasse für Primitivunterstützung 178 ist eine Implementierung der Primitiven Graphsschnittstelle 34, die die meisten der erforderlichen Verfahren handhabt, aber vom Renderer abhängige Verfahren als abstrakt bestehen lässt. Es wird auch eine abstrakte Klasse für Primitive 180 bereitgestellt, die eine als einzelne Schnittstelle manipulierbare Kollektion von Primitiven Graphschnittstellen 34 ist.
  • Die Primitiven Graphschnittstellen 34 sind in der vorliegenden Erfindung elementare Zeichenformen. Alle Zeichenprimitive sollten diese Schnittstelle implementieren. Primitive Graphschnittstellen 34 sind erforderlich zum Pflegen und/oder Bereitstellen: (a) ihres Ästhetikobjekts 38, (b) der Schicht, in der die Renderer-Schnittstelle 152 sie zeichnen sollte, unabhängig davon, ob die Primitiven Graphschnittstellen 34 transformierbar sind oder nicht, und (c) einer Konstanten, wie sie in der Primitiven Graphschnittstelle 34 definiert ist, die ihren Typ beschreibt. Alle Primitiven Graphschnittstellen 34 sind auch Transformationslauscher-Schnittstellen 182 und sollte wissen, wie sie sich transformieren, wenn sie von einem Transformationsobjekt 36 dazu angewiesen werden.
  • Die Primitivunterstützung 178 stellt eine generische Implementierung der Primitiven Graphschnittstelle 34 bereit. Die Primitivunterstützung 178 kann zur Unterklasse gemacht oder direkt benutzt werden; sie stellt Unterstützung zur Pflege der Ästhetik 38 bereit, unabhängig davon, ob die Primitive Graphschnittstelle 34 transformierbar ist oder nicht. Die Primitivunterstützung 178 stellt auch Unterstützung zur Transformation eines Basisprimitivs bereit, indem sie die Quelltransformation anweist, „dieses" Primitiv zu transformieren.
  • Die abstrakte Klasse für Primitive 180 ist eine Kollektion von Primitiven, die alle als eine einzelne Primitive Graphschnittstelle 34 behandelt werden. Werden beispielsweise eine Kreisschnittstelle 172 und eine Rechteckschnittstelle 164 zu einer abstrakten Klasse für Primitive 180 hinzugefügt, dann kann die Ästhetik 38 für beide Schnittstellen mit einem Aufruf an das Primitives.setAesthetics()-Verfahren geändert werden. Dieselbe Idee gilt für Schichten und Transformationen 36. Die innerhalb dieser abstrakten Klasse für Primitive 180 enthaltenen Primitiven können über setClip() geclippt werden.
  • Wenn immer ein Mouse-Ereignis 186 eintritt, erzeugt die Renderer-Schnittstelle 152 ein Pointer-Ereignis 184 aus dem Mouse-Ereignis 186 und feuert es an Mouse-Lauscher und Mousebewegungs-Lauscher ab. Würde auf eine Primitive Graphschnittstelle 34 zugegriffen, dann enthielte das Pointer-Ereignis 184 eine Referenz auf die Primitive Graphschnittstelle 34, auf die zugegriffen wurde. Der Unterschied zwischen einem Pointer-Ereignis 184 und einem Mouse-Ereignis 186 besteht darin, dass das Pointer-Ereignis 184 ein Koordinatenobjekt (nicht gezeigt) enthält, das die Position des Ereignisses durch Renderer.MIN und Renderer.Max definiert. Das Pointer-Ereignis 184 kann auch ein Objekt Primitive Graphschnittstelle 34 enthalten, wenn auf ein solches zugegriffen würde.
  • Im Displayer ist eine Softwarekomponente, Java Canvas Renderer 188, enthalten. Der Java Canvas Renderer 188 ist eine Implementierung der Renderer-Schnittstelle 152 unter Verwendung von Standard-JDK 1.1-java.awt.Graphics auf einem java.awt.Canvas-Objekt.
  • Die auch in 12 gezeigten Transformationen 36 benutzen ihre jeweilige Mathematik, um Koordinaten in andere Koordinaten umzuwandeln und die abstrakte Klasse für Primitive 180 direkt zu modifizieren – d. h. zu transformieren. Eine Klasse der Transformationen 36 ist die 2D-Transfonnation 192. Die Primitive Graphschnittstelle 34 erweitert die Transformationslauscher-Schnittstelle 182, sodass alle primitiven Objekte Transformationsobjekte belauschen können. Nach Empfang eines Transformations-Ereignisses 190 über das transform()-Verfahren fragt die abstrakte Primitiven-Klasse 180 die Ereignisquelle ab – die das Transformationsobjekt 36 ist, von dem das Ereignis abgefeuert wurde – und benutzt es, um sich selbst zu transformieren. Die abstrakte Klasse für Primitivunterstützung 178 handhabt eine Implementierung davon, und der Client steuert, ob eine abstrakte Klasse für Primitive 180 „transformiert" wird oder nicht. Alle abstrakten Klassen für Primitive 180 können setTransformable() auf wahr oder falsch setzen. Ein als „transformierbar" gekennzeichnetes Objekt der abstrakten Klasse für Primitive 180 kann nach einer Transformation 36 ein völlig verschiedenes Aussehen haben, während bei nicht transformierbaren primitiven Objekte nur deren Position geändert werden kann. Beispielsweise würden die Mittelpunktkoordinaten einer nicht transformierbaren Rechteck-Schnittstelle 164 geändert, aber die Rechteckform bliebe erhalten. Demgegenüber könnte eine transformierbare Rechteck-Schnittstelle 164 zu etwas werden, das nicht wie ein Rechteck aussieht.
  • Die Transformationen 36 stellen auch leere Koordinaten-Objekte bereit, die dem Koordinatensystem der eigentlichen Transformation 36 entsprechen, die die korrekte Anzahl von Dimensionen hat. Beispielsweise stellt eine polare Transformation Koordinaten bereit, die zwei Werte (r und Theta) handhaben können, während eine sphärische Transformation Koordinaten mit drei Werten (r, Phi und Theta) bereitstellt. Die Mathematikklasse – eine aus statischen, finalen Verfahren bestehende Klasse, die unter Verwendung von Funktionen wie Kosinus, Logarithmus, Sinus und Quadratwurzel ein Doublesarray mathematisch verarbeitet.
  • Die Transformationen 36 arbeiten, indem sie Transformations-Ereignisse 190 an interessierte abstrakte Klassen für Primitive 180 abfeuern. Die Lauscher werden dann aktiv, um die Transformation 36, die die Quelle des Ereignisses ist, zu veranlassen, auf ihnen zu operieren. Das Ereignis-Modell, wie es hier benutzt wird, nimmt Transformationen 36 auf, die sich auf Mousebewegungen (wie beispielsweise Fischaugentransformation) verlassen können oder ein UI-Werkzeug, das Änderungen in der Transformation 36 bewirkt.
  • 13 ist ein Objektdiagramm, das die Software-Wechselwirkungen abbildet, die auftreten, wenn der Benutzer ein Item auswählt. Benutzeraktionen werden über verschiedene Ereignisse gehandhabt, einschließlich eines der Folgenden: Mouse-Ereignis 186, Pointer-Ereignis 184, Glyphenzugriff-Ereignis 194 oder eine der Unterklassen des Glyphenzugriff-Ereignisses 194 – d. h. Legendenzugriff-Ereignis 130, Rahmenzugriff-Ereignis 196 oder Elementzugriff-Ereignis 198.
  • Auf einer niedrigeren Ebene spricht die konkrete Renderer-Schnittstelle 152 (in 12 gezeigt) die Systemsprache für das Rendern und Detektieren von Zugriffen. Sie bestimmt, auf welches geometrische Objekt – z. B. Kreis 172 und Rechteck 164 (beide von 12) „zugegriffen" wurde und feuert als Reaktion ein Pointer-Ereignis 184 ab, eine Unterklasse des Mouse-Ereignisses 186. Element 46 (von 2), Graphrahmen 134 (von 11), Achse 114 (von 10) und Legende 112 (von 10) lauschen auf das Pointer-Ereignis 184, um zu bestimmen, ob auf ihre geometrische Form zugegriffen wurde. Wurde auf ihre jeweilige geometrische Form zugegriffen, dann feuern sie eine Instanz des Glyphenzugriff-Ereignisses 194 ab, die das Graphikobjekt enthält – oder die Glyphen-Schnittstelle 32 (wie Punkt, Legende 112 u. Ä.), auf die zugegriffen wurde. Controller (siehe 14 und 15) oder andere Lauscher lauschen auf Glyphenzugriff-Ereignisse 194 und starten die Aktion, für deren Ausführung der betreffende Controller ausgelegt war, indem sie direkt auf dem Graphrahmen 134 operieren. Das Pointer-Ereignis 184 kann auch eine Instanz der Primitiven Graphschnittstelle 34 abfeuern.
  • 4 zeigt den Programmserver. Diese Abbildung gilt, wo das erfindungsgemäße Verfahren und System über ein typisches Client-Server-Netz benutzt werden. Die in 4 gezeigte Datenansicht-Serverschnittstelle 86 verteilt Zugriff/Manipulation der Daten zum Erzeugen von Graphen. Die Datenansicht-Schnittstelle 14 erweitert java.rmi.Remote, sodass alle Datenansicht-Objekte verteilt werden können. Es gibt eine konkrete Datenansicht-Schnittstelle 14 auf der Datenansicht-Serverschnittstelle 86 für jeden an den Server angeschlossenen Client. Die Datenansicht-Serverschnittstelle 86 verwaltet die einzelnen, entfernten Datenansicht-Schnittstellen 14, indem sie diese aktiviert/passiviert und gleiche Informationen zwischen Datenansicht-Schnittstellen 14 teilt. Das Clientprogramm muss ein Objekt der Entfernten Datenansicht 88 als seine Datenansicht-Schnittstelle 14 benutzen.
  • Die Entfernte Datenansicht 88 führt alle notwendigen Kommunikationen mit der Datenansicht-Serverschnittstelle 86 aus, und die Entfernte Datenansicht 88 ist auch ein Datendurchlauflauscher 62 (von 3), um Rückrufmeldungen zu empfangen, wenn der Datendurchlauf auf dem entfernten Objekt abgeschlossen ist. Die Kommunikation läuft wie folgt ab:
    • • Ein Client ruft dataview.beginDataPass() auf der clientseitigen Entfernten Datenansicht 88 auf.
    • • Die Entfernte Datenansicht 88 fordert vom Server ein Handle für ihre Datenansicht-Schnittstelle 14 an.
    • • Der Server weckt die korrekte Datenansicht-Schnittstelle 14 und sendet ein Handle an sie zurück.
    • • Die Entfernte Datenansicht 88 registriert sich bei dieser Datenansicht-Schnittstelle 14 als eine Datendurchlauflauscher-Schnittstelle 62, falls sie nicht schon registriert ist.
    • • Die Entfernte Datenansicht 88 ruft dataview.beginDataPass() auf der serverseitigen Datenansicht-Schnittstelle 14 auf.
    • • Die serverseitige Datenansicht-Schnittstelle 14 ruft aboutToDataPass() auf.
    • • Dies wird von der Entfernten Datenansicht 88 empfangen und an ihre clientseitigen Lauscher weitergeleitet.
    • • Rufe von der Entfernten Datenansicht 88 clientseitigen Datendurchlauflauscher-Schnittstelle 62 werden an die serverseitige Datenansicht-Schnittstelle 14 weitergeleitet.
    • • Der Datendurchlauf läuft ab (serverseitig).
    • • Die serverseitige Datenansicht-Schnittstelle 14 ruft finishedDataPass() auf.
    • • Dies wird clientseitig von der Entfernten Datenansicht 88 empfangen und an Lauscher weitergeleitet.
    • • Vergeht eine festgesetzte Anzahl von Millisekunden ohne Unterbrechung, dann fordert die Entfernte Datenansicht 88 die Datenansicht-Serverschnittstelle 86 auf, die serverseitige Datenansicht-Schnittstelle 14 zu passivieren.
  • Der Server für Abstrakte Datenansicht 90 stellt eine Implementierung der Datenansicht-Schnittstelle 86 bereit, überlässt aber Unterklassen das tatsächliche Schreiben und Lesen zum Aktivieren/Passivieren. Der Server für dateibasierte Datenansicht 92 liest von und schreibt auf Dateien auf Platte.
  • 14 bildet die Controller-Schnittstelle 40 und die verschiedenen Controller ab, die durch die Controller-Schnittstelle 40 arbeiten. Die implementierenden Schnittstellen der Controller-Schnittstelle 40 sind der Metadatenanzeige-Controller 200, der Kategorieordnungs-Controller 202, der Vergleichslineal-Controller 204, der Elementbewegungs-Controller 206, der Elementfilter-Controller 208 (der eine abstrakte Klasse ist) und der Schwenk-und-Zoom-2D-Controller 210.
  • Der Metadatenanzeige-Controller 200 zeigt von einem Element 46 (von 2) empfangene Metadaten, ein Legendenlabel oder ein Legendenstrichlabel an.
  • Der Kategorieordnungs-Controller 202 steuert die Ordnung, in der die Kategorien angezeigt werden. Der Vergleichslineal-Controller 204 benutzt Metadaten, um Endbenutzer vor ungültigen Vergleichen in einem Graphen 10 zu warnen. Der Elementbewegungs-Controller 206 bewegt Elemente 46 zwischen Rahmen in einem panelierten Graphen 10. Die abstrakte Klasse Elementfilter-Controller 208 steuert, ob einzelne Fälle (Zeilen) in einem Graphen 10 enthalten sind oder nicht. Nicht in einem Graphen enthaltene Fälle sind nicht sichtbar und nicht mit Funktionen involviert, die ein Element 46 benutzen kann.
  • Fünf verschiedene Filtertypen sind verfügbar: Bereichs-Slidefilter-Controller 212, Bereichs-2D-Slidefilter-Controller 214, Slidefilter-Controller 216, Pickerfilter-Controller 218 und Textsuchefilter-Controller 220. Jedes dieser fünf Filter kann in die Elementfilter-Controllergruppe 222 eingesetzt werden, die als ein einzelnes Filter arbeitet.
  • Der Slidefilter-Controller 216 filtert einen einzelnen Punkt der Daten 12 und zeigt nur den ausgewählten Datenpunkt. Der Pickerfilter-Controller 218 arbeitet nur mit den gesamten Kategorien einer Menge der Variablen 22. Selektion/Deselektion einer kategorischen Variable durch den Pickerfilter-Controller 218 bewirkt, dass die gesamte Kategorie gefiltert oder nicht gefiltert wird. Der Bereichs-Slidefilter-Controller 212 filtert einen Datenbereich, und es werden nur die Daten innerhalb des ausgewählten Bereichs gezeigt; umgekehrt können alle Daten gezeigt werden, die nicht im ausgewählten Bereich liegen. Der Bereichs-2D-Slidefilter-Controller 214 filtert gleichzeitig einen Datenbereich in zwei Dimensionen.
  • Der Schwenk-und-Zoom-2D-Controller 210 ist ein Graph-Navigationswerkzeug. Er ermöglicht einem Benutzer, in einem Graphen zu „schwenken" und zu „zoomen". Der Schwenk-und-Zoom-2D-Controller 210 und Elementfilter-Controller 208 sind Unterklassen des Panels 224.
  • 15 zeigt die Relation zwischen der Controller-Schnittstelle 40 und den Builder-Controllern. Builder-Controller sind Module, die benutzt werden, um ein UI zur Erzeugung von Graphen zu konstruieren. Die Builder-Controller implementieren Schnittstellen der Controller-Schnittstelle 40 und schließen Folgendes ein: den Graphdrehpunkt-Controller 226, den Legendenattribut-Controller 228, den Achsenfunktions-Controller 230, den Rahmenlayout-Controller 232, den Elementwerkzeugleisten-Controller 234, den Elementeigenschaft-Controller 236 und den Variablenlisten-Controller 238. Davon sind die letzten vier – d. h. Rahmenlayout-Controller 232, Elementwerkzeugleisten-Controller 234, Elementeigenschaft-Controller 236 und Variablenlisten-Controller 238 – Unterklassen von JPanel 240.
  • Der Graphdrehpunkt-Controller 226 stellt Drehfähigkeiten für Graphen bereit. Achsen 114 können miteinander gedreht werden, indem eine Menge von Variablen 22 (von 1) von einer Achse 114 zur anderen gezogen wird. Der Legendenattribut-Controller 228 stellt direkte Steuerung über die Abbildung von Attributen auf Daten bereit.
  • Der Achsenfunktions-Controller 230 stellt Steuerung der auf einer bestimmten Achse 114 benutzten Funktion bereit. Die Funktionen werden durch Reflexion aus gpl.dataview gewonnen. Funktionen können der Popup-Liste hinzugefügt oder von ihr entfernt werden über die indexierte Eigenschaft setFunctions. Der Achsenfunktions-Controller 230 belauscht den Graphen 10 (von 1) oder den Graphrahmen 134 (von 11) auf Legendenzugriff-Ereignisse 130 (von 10). Der Achsenfunktions-Controller 230 verändert einfach das Objekt Rahmenlayout-Schnittstelle 42 (von 2) in ein spezifiziertes Layout.
  • Der Rahmenlayout-Controller 232 stellt Steuerung über das Layout des Graphrahmens 134 oder des Graphen 10 bereit. Der Rahmenlayout-Controller 232 belauscht den tatsächlichen Graphen 10 oder Graphrahmen 134 auf Eigenschaftsänderungs-Ereignisse.
  • Der Elementwerkzeugleisten-Controller 234 stellt Steuerung über Elemente 46 bereit, die im Graph 10 oder Graphrahmen 134 enthalten sind. Die Elemente 46 können aus dem Graphen entfernt werden, indem man auf das Element 46 klickt und es zu einer Element-Werkzeugleiste zurückzieht. Verschiedene Elemente 46 können über die Elemente indexierte Eigenschaft der Element-Werkzeugleiste hinzugefügt und von ihr entfernt werden. Der Elementwerkzeugleisten-Controller 234 belauscht den Graphen 10 und Graphrahmen 134 auf Eigenschaftsänderungs-Ereignisse (nicht gezeigt), Rahmenzugriff-Ereignisse 196 (von 13) und die tatsächlichen Graphen 10 oder Elemente 46 auf Elementzugriff-Ereignisse 198 (von 13).
  • Der Elementeigenschaft-Controller 236 stellt Steuerung über die Eigenschaften eines bestimmten Elements 46 bereit. Die editierbaren Eigenschaften des Elements 46 werden in einer Tabelle angezeigt und können vom Benutzer modifiziert werden. Der Elementeigenschaft-Controller 236 lauscht auf Datenänderungs-Ereignisse von der Datenansicht-Schnittstelle 14, Elementzugriff-Ereignisse 198 von Graphen 10 oder Elementen 46 und Eigenschaftsänderungs-Ereignisse von Graphen 10 oder Graphrahmen 134.
  • Der Variablenlisten-Controller 238 stellt Steuerung darüber bereit, welche Variablen 22 in einem Graphen angezeigt werden. Die Variablen 22 können aus dem Graphen entfernt werden. Der Variablenlisten-Controller 238 lauscht auf Datenänderungs-Ereignisse von der Datenansicht-Schnittstelle 14 sowie auf Legendenlabel-Auslösung, Legenden-Auslösung und Eigenschaftsänderungs-Ereignisse (nicht gezeigt) vom Graphrahmen 134 oder Graphen 10.
  • 16 ist ein Objektdiagramm des Elementepakets der vorliegenden Erfindung. Das Elementepaket enthält die tatsächlichen Elemente (Unterklassen von Element 46) zum Zeichnen des Graphen 10.
  • Es gibt zwei Hauptklassen der Elemente 46: Einzeldomänen-Elemente 242 und Elemente 244 mit zusammenhängender Domäne. Der Unterschied zwischen beiden liegt darin, wie die Daten an die Unterklassen Intervall 246 und Punkt 248 der Einzeldomänen-Elemente 242 sowie die Unterklassen Fläche 250 und Linie 252 der Elemente 244 mit zusammenhängender Domäne zugeführt werden. Einzeldomänen-Elemente 242 zeichnen ein Einzelbild für jeden Wert in jeder Domäne und es werden ihnen nur die Daten für die Domäne zugeführt, die gerade gezeichnet wird. Dagegen zeichnen Elemente 244 mit zusammenhängender Domäne zwischen Werte über die gesamte Domäne, weshalb ihnen alle Daten für eine bestimmte Domäne zugeführt werden. Von den Elementen 244 mit zusammenhängender Domäne füllt die Unterklasse Fläche 250 eine Fläche für die Resultate einer über der Domäne zusammenhängenden Funktion; die Unterklasse Linie 252 zeichnet eine Linie für die Resultate einer über der Domäne zusammenhängenden Funktion. Vom Einzeldomänen-Element 242 zeichnet die Unterklasse Intervall 246 eine Form zwischen zwei oder mehreren Koordinaten, wobei die Form des Intervalls vom Wert des Ästhetik-Formparameters abhängt, der durch die Constraints im Punkt definiert ist; der Punkt 248 zeichnet einen einzigen Punkt für jede Koordinate, wobei die Form des Punkts vom Wert der Ästhetik- Formparameter abhängt, die durch Constraints definiert sind, die Folgendes umfassen: Schriftzeichen, Punkt, Horizontalstrich, Hexagon, Bild, Plus, Rechteck, Breitenausdehnung, Dreieck und Vertikalstrich.
  • Annotationselemente 254 werden auch bereitgestellt. Annotationselemente 254 dienen Referenzzwecken und basieren nicht auf Daten aus der Datenansicht-Schnittstelle 14. Sie können alle in einen Graphrahmen 134 (von 11) platziert werden unter Verwendung von Datenkoordinaten oder Koordinaten (–1 bis 1) aus der Renderer-Schnittstelle 152 (in 12 gezeigt). Die Unterklassen des Annotationselements 254 sind Referenzlinie 256, Referenzbild 258, Referenztext 260 und Referenzfläche 262, die alle zur Annotation eines Graphen 10 benutzt werden.
  • Die finale Unterklasse des Elements 46 ist der Parkettstein 264.
  • Eine andere erfindungsgemäße Ausführungsart ist ein Verfahren zum Erzeugen von quantitativer ästhetischer Graphik aus Daten. Diese Ausführungsart nutzt die Softwarekomponenten des erfindungsgemäßen Systems, wie oben beschrieben ist. Das Verfahren umfasst das Bereitstellen eine Variablenliste. Die Datenansicht-Schnittstelle 14 stellt eine solche Liste bereit. Die Daten 12 werden nach der Indexierung zuerst in Variable Datenstrukturen umgewandelt und dann in Mengen von Variablen 22 durch Anwendung der Algebra 24, was das Benutzen von mindestens einer der Funktionen Nest, Blend und Cross involviert, die oben beschrieben sind.
  • Die Variablen sind wie vorher beschrieben und können stetig sein oder als Alternative kategorisch. Wenn die Variablen kategorisch sind, dann ist die numerische Skale eine ganze Zahl mit einem Wertebereich von null bis zur Anzahl der Kategorien minus eins. Wenn die Variablen stetig sind, dann läuft die numerische Skale vom Minimumwert für die Daten bis zum Maximumwert. Die Datenansicht-Schnittstelle 14 verarbeitet im Rahmenmodell 94 enthaltene Spezifikationen, die ausgeführt werden müssen, um die Elemente 46 in einem Graphen zu zeichnen. In die Spezifikationen eingeschlossen sind Algebraische Spezifikation 48 (von 2), Elementspezifikation 96 (von 5), Variable Transformationsspezifikation 52 (von 2) und Koordinatenspezifikation 50 (von 2), wie oben erörtert ist.
  • Der nächste Schritt ist das Bereitstellen einer Liste der Punktrepräsentationen. Solche Repräsentationen können ein jedes der oben beschriebenen Attribute umfassen, definiert durch den Typ der Graphdimension 100, wie oben erörtert ist. So können die Repräsentationen solche wie beispielsweise die Folgenden umfassen: Position, Größe, Form, Farbe, Farbton, Helligkeit, Sättigung, Rotation, Unschärfe, Transparenz, Textes, Muster, Orientierung oder Körnung. Wie oben beschrieben ist und gemäß der Erfindung, benutzt die Glyphe 32 eine Graphfunktion, um einen Primitiven Graphen 34 aus den Variablen zu erzeugen und bezieht die Variablen auf Dimensionen eines geometrischen Raums, in den der Graph eingebettet wird.
  • Ein anderer Schritt des erfindungsgemäßen Verfahrens ist das Bereitstellen einer Liste von Koordinatenpunkten, auf einem Koordinatensystem basierend, wie vorher beschrieben ist. Jedes passende Koordinatensystem kann benutzt werden, einschließlich beispielsweise des kartesischen, rechtwinkligen, polaren, sphärischen oder anderen Systems. Das bestimmte Koordinatensystem 138, das für den Graphrahmen 134 installiert ist, bestimmt die Anzahl der erzeugten Achsen 114.
  • Das Verfahren umfasst auch das Bereitstellen einer Liste von ästhetischen Repräsentationen. Die Ästhetikklasse 38 enthält alle ästhetischen Attribute zum Zeichnen eines Primitiven Graphen 34. Diese Attribute können visuell sein oder als Alternative nichtvisuell wie beispielsweise Sound.
  • Zusätzliche Schritte des erfindungsgemäßen Verfahrens enthalten das Auswählen von mindestens einer Variablen aus der Variablenliste, wobei mindestens eine Repräsentation für Punkte aus der Liste der Repräsentationen für Punkte ausgewählt wird, mindestens ein Koordinatensystem aus der List der Koordinatensysteme ausgewählt wird und mindestens eine ästhetische Repräsentation aus der Liste der ästhetischen Repräsentationen ausgewählt wird.
  • Nachdem die obigen Auswahlen getroffen worden sind, involvieren die nächsten Schritte des erfindungsgemäßen Verfahrens das Bewegen der mindestens einen Variablen an eine vorbestimmte Position und das Anzeigen einer sichtbaren Graphik, die Folgendes repräsentiert: die mindestens eine Variable, die mindestens eine Repräsentation für Punkte, das mindestens eine Koordinatensystem und die mindestens eine ästhetische Repräsentation. Der Graphrahmen 134 zeichnet eine Hintergrundbox, ein Gitternetz, einen Kopftitel, einen Fußtitel und enthält Achsen 114, eine Legende 112 und Elemente 46. Die Item-Rahmen-Schnittstelle 18 enthält die zum Zeichnen der Elemente erforderliche Geometrie. Die Transformation 36 ortet einen Punkt im Raum, dessen Koordinatensystem gegeben ist. Unter Verwendung ihrer jeweiligen Mathematik, transformiert die Transformation 36 Koordinaten in andere Koordinaten und modifiziert direkt – d. h. transformiert – die abstrakte Klasse für Primitive 180, wie oben beschrieben ist. Dadurch transformiert die Transformation 36 den Primitiven Graphen 34 und repräsentieret ihn im ausgewählten Koordinatensystem. Die Transformationen 36 sind auf Transformationen beschränkt, die die funktionale Relation zwischen der Domäne und dem Bereich eines bestimmten Primitiven Graphen 34 aufrechterhalten. Vorzugsweise ist die Transformation 36 beim Graphrahmen 134 registriert. Die Renderer-Schnittstelle 152 (von 12) wendet die Ästhetik 38 an, wenn der Primitive Graph gezeichnet wird. Zeichenobjekte für Primitive Graphen werden bereitgestellt; wie in 12 gezeigt ist, sind darin beispielsweise Folgende enthalten: Polygon 154, Linien 156, Symbollinie 158, Linie 160, Bild 162, Rechteck 164, Text 166, wovon Textbeschreibung 168 ein Teil ist, Symbol 170, Kreis 172, Hexagon 174, Ellipse 175, Schicht 177 (nicht gezeigt), Symbollinie 179 (nicht gezeigt) und andere Primitive 181 (nicht gezeigt). In der graphischen Repräsentation kann die Punktmenge beispielsweise durch ein Intervall, einen Punkt, eine Fläche oder eine Linie repräsentiert sein.
  • In noch einer anderen erfindungsgemäßen Ausführungsart wird ein Datenverarbeitungssystem bereitgestellt, das Graphen mathematisch aus Daten konstruiert und die Graphen ästhetisch als Graphik repräsentiert. Das System umfasst einen Computerprozessor und einen an die Computerverarbeitung gekoppelten Speicher. Der Speicher enthält einen Satz Computerbefehle zum:
    • (a) Indexieren der Daten 12, um eine Datenmenge 16 zu bilden;
    • (b) Umwandeln der Datenmenge in eine Variable Datenstruktur, die wie folgt definiert ist: Varset [X1, ..., Xn] = [Im, X1, ..., Xn, f], wo X1, ..., Xn n Mengen repräsentiert und eine endliche Menge oder eine Menge reeller Zahlen oder markierter reeller Zahlen ist. I ist eine Indexmenge {1, 2, ..., m} ist, die über alle natürlichen Zahlen N variiert, f: I → X1 × X2 × ... × Xn und f über alle möglichen Funktionen dieser Form variiert.
    • (c) Umwandeln der Variablen Daten Struktur in eine Menge von Variablen 22 der Form V = varset[X] unter Verwendung von mindestens einer der Funktionen Blend-Funktion, Cross-Funktion und Nest-Funktion;
    • (d) Abbilden der Menge von Variablen 22 in eine Menge mathematischer Punkte; und
    • (e) Abbilden der Menge mathematischer Punkte in eine ästhetische Repräsentation.
  • Der Speicher kann auch Befehle zum Implementieren der oben beschriebenen verschiedenen Funktionen und Schnittstellen enthalten.
  • Eine andere erfindungsgemäße Ausführungsart ist ein nichtflüchtiges Speichermedium, das in einem maschinenlesbaren Format codierte Computersoftware zum Erzeugen von quantitativer Graphik enthält. Das nichtflüchtige Speichermedium enthält: einen Satz von Computerbefehlen zum Indexieren von Daten, um eine Datenmenge zu bilden; einen Satz von Computerbefehlen zum Umwandeln der Datenmenge in eine variable Datenstruktur, wobei die variable Datenstruktur eine Indexmenge, einen Bereich und eine Funktion hat; einen Satz von Computerbefehlen zum Umwandeln der variablen Datenstruktur in eine Menge von Variablen durch Verwendung mindestens einer Funktion, die aus der Folgendes umfassenden Gruppe ausgewählt ist: eine Blend-Funktion, eine Cross-Funktion und eine Nest-Funktion; einen Satz von Computerbefehlen zum Abbilden der Menge der Variablen in eine Punktmenge; und einen Satz von Computerbefehlen zum Abbilden der Punktmenge in eine ästhetische Repräsentation. Das nichtflüchtige Speichermedium kann zusätzlich einen Satz von Befehlen enthalten, die die Variablen zu Dimensionen eines geometrischen Raums in Beziehung setzen, in den die ästhetische Repräsentation eingebettet wird.
  • Die oben beschriebenen Merkmale, Funktionen und Ereignisse werden auf ähnliche Weise in diese Ausführungsart eingegliedert.
  • 17 ist ein Objektdiagramm, das die Wechselbeziehung zwischen den folgenden vorher erörterten Softwarekomponenten zeigt:
    • (a) die Datenansicht-Schnittstelle 14 (in 3 gezeigt) einschließlich der Entfernten Datenansicht 88 (in 4 gezeigt) und der JDBC-Datenansicht 66 (in 3 gezeigt);
    • (b) die Item-Rahmen-Schnittstelle 18 (in 1 gezeigt) einschließlich des Rahmenmodells 94 (in 5 gezeigt), den Baum 98 und die Graphdimensionen 100 umfassend (beide in 5 gezeigt);
    • (c) die Controller-Schnittstelle (in 14 und 15 gezeigt); und
    • (d) die Rahmenlayout-Schnittstelle 42 einschließlich Graphrahmen 134, Legende 112, Achsen 114 und Glyphen-Schnittstelle 32 (die alle in 11 gezeigt sind).
  • Die oben beschriebenen erfindungsgemäßen Ausführungsarten sind nur als Veranschaulichungen gedacht und sollten nicht als Einschränkung der in den nachfolgenden Patentansprüchen dargelegten Erfindung angesehen werden. Es wird deutlich sein, dass die Erfindung zu einer Vielzahl von Änderungen, Modifikationen und Umgruppierungen befähigt ist und dass beabsichtigt ist, dass solche Änderungen, Modifikationen und Umgruppierungen in den Schutzbereich der nachfolgenden Patentansprüche fallen.
  • Elemente und Schritte in den Patentansprüchen wurden nur deshalb numerisch und/oder alphabetisch bezeichnet, um die Lesbarkeit und Verständlichkeit zu fördern. Als solches wird nicht beabsichtigt und soll nicht angenommen werden, dass allein die numerische und/oder alphabetische Bezeichnung die Anordnung der Elemente und/oder Schritte in den Patentansprüchen angibt.

Claims (13)

  1. Verfahren zum Computergenerieren von quantitativer ästhetischer Graphik aus Daten, folgende Schritte umfassend: Indexieren der Daten, um eine Datenmenge zu bilden; Umwandeln der Datenmenge in eine variable Datenstruktur, wobei die variable Datenstruktur eine Indexmenge, einen Bereich und eine Funktion umfasst; Umwandeln der variablen Datenstruktur in eine Menge von Variablen unter Verwendung von mindestens einem der Schritte Blend-Schritt, Cross-Schritt und Nest-Schritt, worin die Umwandlung einer variablen Datenmenge in eine variable Datenstruktur außerdem das Überwachen des Bereichs einer jeden Variablen umfasst, um in der Datenmenge einen Wert zu detektieren, der außerhalb des Bereichs liegt, sodass Fehler in der Datenmenge abgefangen werden; Abbilden der Menge der Variablen in eine Punktmenge; und Abbilden der Punktmenge in eine ästhetische Repräsentation.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass, wenn die Datenmenge einen Wert außerhalb des Bereichs enthält, mindesten einer der Schritte aus der folgenden Gruppe ausgeführt wird: der Wert wird auf geeignete Weise zugewiesen oder dem Benutzer wird mitgeteilt, dass der Wert nicht verarbeitet werden kann.
  3. Verfahren nach Anspruch 1, worin aus dem Cross-Schritt ein kartesisches Produkt im Bereich der variablen Datenstruktur resultiert.
  4. Verfahren nach Anspruch 1, worin aus dem Nest-Schritt eine Schichtung der Werte der Mengen resultiert.
  5. Verfahren nach Anspruch 1, worin aus dem Blend-Schritt eine Vereinigung im Bereich der variablen Datenstruktur resultiert.
  6. Verfahren nach Anspruch 1, außerdem folgende Schritte umfassend: a. Bereitstellen einer Variablenliste; b. Bereitstellen einer Liste der Punktrepräsentationen; c. Bereitstellen einer Liste der Koordinatensysteme; d. Bereitstellen einer Liste der ästhetischen Repräsentationen; worin der Schritt des Abbildens einer Punktmenge in eine ästhetische Repräsentation Folgendes umfasst: e. Auswählen mindestens einer Variablen aus der Variablenliste; f. Auswählen mindestens einer Punktrepräsentation aus der Liste der Punktrepräsentationen; g. Auswählen mindestens eines Koordinatensystems aus der Liste der Koordinatensysteme; h. Auswählen mindestens einer ästhetischen Repräsentation aus der Liste der ästhetischen Repräsentationen; i. Bewegen der mindestens einen Variablen an eine vorbestimmte Stelle; und j. Anzeigen einer sichtbaren Graphik, die die mindestens eine Variable, die mindestens eine Punktrepräsentation, das mindestens eine Koordinatensystem und die mindestens eine ästhetische Repräsentation reflektiert.
  7. Verfahren nach Anspruch 6, dadurch gekennzeichnet, dass die mindestens eine Variable, die an eine vorbestimmte Stelle bewegt wird, von mindestens einer Funktion manipuliert worden ist, wobei die Funktion aus der Gruppe ausgewählt wurde, die aus Blend-Funktion, Nest-Funktion und Cross-Funktion besteht.
  8. Verfahren nach Anspruch 7, dadurch gekennzeichnet, dass aus der Blend-Funktion eine Vereinigung im Bereich der variablen Datenstruktur resultiert.
  9. Verfahren nach Anspruch 7, dadurch gekennzeichnet, dass aus der Cross-Funktion ein kartesisches Produkt im Bereich der variablen Datenstruktur resultiert.
  10. Verfahren nach Anspruch 7, dadurch gekennzeichnet, dass der Schritt des Bewegens der mindestens einen Variablen an eine vorbestimmte Stelle die Verknüpfung der mindestens einen Variablen an die Dimensionen eines geometrischen Raums umfasst, in den die ästhetische Repräsentation eingebettet wird.
  11. Datenverarbeitungssystem zur mathematischen Konstruktion von Graphen aus Daten und zur ästhetischen Repräsentation der Graphen als Graphik, bestehend aus: einem Computerprozessor; und einem Speicher, ansprechbar an den Computerprozessor gekoppelt, der einen Satz von Computerbefehlen enthält zum Ausführen der Verfahrensschritte nach irgendeinem der vorhergehenden Ansprüche, wenn die Befehle vom Computerprozessor ausgeführt werden.
  12. System nach Anspruch 11, dadurch gekennzeichnet, dass die Computerbefehle zum Umwandeln der Datenmenge in eine variable Datenstruktur außerdem einen Befehl enthalten, der der Datenmenge einen geeigneten Wert zuweist oder anzeigt, dass der Wert nicht verarbeitet werden kann, wenn die Datenmenge einen Wert außerhalb des Bereichs enthält.
  13. Nichtflüchtiges Speichermedium mit in maschinenlesbarem Format codierter Computersoftware, die einen Computer anweist, nach dem Verfahren eines der Ansprüche 1 bis 10 ästhetische Graphik aus Daten zu erzeugen.
DE60031664T 1999-04-21 2000-04-20 Computerverfahren und vorrichtung zum schaffen von sichtbarer graphik unter verwendung von graph algebra Expired - Lifetime DE60031664T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13023499P 1999-04-21 1999-04-21
US130234P 1999-04-21
PCT/US2000/010752 WO2000063841A1 (en) 1999-04-21 2000-04-20 Computer method and apparatus for creating visible graphics by using a graph algebra

Publications (2)

Publication Number Publication Date
DE60031664D1 DE60031664D1 (de) 2006-12-14
DE60031664T2 true DE60031664T2 (de) 2007-08-30

Family

ID=22443703

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60031664T Expired - Lifetime DE60031664T2 (de) 1999-04-21 2000-04-20 Computerverfahren und vorrichtung zum schaffen von sichtbarer graphik unter verwendung von graph algebra

Country Status (8)

Country Link
US (3) US6492989B1 (de)
EP (1) EP1175661B1 (de)
AT (1) ATE344510T1 (de)
AU (1) AU4478800A (de)
CA (2) CA2370973C (de)
DE (1) DE60031664T2 (de)
DK (1) DK1175661T3 (de)
WO (1) WO2000063841A1 (de)

Families Citing this family (95)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU4478800A (en) * 1999-04-21 2000-11-02 Spss Inc. Computer method and apparatus for creating visible graphics by using a graph algebra
US7093192B2 (en) * 1999-07-30 2006-08-15 Microsoft Corporation Establishing and displaying dynamic grids
US7187662B1 (en) * 1999-08-11 2007-03-06 Klingman Edwin E Table driven call distribution system for local and remote agents
AU7311900A (en) * 1999-09-16 2001-04-17 Sony Computer Entertainment Inc. Image processing apparatus, recording medium, and program
US6940998B2 (en) 2000-02-04 2005-09-06 Cernium, Inc. System for automated screening of security cameras
US6894703B2 (en) * 2000-08-29 2005-05-17 Mitsubishi Electric Research Laboratories, Inc. Multi-user collaborative circular graphical user interfaces
US6948124B2 (en) * 2000-12-20 2005-09-20 Eastman Kodak Company Graphical user interface utilizing three-dimensional scatter plots for visual navigation of pictures in a picture database
EP1373899A1 (de) * 2001-02-07 2004-01-02 Baylor College Of Medicine Verfahren zur prognose nach prostatakrebstherapie
US20030006986A1 (en) * 2001-04-10 2003-01-09 Dick Thomas P Method and apparatus for demonstrating mathematical relationships
US7627588B1 (en) 2001-05-07 2009-12-01 Ixreveal, Inc. System and method for concept based analysis of unstructured data
US7194483B1 (en) 2001-05-07 2007-03-20 Intelligenxia, Inc. Method, system, and computer program product for concept-based multi-dimensional analysis of unstructured information
USRE46973E1 (en) 2001-05-07 2018-07-31 Ureveal, Inc. Method, system, and computer program product for concept-based multi-dimensional analysis of unstructured information
US8665293B2 (en) * 2001-05-16 2014-03-04 Autodesk, Inc. Automatic draw order
US8589413B1 (en) 2002-03-01 2013-11-19 Ixreveal, Inc. Concept-based method and system for dynamically analyzing results from search engines
US7526424B2 (en) * 2002-03-20 2009-04-28 Microsoft Corporation Sentence realization model for a natural language generation system
US7170519B2 (en) * 2002-03-29 2007-01-30 Sas Institute Inc. Computer-implemented system and method for generating data graphical displays
US7015911B2 (en) * 2002-03-29 2006-03-21 Sas Institute Inc. Computer-implemented system and method for report generation
US20030225734A1 (en) * 2002-06-04 2003-12-04 Evan Witt Interactive diagram in markup language page
US7084872B2 (en) * 2002-07-18 2006-08-01 International Business Machines Corporation Direct-manipulation user interface control for proportionally adjusting a graph of multi-range data sets
US7089266B2 (en) 2003-06-02 2006-08-08 The Board Of Trustees Of The Leland Stanford Jr. University Computer systems and methods for the query and visualization of multidimensional databases
US7756907B2 (en) 2003-09-16 2010-07-13 The Board Of Trustees Of The Leland Stanford Jr. University Computer systems and methods for visualizing data
US7337163B1 (en) * 2003-12-04 2008-02-26 Hyperion Solutions Corporation Multidimensional database query splitting
US8037102B2 (en) 2004-02-09 2011-10-11 Robert T. and Virginia T. Jenkins Manipulating sets of hierarchical data
JP4646538B2 (ja) 2004-03-26 2011-03-09 アルパイン株式会社 ナビゲーション機能を有する電子装置および夜景マップ表示方法
JP4436186B2 (ja) * 2004-05-12 2010-03-24 アルパイン株式会社 ナビゲーション装置及び地図表示方法
US9646107B2 (en) 2004-05-28 2017-05-09 Robert T. and Virginia T. Jenkins as Trustee of the Jenkins Family Trust Method and/or system for simplifying tree expressions such as for query reduction
US7627591B2 (en) 2004-10-29 2009-12-01 Skyler Technology, Inc. Method and/or system for manipulating tree expressions
US7801923B2 (en) 2004-10-29 2010-09-21 Robert T. and Virginia T. Jenkins as Trustees of the Jenkins Family Trust Method and/or system for tagging trees
US7636727B2 (en) 2004-12-06 2009-12-22 Skyler Technology, Inc. Enumeration of trees from finite number of nodes
US7630995B2 (en) 2004-11-30 2009-12-08 Skyler Technology, Inc. Method and/or system for transmitting and/or receiving data
US7800613B2 (en) * 2004-12-02 2010-09-21 Tableau Software, Inc. Computer systems and methods for visualizing data with generation of marks
US8316059B1 (en) 2004-12-30 2012-11-20 Robert T. and Virginia T. Jenkins Enumeration of rooted partial subtrees
US8615530B1 (en) 2005-01-31 2013-12-24 Robert T. and Virginia T. Jenkins as Trustees for the Jenkins Family Trust Method and/or system for tree transformation
US7681177B2 (en) 2005-02-28 2010-03-16 Skyler Technology, Inc. Method and/or system for transforming between trees and strings
US8356040B2 (en) 2005-03-31 2013-01-15 Robert T. and Virginia T. Jenkins Method and/or system for transforming between trees and arrays
CA2603515C (en) * 2005-04-07 2015-02-10 Insightful Corporation Method and system for handling large data sets in a statistical language
US7747946B2 (en) * 2005-04-11 2010-06-29 Microsoft Corporation System and method for adorning shapes with data driven objects
TWI275966B (en) * 2005-04-15 2007-03-11 Ming-Jang Chen General-purpose complex structure composition method and its computer program
US7899821B1 (en) 2005-04-29 2011-03-01 Karl Schiffmann Manipulation and/or analysis of hierarchical data
US7822224B2 (en) * 2005-06-22 2010-10-26 Cernium Corporation Terrain map summary elements
US7734635B2 (en) * 2005-06-30 2010-06-08 Microsoft Corporation Indexed views
US8099674B2 (en) 2005-09-09 2012-01-17 Tableau Software Llc Computer systems and methods for automatically viewing multidimensional databases
EP1952280B8 (de) 2005-10-11 2016-11-30 Ureveal, Inc. System, verfahren und computerprogrammprodukt für suche und analyse auf konzeptbasis
US7676485B2 (en) 2006-01-20 2010-03-09 Ixreveal, Inc. Method and computer program product for converting ontologies into concept semantic networks
US20070214201A1 (en) * 2006-03-13 2007-09-13 Anthony Alexander Renshaw Units conversion using flexible, parseable syntax
US7999809B2 (en) 2006-04-19 2011-08-16 Tableau Software, Inc. Computer systems and methods for automatic generation of models for a dataset
US20080104529A1 (en) * 2006-10-31 2008-05-01 International Business Machines Corporation Draggable legends for sql driven graphs
US8214746B2 (en) 2007-03-15 2012-07-03 Accenture Global Services Limited Establishment of message context in a collaboration system
US20080228774A1 (en) * 2007-03-15 2008-09-18 Accenture Global Services Gmbh Collaboration system
US20080229214A1 (en) * 2007-03-15 2008-09-18 Accenture Global Services Gmbh Activity reporting in a collaboration system
US9245243B2 (en) 2009-04-14 2016-01-26 Ureveal, Inc. Concept-based analysis of structured and unstructured data using concept inheritance
US8571261B2 (en) * 2009-04-22 2013-10-29 Checkvideo Llc System and method for motion detection in a surveillance video
US8286084B2 (en) * 2009-06-08 2012-10-09 Swakker Llc Methods and apparatus for remote interaction using a partitioned display
US20100311393A1 (en) * 2009-06-08 2010-12-09 Castleman Mark Methods and apparatus for distributing, storing, and replaying directives within a network
US20100313244A1 (en) * 2009-06-08 2010-12-09 Castleman Mark Methods and apparatus for distributing, storing, and replaying directives within a network
US20100313249A1 (en) * 2009-06-08 2010-12-09 Castleman Mark Methods and apparatus for distributing, storing, and replaying directives within a network
US20100310193A1 (en) * 2009-06-08 2010-12-09 Castleman Mark Methods and apparatus for selecting and/or displaying images of perspective views of an object at a communication device
US20100309196A1 (en) * 2009-06-08 2010-12-09 Castleman Mark Methods and apparatus for processing related images of an object based on directives
US20100312813A1 (en) * 2009-06-08 2010-12-09 Castleman Mark Methods and apparatus for distributing, storing, and replaying directives within a network
WO2010144429A1 (en) * 2009-06-08 2010-12-16 Swakker Llc Methods and apparatus for processing related images of an object based on directives
US20110066933A1 (en) * 2009-09-02 2011-03-17 Ludwig Lester F Value-driven visualization primitives for spreadsheets, tabular data, and advanced spreadsheet visualization
US8754884B2 (en) * 2009-09-21 2014-06-17 Xerox Corporation 3D virtual environment for generating variable data images
US10353922B1 (en) 2011-10-08 2019-07-16 Bay Dynamics, Inc. Rendering multidimensional cube data
US9390082B1 (en) * 2011-10-08 2016-07-12 Bay Dynamics, Inc. Generating multiple views of a multidimensional cube
US9081830B1 (en) 2011-10-08 2015-07-14 Bay Dynamics Updating a view of a multidimensional cube
US9183269B1 (en) 2011-10-08 2015-11-10 Bay Dynamics, Inc. Federated multidimensional data storage cubes
US9330091B1 (en) 2011-10-08 2016-05-03 Bay Dynamics, Inc. System for managing data storages
US9171055B1 (en) 2011-10-08 2015-10-27 Bay Dynamics, Inc. Content packs for multidimensional data storage cubes
US8909680B1 (en) 2011-10-08 2014-12-09 Bay Dynamics Intelligent caching of multidimensional cube data
CN102760186B (zh) * 2012-06-12 2014-11-19 中国电力科学研究院 一种智能变电站的矢量图形自动生成方法
US9378197B1 (en) 2012-08-16 2016-06-28 Gmg Holdings, Llc Statistical analysis method for automatically selecting a statistical analysis algorithm based on data values and input parameters
US9633076B1 (en) 2012-10-15 2017-04-25 Tableau Software Inc. Blending and visualizing data from multiple data sources
TWI490688B (zh) * 2012-12-18 2015-07-01 Simplo Technology Company Ltd 減少靜置電池耗電的方法
CN104346149A (zh) 2013-07-30 2015-02-11 商业对象软件有限公司 用于数据可视化的描述性框架
US9424318B2 (en) 2014-04-01 2016-08-23 Tableau Software, Inc. Systems and methods for ranking data visualizations
US20150278214A1 (en) 2014-04-01 2015-10-01 Tableau Software, Inc. Systems and Methods for Ranking Data Visualizations Using Different Data Fields
US9613102B2 (en) 2014-04-01 2017-04-04 Tableau Software, Inc. Systems and methods for ranking data visualizations
US10552240B2 (en) * 2014-09-04 2020-02-04 International Business Machines Corporation Automatically generating efficient remote procedure call (RPC) code for heterogeneous systems
US10095999B2 (en) * 2014-11-18 2018-10-09 Oracle International Corporation Managing multiple tasks of a project plan via a task management tool
US10333696B2 (en) 2015-01-12 2019-06-25 X-Prime, Inc. Systems and methods for implementing an efficient, scalable homomorphic transformation of encrypted data with minimal data expansion and improved processing efficiency
CN105740543A (zh) * 2016-01-29 2016-07-06 山东鲁能智能技术有限公司 基于qml图形化的电力系统建模方法及建模系统
US11620315B2 (en) 2017-10-09 2023-04-04 Tableau Software, Inc. Using an object model of heterogeneous data to facilitate building data visualizations
CN107833227B (zh) * 2017-10-31 2021-11-26 苏州乐米信息科技股份有限公司 一种圆形裁剪区域的绘制方法及其系统
US10896297B1 (en) 2017-12-13 2021-01-19 Tableau Software, Inc. Identifying intent in visual analytical conversations
US11238369B2 (en) 2018-10-01 2022-02-01 International Business Machines Corporation Interactive visualization evaluation for classification models
US11055489B2 (en) 2018-10-08 2021-07-06 Tableau Software, Inc. Determining levels of detail for data visualizations using natural language constructs
US20200125559A1 (en) 2018-10-22 2020-04-23 Tableau Software, Inc. Generating data visualizations according to an object model of selected data sources
US10996835B1 (en) 2018-12-14 2021-05-04 Tableau Software, Inc. Data preparation user interface with coordinated pivots
US11030255B1 (en) 2019-04-01 2021-06-08 Tableau Software, LLC Methods and systems for inferring intent and utilizing context for natural language expressions to generate data visualizations in a data visualization interface
US11455339B1 (en) 2019-09-06 2022-09-27 Tableau Software, LLC Incremental updates to natural language expressions in a data visualization user interface
US11030256B2 (en) 2019-11-05 2021-06-08 Tableau Software, Inc. Methods and user interfaces for visually analyzing data visualizations with multi-row calculations
US10997217B1 (en) 2019-11-10 2021-05-04 Tableau Software, Inc. Systems and methods for visualizing object models of database tables
US11366858B2 (en) 2019-11-10 2022-06-21 Tableau Software, Inc. Data preparation using semantic roles
US11281668B1 (en) 2020-06-18 2022-03-22 Tableau Software, LLC Optimizing complex database queries using query fusion
CN112988540B (zh) * 2021-03-19 2023-07-04 深圳市安冠科技有限公司 图元替换方法、系统、计算机可读存储介质及终端设备

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5742738A (en) * 1988-05-20 1998-04-21 John R. Koza Simultaneous evolution of the architecture of a multi-part program to solve a problem using architecture altering operations
US5179643A (en) 1988-12-23 1993-01-12 Hitachi, Ltd. Method of multi-dimensional analysis and display for a large volume of record information items and a system therefor
US4953106A (en) 1989-05-23 1990-08-28 At&T Bell Laboratories Technique for drawing directed graphs
US5235506A (en) 1991-08-30 1993-08-10 The United States Of America As Represented By The Secretary Of The Navy Process which aids to the laying out of locations of a limited number of 100, personnel and equipments in functional organization
US5592599A (en) * 1991-12-18 1997-01-07 Ampex Corporation Video special effects system with graphical operator interface
US5402335A (en) 1992-09-24 1995-03-28 The United States Of America As Represented By The Secretary Of The Navy Two-step method constructing large-area facilities and small-area intrafacilities equipments optimized by user population density
JP2807950B2 (ja) 1992-11-30 1998-10-08 シャープ株式会社 図形描画装置およびその図形描画方法
US5450535A (en) 1993-09-24 1995-09-12 At&T Corp. Graphs employing clusters
KR0140548B1 (ko) 1993-11-19 1998-07-01 월리엄 티. 엘리스 다중 파라메터 범위의 그래픽적 설정 방법 및 장치
JP3361594B2 (ja) 1994-01-04 2003-01-07 富士通株式会社 グラフ作成の設定・変更方法および装置
US5452410A (en) 1994-04-16 1995-09-19 Si Software Limited Partnership Apparatus and method for graphical display of statistical effects in categorical and continuous outcome data
US5651105A (en) 1994-06-15 1997-07-22 Willman; Todd J. Graphic input and display of network based computations
JP2625644B2 (ja) 1994-06-28 1997-07-02 インターナショナル・ビジネス・マシーンズ・コーポレイション 流線表示方法及びコンピュータ・システム
JP3350223B2 (ja) 1994-07-13 2002-11-25 富士通株式会社 グラフ自動レイアウト方法及び装置
US5739823A (en) 1994-08-12 1998-04-14 Casio Computer Co., Ltd. Graph display devices
US5649085A (en) 1994-12-09 1997-07-15 International Business Machines Corporation Method and system for storing and displaying system operation traces with asynchronous event-pairs
US5574837A (en) 1995-01-17 1996-11-12 Lucent Technologies Inc. Method of generating a browser interface for representing similarities between segments of code
TW270986B (en) 1995-02-10 1996-02-21 Ibm Method and apparatus for conveying higher dimensional tabular information to people using lower-dimensional output devices
US5577181A (en) 1995-06-07 1996-11-19 E-Systems, Inc. Method for autonomous determination of tie points in imagery
US5774128A (en) 1996-03-26 1998-06-30 Bull Hn Information Systems, Inc. Method of graphically displaying an object-oriented schema
US6035330A (en) * 1996-03-29 2000-03-07 British Telecommunications World wide web navigational mapping system and method
US5751294A (en) * 1996-08-27 1998-05-12 The United States Of America As Represented By The Secretary Of The Navy Approximation method for workplace layout using convex polygon envelope
US6157921A (en) * 1998-05-01 2000-12-05 Barnhill Technologies, Llc Enhancing knowledge discovery using support vector machines in a distributed network environment
US6223192B1 (en) * 1997-10-23 2001-04-24 Advanced Micro Devices, Inc. Bipartite look-up table with output values having minimized absolute error
US5917500A (en) * 1998-01-05 1999-06-29 N-Dimensional Visualization, Llc Intellectual structure for visualization of n-dimensional space utilizing a parallel coordinate system
AU4478800A (en) * 1999-04-21 2000-11-02 Spss Inc. Computer method and apparatus for creating visible graphics by using a graph algebra
US6473084B1 (en) * 1999-09-08 2002-10-29 C4Cast.Com, Inc. Prediction input
US6429868B1 (en) * 2000-07-13 2002-08-06 Charles V. Dehner, Jr. Method and computer program for displaying quantitative data

Also Published As

Publication number Publication date
AU4478800A (en) 2000-11-02
US7023453B2 (en) 2006-04-04
US7176924B2 (en) 2007-02-13
WO2000063841A1 (en) 2000-10-26
US20020149604A1 (en) 2002-10-17
DK1175661T3 (da) 2007-03-05
CA2625653C (en) 2011-08-02
CA2370973C (en) 2008-07-29
ATE344510T1 (de) 2006-11-15
US20060033738A1 (en) 2006-02-16
US6492989B1 (en) 2002-12-10
DE60031664D1 (de) 2006-12-14
EP1175661A1 (de) 2002-01-30
CA2625653A1 (en) 2000-10-26
CA2370973A1 (en) 2000-10-26
EP1175661B1 (de) 2006-11-02

Similar Documents

Publication Publication Date Title
DE60031664T2 (de) Computerverfahren und vorrichtung zum schaffen von sichtbarer graphik unter verwendung von graph algebra
DE69534331T2 (de) Verfahren und Vorrichtung zur Hervorhebung der Einzelheit einer Baumstruktur
DE69731045T2 (de) Navigation und Interaktion in strukturierten Informationsräumen
DE69629447T2 (de) Benutzerinteraktion bei Bildern mit strukturiertem Bildformat
DE60009122T2 (de) Mustererkennung für den datenaustausch zwischen rechnergestützten entwurfssystemen
DE69817168T2 (de) Interaktive zeitspannenanzeige
DE19960043B4 (de) Verfahren zum Navigieren in einer Baumstruktur
DE69233037T2 (de) Automatisiertes neues Layout mit dimensionaler Verknüpfung
DE69907415T2 (de) Bestimmung sichtbarer objekte für interaktive visualisation
DE69924700T2 (de) Verfahren zur Darstellung von durch Oberflächenelemente repräsentierten grafischen Objekten
DE102014208515A1 (de) Interaktive georäumliche Karte
DE69924699T2 (de) Verfahren zur Schaffung von als Oberflächenelemente dargestellten grafischen Objekten
DE102019005879A1 (de) Generieren von dreidimensionalem Digitalcontent aus in natürlicher Sprache gegebenen Aufforderungen
DE3608438A1 (de) Verfahren zum berechnen von freien gekruemmten flaechen mittels computergestuetztem design cad und computergestuetzter herstellung cam und numerischer steuerung nc
DE102013017640A1 (de) Verteilte gekachelte Zwischenspeicherung
EP0829822B1 (de) Verfahren zur Anzeige von geometrischen Objektoberflächen
CN110503709A (zh) 一种实现数据中心加载呈现大规模Web3D模型的方法
DE102018001136A1 (de) Interaktive Farbpalettenschnittstelle zum digitalen Malen
DE4303071A1 (de) Verfahren und Vorrichtung zur Randbewertung in einer Nicht-Mannigfaltigkeits-Umgebung
DE19817584B4 (de) Verfahren und System zur Objektsuche
DE112019000972T5 (de) Verfahren und Systeme für vereinfachte grafische Abbildungen von bipartiten Graphen
DE69924230T2 (de) Verfahren zur Modellierung von durch Oberflächenelemente dargestellten grafischen Objekten
DE60027791T2 (de) System und verfahren zum analysieren und abbilden dreidimensionaler volumendatenmengen
DE102017011422A1 (de) Strichvorgangvorhersage für einen dreidimensionalen digitalen Inhalt
DE202017007534U1 (de) Multiskalige 3D-Textursynthese

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
R084 Declaration of willingness to licence

Ref document number: 1175661

Country of ref document: EP

R084 Declaration of willingness to licence

Ref document number: 1175661

Country of ref document: EP

Effective date: 20110713