DE60005404T2 - System und verfahren zur erstellung einer graphischen benutzeroberfläche aus einem filter-expressionsbaum - Google Patents

System und verfahren zur erstellung einer graphischen benutzeroberfläche aus einem filter-expressionsbaum Download PDF

Info

Publication number
DE60005404T2
DE60005404T2 DE60005404T DE60005404T DE60005404T2 DE 60005404 T2 DE60005404 T2 DE 60005404T2 DE 60005404 T DE60005404 T DE 60005404T DE 60005404 T DE60005404 T DE 60005404T DE 60005404 T2 DE60005404 T2 DE 60005404T2
Authority
DE
Germany
Prior art keywords
user interface
node
tree
component
graphical user
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
DE60005404T
Other languages
English (en)
Other versions
DE60005404D1 (de
Inventor
Uwe Ralf KRAUKLIS
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems 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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Application granted granted Critical
Publication of DE60005404D1 publication Critical patent/DE60005404D1/de
Publication of DE60005404T2 publication Critical patent/DE60005404T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • G06F8/4434Reducing the memory space required by the program code

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)
  • Digital Computer Display Output (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

  • TECHNISCHER HINTERGRUND DER ERFINDUNG
  • 1. Technisches Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft die Gebiete der Vorrichtungen mit kleiner Basisfläche (small-footprint devices) und graphische Benutzeroberflächen (GUIs) und insbesondere ein System und ein Verfahren für das Erzeugen einer graphischen Benutzeroberfläche aus einem Filterausdrucksbaum.
  • 2. Beschreibung des relevanten Standes der Technik
  • Graphische Benutzeroberflächen (GUIs) ermöglichen es Benutzern, mit Softwareanwendungen in einer intuitiven Art und Weise unter Verwendung von graphischen Komponenten oder Steuerungen, wie z. B. Buttons, Eingabetextfeldern, Menüs usw. zu kommunizieren. Obgleich graphische Benutzeroberflächen häufig mit Softwareanwendungen verknüpft sind, die auf allgemeinen Recheneinrichtungen ablaufen, wie z. B. Desktopcomputern, werden graphische Benutzeroberflächen in anderen Typen von Recheneinrichtungen, wie z. B. Vorrichtungen mit kleiner Basisfläche, üblicher.
  • Das Gebiet der "cleveren" Einrichtungen mit kleiner Basisfläche wächst und verändert sich schnell. Einrchtungen mit kleiner Basisfläche beinhalten in der Hand haltbare Computer, persönliche Datenassistenten (PDAs), Funktelefone, GPS-Empfänger (Global Positioning System), Spielkonsolen, Set-Top-Boxen und viele weitere solche Einrichtungen. Vorrichtungen mit kleiner Basisfläche werden zunehmend leistungsstark und sind in der Lage, Softwareanwendungen ablaufen zu lassen oder Dienste ablaufen zu lassen, die historisch mit allgemeinen Berechnungseinnchtungen, wie z. B. Desktopcomputern, verknüpft waren. Beispielsweise sind viele Vorrichtungen mit kleiner Basisfläche nun in der Lage, Webbrowseranwendungen ablaufen zu lassen.
  • Während Einrichtungen mit kleiner Stellfläche leistungsfähiger wurden und die Softwareanwendungen, die auf Einrichtungen mit kleiner Stellfläche ablaufen, komplexer wurden, wurde es immer wünschenswerter, Benutzern zu ermöglichen, leicht mit den Anwendungen über graphische Benutzeroberflächen zu kommunizieren. Einrichtungen mit kleiner Stellfläche können jedoch sehr starke Ressourcenbeschränkungen haben, wie z. B. die Speichermenge und die verfügbare Verarbeitungsleistung. Somit ist es häufig notwendig oder wünschenswert, speziellen GUI-Code für Software zu konstruieren, die in der Umgebung einer Einrichtung mit kleiner Stellfläche abläuft.
  • Der Quellcode, um graphische Benutzeroberflächen für verschiedene Teile einer Softwareanwendung zu erzeugen, stellt häufig einen signifikanten Teil der Codebasis für eine Anwendung dar. Die GUI-Erzeugung kann das Durchführen solcher prozeduralen Operationen, wie das Erzeugen von Benutzerschnittstellenkomponenten oder Steuerungen, das Einstellen verschiedener Attribute der Benutzerschnittstellenkomponenten wie gewünscht, das geeignete Positionieren der Benutzerschnittstellenkomponenten usw. beinhalten. Der resultierende Quellcode kann eine lange Ab folge von Funktionsaufrufen oder anderen Programmoperationen aufweisen. Beispielsweise kann der Prozeß der Positionierung der Benutzerschnittstellenkomponenten viele Funktionsaufrufe erfordern, um die Größen der verschiedenen Aspekte der Benutzerschnittstellenkomponenten zu erhalten, vermischt mit Code, um die Positionslogik durchzuführen, wie z. B. das Einstellen der variablen Werte der Werte der Komponentenbreite oder -höhe usw.
  • In einer ressourcenbeschränkten Umgebung, wie z. B. bei Einrichtungen mit kleiner Stellfläche, ist es häufig wünschenswert, die Codegröße zu reduzieren, beispielsweise um die Speicheranforderungen, um eine Softwareanwendung ablaufen zu lassen, zu reduzieren. Ein Aspekt der Codegröße, der möglicherweise reduziert werden kann, ist die Größe des Codes für die GUI-Erzeugung. Statt des Schreibens von angepaßtem Quellcode, wie oben beschrieben wurde, für das Erzeugen bestimmter graphischer Benutzeroberflächen, kann es möglich sein, ein allgemeines Verfahren für die Erzeugung einer graphischen Benutzeroberfläche bereitzustellen, das verwendet werden kann, um automatisch bestimmte graphische Benutzeroberflächen zu erzeugen.
  • Natürlich müssen, um graphische Benutzeroberflächen in solch einer systematischen Art und Weise zu erzeugen, bestimmte Regeln in den zu erzeugenden graphischen Benutzeroberflächen identifiziert werden. Ein Typ der graphischen Benutzeroberfläche, der sich gut für die systematische Erzeugung eignet, ist eine graphische Benutzeroberfläche für das Spezifizieren eines Filterausdrucks. Anwendungsprogramme stellen graphische Benutzeroberflächen für Filterausdrücke zur Verfügung, um es Benutzern zu ermöglichen, bestimmte Kriterien zu spezifizieren, die eingehalten werden sollten, wenn eine Operation durchgeführt wird. Beispielsweise kann eine E-Mail-Anwendung eine Filterausdrucks-GUI bereitstellen für das Spezifizieren von Kriterien von zu blokkenden E-Mail-Nachrichten. Als ein einfaches Beispiel kann solch eine graphische Benutzeroberfläche einem Benutzer erlauben, zu spezifizieren, daß E-Mail-Nachrichten mit einem Betreffeld, das eine bestimmte Phrase enthält, oder mit einem Absenderfeld, das einen bestimmten Namen enthält, blockiert werden sollte oder automatisch zu einem Papierkorb-Ordner bewegt werden sollte.
  • Anwendungen können graphische Benutzeroberflächen für einen Filterausdruck verwenden für irgendeinen von verschiedenen anderen Zwecken. Beispielsweise kann eine Textverarbeitungsanwendung eine Filterausdrucks-GUI bereitstellen, die es einem Benutzer ermöglicht, verschiedene Dokumentenkriterien zu spezifizieren, die einzuhalten sind, wenn eine Textsuche durchgeführt wird. Als ein weiteres Beispiel können Anwendungen, die Datenbanken durchsuchen, eine graphische Benutzeroberfläche bereitstellen für das Spezifizieren eines Filterausdrucks, der zu verwenden ist, wenn eine Datenbanksuche oder -abfrage durchgeführt wird. Beispielsweise kann eine Anwendung für das Nachschlagen einer Telefonnummerinformation in einer Datenbank eine GUI bereitstellen für das Spezifizieren von Kriterien betreffend zu erhaltende und darzustellende Telefonnummern.
  • Viele Typen von Filterausdrucks-GUIs nutzen bestimmte Aspekte gemeinsam. Beispielsweise können die graphischen Benutzeroberflächen für sowohl das Nachrichten-Blockierbeispiel als auch das Textsuche-Beispiel, die oben erwähnt wurden, Benutzerschnittstellenkomponenten beinhalten, die verwendet werden, um Boolesche Ausdrücke zusammen mit Benutzerschnittstellenkomponenten für die Spezifizierung von Termen zu verwenden. Statt einer langen Reihe von State ments, die von einem Programmierer codiert werden, um Benutzerschnittstellenkomponenten zu erzeugen, die Komponenten zu positionieren usw., kann es möglich sein, automatisch unter Verwendung eines systematischen Verfahrens eine Filterausdrucks-GUI zu erzeugen. Wenn eine Anwendung mehrere Filterausdrucks-GUIs verwendet, kann jede dieser GUIs unter Verwendung eines gemeinsamen Codes erzeugt werden, was die Größe der Anwendung reduzieren kann. Beispielsweise kann zusätzlich zu der Nachrichtenblockierfilterausdrucks-GUI, die oben diskutiert wurde, eine E-Mail-Anwendung ebenso Benutzern eine Filterausdrucks-GUI bereitstellen für das Durchführen von E-Mail-Nachrichtensuchen. In diesem Beispiel können beide Filterausdrucks-GUIs unter Verwendung eines gemeinsamen Quellcodes erzeugt werden.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Die oben ausgeführten Probleme können zu einem großen Teil gelöst werden durch ein System und ein Verfahren für das Erzeugen einer graphischen Benutzeroberfläche aus einem Filterausdrucksbaum, wie hier beschrieben ist. Filterausdrücke können verwendet werden für irgendeinen von verschiedenen Zwecken von Anwendungsprogrammen. Ein Anwendungsprogramm kann einen Filterausdrucksbaum erzeugen, der einen Filterausdruck darstellt, z. B. durch Syntaxanalyse gespeicherter Information betreffend den Filterausdruck und durch Verwendung der Information, um eine Baumstruktur mit Knoten zu erzeugen, die Information aufweist, die verschiedene Aspekte des Filterausdrucks spezifiziert.
  • Filterknoten des Filterausdrucksbaums können Information aufweisen, die ein Attribut, einen Vergleichsoperator und einen Wert spezifizieren. Beispielsweise kann eine E-Mail-Anwendung einen Filterausdrucksbaum erzeugen mit einem Blattknoten von "Absender enthält'John Doe'", wobei "Absender" das Attribut ist, "enthält" der Vergleichsoperator ist und "John Doe" der Wert ist. Das Attribut, der Vergleichsoperator und der Wert, die mit dem Blattknoten verknüpft sind, werden zusammen als "Ausdruckseinheit" bezeichnet.
  • Nicht-Blattknoten des Filterausdrucksbaumes können Information aufweisen, die einen Booleschen Operator, wie z. B. "UND", "ODER", "EXKLUSIV ODER", "NICHT" usw. spezifizieren. Diese Booleschen Operatoren können die Ausdruckseinheiten, die von den Blattknoten spezifiziert werden, logisch verbinden, um einen kompletten Filterausdruck zu bilden. Der (die) Nachfolgerknoten eines Nicht-Blattknotens kann (können) entweder ein Blattknoten, der eine Ausdruckseinheit spezifiziert, oder ein anderer Nicht-Blattknoten sein. Somit kann jeder Nicht-Blattknoten außer dem Wurzelknoten als eine Wurzel eines Unterbaums angesehen werden, der einen Unterausdruck des Filterausdrucks spezifiziert.
  • Der Filterausdrucksbaum kann dann verarbeitet werden, um automatisch eine graphische Benutzeroberfläche (GUI) für den Filterausdruck zu erzeugen. Die GUI kann Sätze von Benutzerschnittstellenkomponenten oder -steuerungen aufweisen, wie z. B. Textfeldkomponenten/-steuerungen, Auswahlkomponenten/-steuerungen usw., wobei jeder Satz zu einer Ausdruckseinheit korrespondiert, die in dem Filterausdrucksbaum enthalten ist. Jede Benutzerschnittstellenkomponentelsteuerung in dem Satz kann einen Benutzer in die Lage versetzen, eine Information betreffend einen Teil der Ausdruckseinheit zu spezifizieren. Beispielsweise kann eine GUI einen Satz von Benutzerschnittstellenkomponenten (UI) beinhalten mit einer ersten UI-Komponente, die es einem Benutzer ermöglicht, ein Attribut auszuwählen, einer zweiten UI-Komponente, die es einem Benutzer ermöglicht, einen Vergleichsoperator, der für das Attribut geeignet ist, auszuwählen, und einer dritten UI-Komponente, die es einem Benutzer ermöglicht, einen Wert, der für das Attribut geeignet ist, auszuwählen.
  • Ist der Baumwurzelknoten gegeben, können die Nachfolgerknoten rekursiv durchlaufen werden, wodurch Sätze von Benutzerschnittstellenkomponenten/-steuerungen, die Ausdruckseinheiten zu dem GUI als Baumblattknoten darstellen, erreicht werden. Die UI-Komponenten/-Steuerungen für jede Ausdruckseinheit können mit geeigneten Werten entsprechend der Ausdruckseinheitsinformation initialisiert werden. Beispielsweise kann für die "Absender enthält 'John Doe'"-Ausdruckseinheit, die oben gegeben ist, die Attribut-UI-Komponente eine Auswahl-UI-Komponente sein, die es einem Benutzer ermöglicht, unter Einträgen, wie z. B. "Absender", "Betreff", "Datum" usw. auszuwählen, und die Auswahl-UI-Komponente kann derart initialisiert werden, daß der "Absender"-Eintrag ausgewählt wird.
  • Die Benutzerschnittstellenkomponenten/-steuerungen können zu einem Benutzerschnittstellen"Container" hinzugefügt werden, d. h. zu einer Benutzerintertacestruktur oder -Objekt, wie z. B. ein Benutzerinterfacepanel oder -fenster, das in der Lage ist, Benutzerintertacekomponenten/-steuerungen zu hosten bzw. aufzunehmen. Wenn die UI-Komponenten/-Steuerungen zu dem UI-Container hinzugefügt werden, können die UI-Komponenten/-Steuerungen in irgendeiner gewünschten Art und Weise positioniert werden, z. B. in horizontaler Richtung, beginnend mit einer Attribut-UI-Komponente auf der linken Seite, einer Vergleichsoperator-UI in der Mitte und einer Wert-UI-Komponente auf der rechten Seite.
  • Eine Hierarchie von UI-Containern kann erzeugt werden. Das heißt, daß, wenn jeder Baum Blattknoten verarbeitet wird, ein getrennter UI-Container für das Aufnehmen der UI-Komponenten/-Steuerungen, die die Ausdruckseinheit des Blattknotens darstellen, erzeugt werden kann und ein Vorgänger-UI-Container hinzugefügt werden kann. Das Erzeugen eines getrennten UI-Containers für einen Knoten in dieser Art kann das Erzeugen der GUI vereinfachen durch das Ermöglichen, daß die UI-Komponenten/-Steuerungen unabhängig davon, wo der Knoten in dem Filterausdrucksbaum liegt, auf einem UI-Container positioniert werden kann. In einer alternativen Ausführungsform kann jedoch ein einzelner UI-Container verwendet werden, um für die verschiedenen Knoten die UI-Komponenten/-Steuerungen aufzunehmen, und eine Positionierungsoffsetinformation kann verfolgt werden, wenn der Baum durchquert wird, was es erlaubt, daß die UI-Komponenten/-Steuerungen geeignet positioniert werden.
  • Da jeder Nicht-Blattknoten des Filterausdrucksbaums während der Durchquerung des Baums erreicht wird, kann eine Auswahl-UI-Komponente oder -Steuerung, die es dem Benutzer erlaubt, einen Booleschen Operator auszuwählen, zu der GUI hinzugefügt werden. Diese Auswahl-UI-Komponente/-Steuerung kann derart initialisiert werden, daß ein Eintrag ausgewählt wird, der der Booleschen Operatorinformation entspricht, die durch den Nicht-Blattknoten spezifiziert wird. Ähnlich wie oben erörtert wurde, kann diese Auswahl-UI-Komponente/-Steuerung zu ihrem eigenen getrennten UI-Container hinzugefügt werden oder ein einzelner UI-Container kann verwendet werden.
  • Information, die auf die Benutzerinterfacekomponenten Bezug nimmt, kann in dem Filterausdrucksbaum gespeichert werden, wenn die graphische Benutzeroberfläche erzeugt wird. Sobald die GUI kreiert wurde, kann die Anwendung mit der graphischen Benutzeroberfläche in Wechselwirkung treten durch Abfragen dieser Information.
  • KURZE BESCHREIBUNG DER FIGUREN
  • Andere Ziele und Vorteile der Erfindung werden deutlich durch Lesen der folgenden detaillierten Beschreibung und unter Bezug auf die begleitenden Zeichnungen, in denen:
  • 1 ein Blockdiagramm ist, das eine Ausführungsform eines Systems zeigt, das das Kreieren einer graphischen Benutzeroberfläche aus einem Filterausdrucksbaum unterstützt,
  • 2 ein Diagramm ist, das ein Beispiel eines Filterausdrucksbaums darstellt,
  • 3 eine beispielhafte GUI zeigt, die aus einem Filterausdrucksbaum erzeugt wurde,
  • 4 ein Flußdiagramm ist, das eine Ausführungsform eines Verfahrens für das systematische Erzeugen einer GUI aus einem Filterausdrucksbaum zeigt,
  • 5 ein Flußdiagramm ist, das eine Ausführungsform eines Prozesses für das Bestimmen darstellt, ob ein Filterausdrucksbaumknoten Nachfolgerknoten hat, und
  • 6A6B ein Flußdiagramm sind, das eine Ausführungsform eines Prozesses für das Erzeugen von graphischen Benutzeroberflächenelementen darstellt, die eine Ausdruckseinheit eines Filterausdrucksbaums repräsentieren.
  • Während die Erfindung verschiedenen Modifikationen und alternativen Formen zugänglich ist, werden in den Figuren beispielhaft spezifische Ausführungsformen hiervon gezeigt und hier im Detail beschrieben. Es sollte jedoch verstanden werden, daß die Zeichnungen und die detaillierte Beschreibung hierzu nicht dafür vorgesehen sind, die Erfindung auf die bestimmte beschriebene Form zu begrenzen, sondern im Gegenteil ist es die Absicht, alle Modifikationen, Äquivalente und Alternativen abzudecken, die in den Geist und den Schutzbereich der vorliegenden Erfindung fallen, wie er von den angefügten Ansprüchen definiert wird.
  • DETAILLIERTE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • 1 - Beispielhaftes System
  • 1 ist ein Blockdiagramm, das eine Ausführungsform eines Systems 720 zeigt, die die Erzeugung einer graphischen Benutzeroberfläche (GUI) von einem Filterausdrucksbaum unterstützt. Das System 720 kann in irgendeiner von verschiedenen Typen von Berechnungseinrichtungen, wie z. B. Desktopcomputern oder Workstations, Einrichtungen mit kleiner Basisfläche usw. eingesetzt werden.
  • Wie in 1 gezeigt ist, kann das System 720 einen Prozessor 710 beinhalten. Der Prozessor 710 kann irgendeiner von verschiedenen Typen sein, einschließlich eines X86-Prozessors, z. B. eines Pentium Class, eines PowerPC-Prozessors, einer CPU von der SPARC-Familie von RISC-Prozessoren, sowie auch andere. In verschiedenen Ausführungsformen, z. B. einer Ausführungsform, in der das System 720 eine Einrchtung mit kleiner Basisfläche darstellt, kann der Prozessor 710 ein weniger leistungsfähiger Prozessor sein als die oben aufgelisteten oder kann ein Prozessor sein, der speziell für eine Einrichtung mit kleiner Basisfläche entwickelt wurde, wie z. B. ein digitaler Signalprozessor (DSP). Der Prozessor 710 kann verschiedene Taktgeschwindigkeiten haben, einschließlich Taktgeschwindigkeiten, die ähnlich denjenigen sind, die in Desktopcomputerklassenprozessoren gefunden werden, sowie auch niedrigere Geschwindigkeiten, wie z. B. 16 MHz.
  • Das System 720 beinhaltet ebenso einen Speicher 712, der mit dem Prozessor 710 verbunden ist. Der Speicher 712 kann irgendeinen von verschiedenen Speichertypen aufweisen, einschließlich DRAM, SRAM, EDO RAM usw. oder einen nichtflüchtigen Speicher, wie z. B. ein magnetisches Medium, z. B. eine Festplatte oder ein optischer Speicher. Der Speicher 712 kann andere Speichertypen sowie Kombinationen hiervon aufweisen. Für eine Ausführungsform, in der das System 720 eine Einrichtung mit kleiner Basisfläche zeigt, kann der Speicher 712 eine sehr kleine Speicherkapazität verglichen mit der eines typischen Desktopcomputersystems haben.
  • Wie in 1 gezeigt ist, kann der Speicher 712 ein Anwendungsprogramm 718 speichern. Das Anwendungsprogramm 718 kann irgendeines von verschiedenen Typen von Anwendungsprogrammen sein, die Filterausdrücke verwenden. Beispielsweise kann das Anwendungsprogramm 718 eine E-Mail-Anwendung sein, die Filterausdrücke benutzt, um E-Mail-Nachrichten abzublocken oder zu durchsuchen, das Anwendungsprogramm 718 kann ein Textverarbeitungsprogramm sein, das einen Filterausdruck benutzt, um Dokumentsuchen durchzuführen, die Anwendung 718 kann eine Anwendung sein, die in der Lage ist, eine Datenbank zu durchsuchen oder abzufragen unter Verwendung von Kriterien, die durch einen Filterausdruck spezifiziert werden usw. Das Anwendungsprogramm kann konfiguriert sein, um automatisch eine graphische Benutzeroberfläche aus einem Baum, der einen Filterausdruck darstellt, zu erzeugen, wie unten beschrieben wird.
  • Wie in 1 gezeigt ist, kann das System 720 ebenso eine Anzeige 716 aufweisen. Die Anzeige 716 kann irgendeine von verschiedenen Typen sein, wie z. B. eine LCD- (Flüssigkristallanzeige), eine CRT- (Kathodenstrahlröhre) Anzeige usw. Es sei bemerkt, daß die Anzeige für eine typische Vorrichtung mit kleiner Basisfläche, wie z. B. ein Smart-Funktelefon, klein sein kann verglichen mit der Anzeige eines Desktopcomputersystems.
  • 1 stellt eine GUI 722 dar, die auf der Anzeige 716 dargestellt wird. Die GUI 722 kann eine GUI sein, die aus einem Filterausdrucksbaum in Übereinstimmung mit der vorliegenden Erfindung erzeugt wurde. Der Prozessor 710, der Code und Daten von dem Speicher 712 ausführt, stellt eine Einrichtung für das Erzeugen und Anzeigen der GUI zur Verfügung.
  • Wie in 1 gezeigt ist, kann das System 720 ebenso einen Eingabemechanismus 714 aufweisen. Der Eingabemechanismus 714 kann irgendeiner von verschiedenen Typen sein, wie er für ein bestimmtes System geeignet ist. Beispielsweise kann der Eingabemechanismus eine Tastatur, eine Maus, ein Trackball, ein Touchpad, ein Mikrofon, ein Modem, ein Infrarotempfänger usw. sein.
  • Wie oben erwähnt wurde, kann in verschiedenen Ausführungsformen das System 720 eine Einrichtung mit kleiner Basisfläche veranschaulichen. So wie der Begriff hier verwendet wird, ist eine Einrichtung mit kleiner Basisfläche einer Hardwareeinrichtung, die Berechnungsressourcen, wie z. B. einen Prozessor und einen Systemspeicher, hat, jedoch signifikant höhere Einschränkungen an eine oder mehrere dieser Ressourcen hat als ein typischer Desktopcomputer. Beispielsweise kann eine typische Einrichtung mit kleiner Basisfläche 2 MB Speicher oder weniger haben, während ein typisches Desktopsystem 64 MB oder mehr haben kann. Ebenso kann eine typische Einrichtung mit kleiner Basisfläche signifikant weniger Verarbeitungsleistung haben als ein typisches Desktopcomputersystem, entweder in Begriffen des Prozessortyps oder der Prozessorgeschwindigkeit oder beidem. Beispielsweise kann eine bestimmte persönliche Datenassistent-Einrichtung einen 16 MHz-Prozessor haben, während ein typisches Desktopsystem eine Prozessorgeschwindigkeit von 100 MHz oder höher haben kann. Ebenso kann eine typische Einrichtung mit kleiner Basisfläche eine Anzeigegröße haben, die signifikant kleiner als der Anzeigeschirm eines Desktoprechensystems ist. Beispielsweise ist der Anzeigeschirm eines in der Hand haltbaren Computers typischerweise klein verglichen mit dem Anzeigeschirm eines Desktopmonitors. Es sei bemerkt, daß die spezifischen Zahlen, die oben angegeben wurden, nur beispielhaft sind und nur aus Gründen des Vergleichs verwendet werden.
  • Einrichtungen mit kleiner Basisfläche haben ebenso Einschränkungen bei anderen Ressourcentypen verglichen mit typischen Desktoprechensystemen, außer dem Speicher, dem Prozessor und der Anzeigegrößenressourcen, die oben beschrieben wurden. Beispielsweise kann eine typische Einrichtung mit kleiner Basisfläche keine Festplatte haben, kann keine Netzwerkverbindung haben oder kann eine intermittierende Netzwerkverbindung haben oder kann eine drahtlose Netzwerkverbindung haben usw.
  • Viele Einrichtungen mit kleiner Basisfläche sind tragbar und/oder sind klein verglichen mit Desktopcomputem, wobei dies jedoch nicht notwendigerweise so ist. Ebenso sind viele Einrichtungen mit kleiner Basisfläche hauptsächlich oder ausschließlich batteriebetrieben. Ebenso können Einrichtungen mit kleiner Basisfläche typischerweise einen beschränkteren oder engeren Bereich von Nutzungsmöglichkeiten haben als ein typisches Desktopcomputersystem. Somit veranschaulicht in verschiedenen Ausführungsformen das in 1 dargestellte System irgendeines der folgenden Systeme, wobei es jedoch nicht hierauf begrenzt ist: in der Hand haltbare Computer, tragbare Vorrichtungen (z. B. Armbanduhrcomputer), persönliche Datenassistenten (PDAs), "clevere" Funktelefone, Set-Top-Boxen, Spielkonsolen, Einheiten des globalen Positionierungssystems (GPS), elektronische Textbucheinrichtungen usw. Da sich neue Klassen von Konsumentenvorrichtungen schnell abzeichnen, ist es nicht möglich, eine umfassende Liste von Einrichtungen mit kleiner Basisfläche bereitzustellen. Der Begriff "Einrichtung mit kleiner Basisfläche" bzw. "Small-Footprint-Einrichtung" ist dafür vorgesehen, solche Vorrichtungen zu bezeichnen, die vernünftig in den Geist und den Schutzbereich des oben beschriebenen Begriffs aufgenommen werden können.
  • Es sei bemerkt, daß in verschiedenen Ausführungsformen das System und das Verfahren, die hier beschrieben wurden, ebenso in einem Allzweckcomputersystem, wie z. B. einem Desktop-PC oder einem Mainframe-Computer, eingesetzt werden können.
  • 2 - Filterausdrucksbaum
  • 2 ist ein Diagramm, das ein Beispiel eines Filterausdrucksbaumes darstellt. Ein Filterausdrucksbaum ist eine Baumdatenstruktur, die einen Filterausdruck darstellt. Ein Anwendungsprogramm kann einen Filterausdrucksbaum in irgendeiner von verschiedenen Arten und Weisen konstruieren. Beispielsweise kann eine Anwendung Informationen speichern, die einen Filterausdruck spezifizieren können und einen Filterausdrucksbaum konstruieren können durch Syntaxanalyse dieser Informationen und durch Erzeugen einer Baumdatenstruktur, die die Information darstellt. Information, die einen Filterausdruck spezifiziert, kann in irgendeinem von verschiedenen Formaten gespeichert werden und kann gespeichert werden unter Verwendung von irgendeiner von verschiedenen beständigen oder nicht beständigen Speichermitteln. Als ein Beispiel kann ein E-Mail-Anwendungsprogramm Information in einem Textformat speichern, wie z. B.:
    UND (UND (ODER ("Absender" "enthält" "John Doe") ("Datum" "liegt vor" "11/10/99")) ("Betreff" "beginnt mit" "Verkaufszahlen")) ("Priorität" "ist" "niedrig")),
    wobei diese Information Ausdruckseinheiten spezifiziert, die logisch mit anderen Ausdruckseinheiten über Boolesche Verknüpfungen in Bezug stehen. Wie in 2 gezeigt ist, kann diese Information verwendet werden, um einen Filterausdrucksbaum zu erzeugen, der eine hierarchische Beziehung zwischen verschiedenen Abschnitten des Filterausdrucks spezifiziert. Es sei bemerkt, daß das oben gezeigte Format nur beispielhaft ist und die Filterausdrucksinformation in irgendeinem von verschiedenen anderen Formaten spezifiziert und gespeichert werden kann, einschließlich Text- und Binärformaten.
  • Wie oben erörtert wurde, können Filterausdrücke für verschiedene Zwecke von Anwendungsprogrammen verwendet werden. Beispielsweise kann ein Textprozessoranwendungsprogramm beharrlich Information speichern, die die zuletzt durchgeführte Textsuche, die von einem Benutzer durchgeführt wurde, spezifiziert, und kann aus der Information einen Filterausdrucksbaum konstruieren. Es sei bemerkt, daß die Filterausdrucksinformation ursprünglich in einem Vorgabeformat gespeichert sein kann, z. B. als ein Teil des Installationsprozesses für eine Anwendung. Für andere Typen von Anwendungsprogrammen oder für Anwendungsprogramme, die innerhalb bestimmter Umgebungen ablaufen, kann es wünschenswert sein, immer einen Filterausdrucksbaum aus solch einer Vorgabeinformation zu konstruieren statt aus der gespeicherten Information, die in Antwort auf eine Benutzerinformation modifiziert wurde. Die Filterausdrucksinformation kann intern innerhalb eines Anwendungsprogramms gespeichert werden, z. B. als Vorgabeinformation, die von dem Anwendungsquellcode spezifiziert wird, oder extern zu einem Anwendungsprogramm, z. B. durch Speichern der Information in einer Datei oder einer Datenbank.
  • Wie in 2 gezeigt ist, kann jeder Blattknoten des konstruierten Filterausdrucksbaums Information aufweisen, die ein Attribut, einen Vergleichsoperator und einen Wert spezifiziert. Wie hier verwendet, ist ein Blattknoten ein Knoten, der mit einer Verzweigung des Baums verbunden ist, der ein Ende bildet und keine Verbindung zu weiteren Verzweigungen darstellt. Beispielsweise spezifiziert, wie in 2 gezeigt ist, einer der Blattknoten ein Attribut 300 des "Absenders", einen Vergleichsoperator 302 von "enthält" und einen Wert 304 von "John Doe". Das Attribut, der Vergleichsoperator und der Wert, der mit einem Blattknoten verknüpft ist, werden zusammen als "Ausdruckseinheit" bezeichnet.
  • Es sei bemerkt, daß in alternativen Ausführungsformen ein Filterausdrucksbaum sich in verschiedenen Aspekten von dem beispielhaften Filterausdrucksbaum der 2 unterscheiden kann. Beispielsweise können statt des Speicherns der Elemente einer Ausdruckseinheit innerhalb eines einzelnen Knotens getrennte Knoten verwendet werden, um das Attribut, den Vergleichsoperator und die Wertinformation der Ausdruckseinheit zu speichern.
  • Das Attribut einer Ausdruckseinheit spezifiziert einen Aspekt der von dem Anwendungsprogramm zu filternden Einheiten. Die möglichen Attribute können von einem bestimmten Typ des Anwendungsprogramms oder von dem bestimmten Typ der von dem Anwendungsprogramm zu filternden Einheit abhängen. Beispielsweise können für einen Filterausdruck, der an E-Mail-Nachrchten anzuwenden ist, Attribute solche Aspekte der E-Mail-Nachrichten beinhalten, wie der Nachrichtenabsender, der Nachrichtenbetreff, das Nachrichtendatum, die Nachrichtenpriorität usw., wie in 2 gezeigt ist. Bestimmte Anwendungen können irgendeinen von verschiedenen Typen von Attributen definieren und verwenden, wenn gewünscht.
  • Der Vergleichsoperator einer Ausdruckseinheit spezifiziert einen auf das Attribut der Ausdruckseinheit anzuwenden Vergleichstyp. Die möglichen Vergleichsoperatoren können von dem bestimmten Attribut oder dem Typ des Attributs abhängen. Beispielsweise können, wenn das Attribut der Ausdruckseinheit ein "Datum"-Attribut ist, die möglichen Vergleichsoperatoren solche Operatoren wie "liegt vor", "ist", "liegt nach" usw. enthalten. Als ein anderes Beispiel können, wenn das Attribut der Ausdruckseinheit ein Text-Attribut ist, z. B. der Nachrichtenabsender, der Nachrichtenbetreff etc., die möglichen Vergleichsoperatoren solche Operatoren wie "beginnt mit", "enthält" usw. enthalten.
  • Der Wert einer Ausdruckseinheit spezifiziert einen Wert, der bei der Bestimmung verwendet wird, ob ein System das von einer Ausdruckseinheit spezifizierte Kriterium erfüllt. Die möglichen Werte können von dem bestimmten Attribut oder dem Typ des Attributs abhängen. Wenn beispielsweise das Ausdruckseinheitsattribut ein "Datum"-Attribut ist, können die möglichen Werte Daten sein. Wenn das Attribut der Ausdruckseinheit ein "Nachrichtenprioritäts"-Attribut ist, können die möglichen Werte Prioritätswerte beinhalten, wie z. B. "niedrig", "normal", "hoch" usw. Wenn das Attribut der Ausdruckseinheit ein textliches Attribut ist, z. B. "Nachrichtenbetreff", können die möglichen Werte irgendwelche Textwerte beinhalten.
  • Es wird bemerkt, daß in alternativen Ausführungsformen Teile eines Filterausdrucks unterschiedlich zu den Ausdruckseinheiten, die oben beschrieben wurden, dargestellt werden können. Beispielsweise kann es geeignet oder wünschenswert sein, anstatt eine Ausdruckseinheit mit einem Attribut, einem Vergleichsoperator und einem Wert darzustellen, eine Ausdruckseinheit einfach als ein Attribut und ein Wertepaar darzustellen, z. B., wenn der Vergleichsoperator, der angewendet wird, immer ein impliziter "ist"-Operator ist.
  • Wie in 2 gezeigt ist, können die Ausdruckseinheiten, die von dem Filterausdrucksbaumblattknoten spezifiziert werden, logisch miteinander über Boolesche Verknüpfungen verbunden sein, die durch die Nicht-Blattknoten des Filterausdrucksbaums spezifiziert werden. Somit bilden die Ausdruckseinheiten zusammen mit den Booleschen Operatoren, die sich diesen anschließen, einen vollständigen Filterausdruck.
  • 3 - Beispielhafte GUI, die aus dem Filterausdrucksbaum erzeugt ist
  • 3 stellt eine beispielhafte GUI dar, die von einem Filterausdrucksbaum erzeugt wird. Die in 3 gezeigte GUI entspricht dem Filterausdrucksbaum von 2.
  • Wie gezeigt, kann die GUI unterschiedliche Typen von Benutzerschnittstellenkomponenten oder -steuerungen beinhalten, wie es für die Darstellung bestimmter Ausdruckseinheiten geeignet ist. Beispielsweise können die Benutzerschnittstellenkomponenten oder -steuerungen, die den Attribut- und Vergleichsoperatorabschnitten der Ausdruckseinheiten entsprechen, Auswahlbenutzerschnittstellenkomponenten oder -steuerungen sein, d. h. Benutzerschnittstellenkomponenten, die es einem Benutzer erlauben, eine von verschiedenen Auswahlmöglichkeiten auszuwählen. Beispielsweise kann in der GUI der 3 in Antwort auf einen Benutzer, der auf die Benutzerschnittstellenkomponenten entsprechend der Ausdruckseinheitsattribute klickt, d. h. die linke Spalte der Benutzerschnittstellenkomponenten, eine auswählbare Liste von Attributen angezeigt werden, wie z. B. "Absender", "Datum", "Betreff" usw.
  • Die GUI kann ebenso andere Typen von Benutzerschnittstellenkomponenten aufweisen. Beispielsweise beinhaltet die GUI der 3 Textfeldbenutzerschnittstellenkomponenten, die einen Benutzer in die Lage versetzen, Freitext für Werte von textlichen Attributen einzugeben, und beinhaltet eine Datenauswahlbenutzerschnittstellenkomponente, die einen Benutzer in die Lage versetzt, einen Wert für ein "Datum"-Attribut auszuwählen.
  • Wie unten beschrieben wird, können GUIs für das Spezifizieren von Filterausdrücken, wie z. B. die GUI, die in 3 dargestellt ist, systematisch aus einem Filterausdruckbaum erzeugt werden.
  • 4 - Erzeugen einer GUI aus einem Filterausdrucksbaum
  • 4 ist ein Flußdiagramm, das eine Ausführungsform eines Verfahrens für das systematische Erzeugen einer GUI aus einem Filterausdrucksbaum darstellt. Das in 4 gezeigte Verfahren arbeitet auf bestimmten Filterausdrucksbaumknoten, beginnend mit dem Wurzelknoten, und kann rekursiv an nachfolgende Knoten angewendet werden, wie unten diskutiert wird. Das Verfahren der 4 kann von irgendeinem von verschiedenen Anwendungsprogrammen ausgeführt werden.
  • Das Verfahren von 4 wird in Begriffen der Benutzerschnittstellen-"Container" beschrieben. Ein Benutzerschnittstellencontainer ist ein Benutzerschnittstellenobjekt oder eine Benutzerschnittstellenstruktur auf bzw. in der Benutzerschnittstellenkomponente, wie z. B. die in 3 gezeigten Komponenten, gehostet sein können. Beispielsweise kann in einer unter Verwendung der Programmiersprache JavaTM implementierten Ausführungsform ein Benutzerschnittstellencontainer eine JavaTM Abstract Window Toolkit (AWT) Benutzerschnittstellenkomponente sein, wie z. B. eine java.awt.Panel-Benutzerschnittstellenkomponente. In anderen Ausführungsformen kann ein Benutzerschnittstellencontainer irgendeines von verschiedenen anderen Typen von Benutzerschnittstellenobjekten oder -strukturen sein, die in der Lage sind, Benutzerschnittstellenkomponenten oder – steuerungen zu hosten, wie z. B. Fenster, Panels usw.
  • Ein Benutzerschnittstellencontainer kann zu dem Verfahren von 4 geleitet werden. Wie unten beschrieben wird, können die GUI-Komponenten kreiert und in dem Container positioniert werden. Wenn die Rekursion notwendig ist, können die nachfolgenden Benutzerschnittstellencontainer erzeugt und in dem vorherigen Container plaziert werden. Solch eine Verwendung von ineinander gestapelten bzw. verschachtelten Benutzerschnittstellencontainern kann dem Verfahren von 4 ermöglichen, rekursiv angewendet zu werden, so daß Benutzerschnittstellenkomponenten, die immer in den Container ausgegeben werden, in derselben Art und Weise zu dem Verfahren weitergeleitet werden, ungeachtet dessen, wo die Knoten in dem Filterausdrucksbaum liegen.
  • Es sei bemerkt, daß in einer alternativen Ausführungsform die Verwendung von verschachtelten Benutzerschnittstellencontainern weggelassen werden kann. Beispielsweise kann die Information betreffend die gegenwärtigen Positionsoffsetwerte zu dem Verfahren geleitet werden, was es dem Verfahren ermöglicht, die Benutzerschnittstellenkomponenten korrekt auf einem einzelnen Benutzerschnittstellencontainer zu positionieren.
  • In Schritt 100 von 4 wird der Filterausdrucksbaumknoten überprüft, um zu bestimmen, ob er nachfolgende Knoten hat. Die nachfolgenden Knoten eines gegebenen Knotens sind diejenigen Knoten (sofern es welche gibt), die direkt unterhalb des gegebenen Knotens in der Baumhierarchie verbunden sind. Eine Ausführungsform von Schritt 100 wird unten mehr im Detail illustriert.
  • Wenn der Knoten nachfolgende Knoten hat, dann weist der Knoten Boolesche Operatorinformationen auf, die die nachfolgenden Knoten des Knotens logisch verknüpfen, wie oben diskutiert wurde. In Schritt 102 kann ein Benutzerschnittstellencontainer für den gegenwärtigen Knoten erzeugt und zu dem Benutzerschnittstellencontainer, der in das Verfahren geleitet wird, hinzugefügt werden. Abhängig von einer bestimmten Ausführungsform kann der Benutzerschnittstellencontainer für den gegenwärtigen Knoten implizit als Teil des Erzeugungsprozesses zu dem Benutzerschnittstellencontainer hinzugefügt werden, der in das Verfahren eingeleitet wurde, oder er kann explizit hinzugefügt werden, z. B. mit einer zusätzlichen Funktion oder einem Verfahrensaufruf.
  • In Schritt 300 kann eine Benutzerschnittstellenkomponente, die dem Booleschen Operator des Knotens entspricht, erzeugt werden und zu dem Benutzerschnittstellencontainer für den gegenwärtigen Knoten hinzugefügt werden. Beispielsweise kann eine Auswahl-Benutzerschnittstellenkomponente, die es einem Benutzer erlaubt, aus Booleschen Operatoreinträgen, wie z. B. "UND", "ODER", "EXKLUSIVODER", "NICHT" usw., auszuwählen, hinzugefügt werden, oder es können Optionsfeldbenutzerschnittstellenkomponenten entsprechend dieser Operatoren hinzugefügt werden. Der Wert der Booleschen Operator-UI-Komponente kann eingestellt werden, um dem Booleschen Operator zu entsprechen, der von der Knoteninformation spezifiziert wird.
  • In Schritt 104 kann das Verfahren rekursiv auf jeden Nachfolgerknoten angewendet werden, wobei der Benutzerschnittstellencontainer für den gegenwärtigen Knoten, der in Schritt r erzeugt wurde, als der Parameter für das Benutzerschnittstellencontainerverfahren zu dem nachfolgenden Knoten eingereicht wird.
  • Wenn der Knoten keine nachfolgenden Knoten hat, dann ist der Knoten ein Blattknoten und weist somit Information auf, die eine Ausdruckseinheit spezifiziert. In Schritt 106 kann ein Benutzerschnittstellencontainer für den gegenwärtigen Knoten, d. h. für die Benutzerschnittstellenkomponenten, die die Ausdruckseinheit darstellen, aus dem Benutzerschnittstellencontainer, der in das Verfahren eingereicht wird, erzeugt werden.
  • In Schritt 110 kann eine Benutzerschnittstellenkomponente entsprechend dem "Attribut"-Abschnitt der Ausdruckseinheit des Knotens zu dem Benutzerschnittstellencontainer für den gegenwärtigen Knoten hinzugefügt werden. Eine Ausführungsform von Schritt 110 wird unten erörtert.
  • In Schritt 112 kann eine Benutzerschnittstellenkomponente entsprechend dem "Vergleichsoperator"-Abschnitt der Ausdruckseinheit des Knotens zu dem Benutzerschnittstellencontainer für den gegenwärtigen Knoten hinzugefügt werden. Eine Ausführungsform von Schritt 112 wird unten erörtert.
  • In Schritt 114 kann eine Benutzerschnittstellenkomponente entsprechend dem "Wert"-Abschnitt der Ausdruckseinheit des Knotens zu dem Benutzerschnittstellencontainer für den gegenwärtigen Knoten hinzugefügt werden. Eine Ausführungsform von Schritt 114 wird unten erörtert.
  • Wenn die Benutzerschnittstellenkomponenten in den oben beschriebenen Schritten hinzugefügt werden, können die Komponenten auf irgendeine geeignete Weise positioniert werden. Beispielsweise können Komponenten derart positioniert werden, daß sie wie im Beispiel von 3 erscheinen, d. h. in horizontaler Richtung mit der Attributskomponente auf der linken Seite, der Vergleichsoperator in der Mitte und der Wertkomponente auf der rechten Seite.
  • Wie oben erwähnt wurde, stellt 4 eine Ausführungsform eines Verfahrens für das systematische Erzeugen einer GUI aus einem Filterausdrucksbaum dar und verschiedene Schritte von 4 können hinzugefügt, weggelassen, kombiniert, verändert, in anderen Reihenfolgen durchgeführt werden usw. Beispielsweise kann es in einigen Situationen nicht geeignet oder wünschenswert sein, es Benutzern zu ermöglichen, auszuwählen, welche Booleschen Operatoren in einem Filterausdruck zu verwenden sind. In solch einem Fall kann die GUI markiert werden, so daß sie feststehende Boolesche Operatoren anzeigt, anstatt Benutzerschnittstellenkomponenten hinzuzufügen, die es einem Benutzer erlauben, bestimmte Boolesche Operatoren zu spezifizieren.
  • In verschiedenen Ausführungsformen kann die Verwendung eines Verfahrens, wie es oben beschrieben wurde, um automatisch eine GUI zu erzeugen, mit Vorteil die Größe eines Anwendungsprogramms verringern. Beispielsweise kann, wie oben beschrieben wurde, speziell angepaß ter Quellcode, um eine GUI zu erzeugen, Prozeduroperationen für das Erzeugen von Benutzerschnittstellenkomponenten oder -steuerungen, für das Einstellen verschiedener Attribute der Benutzerschnittstellenkomponenten wie gewünscht, für das geeignete Positionieren der Benutzerschnittstellenkomponenten usw. aufweisen. Ein Verfahren für das Erzeugen einer GUI von einem Filterausdrucksbaum kann es ermöglichen, daß diese Operationstypen algorithmisch durchgeführt werden, wie oben beschrieben wurde. Zusätzlich kann der Quellcode, der das Verfahren implementiert, verwendbar sein, um mehrere Filterausdrucks-GUIs innerhalb eines Anwendungsprogramms zu erzeugen.
  • 5 - Bestimmung von nachfolgenden Knoten
  • Schritt 100 von 4 kann in irgendeiner von verschiedenen Arten und Weisen verwirklicht werden. 5 stellt eine Ausführungsform von Schritt 100 dar. In 5 wird der Filterausdrucksbaumknoten überprüft, um zu sehen, ob er einem Booleschen Operator entspricht. Wenn dies der Fall ist, dann ist der Knoten kein Blattknoten und hat somit nachfolgende Knoten.
  • In Schritt 120 wird der Knoten überprüft, um zu bestimmen, ob er ein Boolescher "UND"-Operatorknoten ist. Schritt 120 kann auf irgendeine von verschiedenen Weisen durchgeführt werden, abhängig von einem bestimmten Typ der Anwendung oder der Anwendungsimplementierung. Beispielsweise kann ein E-Mail-Programm, das unter Verwendung der JavaTM-Programmiersprache implementiert ist, die Standard javax.mailsearch.SearchTerms-Klassen verwenden, um die Filterausdrucksbaumknoten darzustellen. In diesem Beispiel kann der Schritt r über eine Anweisung durchgeführt werden, wie z. B.:
  • Figure 00130001
  • Wenn der Knoten als ein Boolescher-UND-Operatorknoten bestimmt wird, dann werden in Schritt 122 die nachfolgenden Knoten des Knotens erhalten. Die nachfolgenden Knoten können dann wie oben beschrieben durchlaufen werden.
  • Anderenfalls wird in Schritt 124 der Knoten überprüft, um zu bestimmen, ob er ein Boolescher-ODER-Operatorknoten ist, ähnlich wie oben für Schritt 120 beschrieben worden ist. Wenn der Knoten als Boolescher-ODER-Operatorknoten bestimmt wird, dann werden in Schritt 106 die nachfolgenden Knoten des Knotens erhalten. Die nachfolgenden Knoten können dann wie oben beschrieben durchlaufen werden.
  • Anderenfalls wird in Schritt 125 der Knoten überprüft, um zu bestimmen, ob er ein Boolescher-EXKLUSIVODER-Operatorknoten ist, ähnlich wie oben für Schritt 120 beschrieben wurde. Wenn der Knoten als Boolescher-EXKLUSIVODER-Operatorknoten bestimmt wird, dann werden in Schritt 127 die nachfolgenden Knoten des Knotens erhalten. Die nachfolgenden Knoten können dann wie oben beschrieben durchlaufen werden.
  • Anderenfalls wird in Schritt 128 der Knoten überprüft, um zu bestimmen, ob er ein Boolescher-NICHT-Operatorknoten ist, ähnlich wie oben für Schritt 120 beschrieben wurde. Wenn der Knoten als ein Boolescher-NICHT-Operatorknoten bestimmt wird, dann wird in Schritt 130 der nachfolgende Knoten des Knotens erhalten. (Man bemerke, daß NICHT-Knoten einen einzelnen nachfolgenden Knoten haben können.) Der nachfolgende Knoten kann dann wie oben beschrieben durchlaufen werden.
  • Wenn der Knoten kein Boolescher-UND-, -ODER- oder -NICHT-Knoten ist, dann kann der Knoten ein Blattknoten sein, wie in 5 gezeigt ist.
  • 6 - GUI-Komponentenerzeugung für Ausdruckseinheiten
  • Wie oben unter Bezug auf die Schritte 110114 von 4 beschreben wurde, können die GUI-Komponenten, die die Ausdruckseinheit darstellen, erzeugt werden. Die 6A und 6B (gemeinsam als 6 bezeichnet) stellen eine Ausführungsform der Schritte 110114 detaillierter dar. Der Prozeß von 6 kann für jede Ausdruckseinheit eines Filterausdrucksbaums wiederholt werden. Obgleich 6 als eine Anwendung gezeigt ist, die eine GUI für einen E-Mail-Filterausdruck erzeugt, kann die Idee, die hinter 6 steht, leicht auf andere Typen von Filterausdrücken angewendet werden.
  • In Schritt 200 wird eine Auswahl-Benutzerschnittstellenkomponente, die den "Attribut"-Teil einer Ausdruckseinheit darstellt, kreiert. Verschiedene Attribute können zu dieser Auswahlkomponente hinzugefügt werden, wie es geeignet ist. Beispielsweise, wie in 6 gezeigt ist, können für einen E-Mail-Filterausdruck Attribute hinzugefügt werden, wie z. B. "Betreff", "Absender", "Datum", "Priorität" usw. Schritt 200 kann implementiert werden unter Verwendung von irgendeinem von verschiedenen Typen von Auswahl-Benutzerschnittstellenkomponenten. Beispielsweise kann in einer Ausführungsform, die unter Verwendung der JavaTM-Programmiersprache implementiert wurde, Schritt 200 implementiert werden mit einem Quellcode, wie z. B.:
  • Figure 00140001
  • In Schritt 202 wird die Auswahl-Benutzerschnittstellenkomponente, die das Ausdruckseinheitsattribut darstellt, auf das geeignete Attribut, wie es von der Knoteninformation spezifiziert wird, eingestellt. Beispielsweise kann in einer Ausführungsform, in der die Knoten unter Verwendung von javax.mail.search.SearchTerms-Klassen dargestellt werden, Schritt 202 ähnlich erscheinen zu:
  • Figure 00140002
  • In den Schritten 204212 wird eine Auswahl-Benutzerschnittstellenkomponente kreiert, die den "Vergleichsoperator"-Teil einer Ausdruckseinheit darstellt. Die Auswahlmöglichkeiten, die in dieser Auswahl-Benutzerschnittstellenkomponente plaziert sind, können von dem Attribut abhängen, das für die Ausdruckseinheit des Knotens spezifiziert wird. Beispielsweise, wie in den Schütten 204206 gezeigt ist, kann, wenn das spezifizierte Attribut ein "Datum"-Attribut ist, die Vergleichsoperatorauswahlkomponente Einträge beinhalten, wie z. B. "liegt vor", "ist", "ist nicht", "liegt nach" usw. Wie in den Schritten 208210 gezeigt ist, kann, wenn das spezifizierte Attribut ein textliches Attribut ist, z. B. "Betreff" oder "Absender", die Vergleichsoperatorauswahlkomponente Einträge beinhalten, wie z. B. "beginnt mit", "enthält", "endet mit" usw. Wie in Schritt 212 gezeigt ist, können Einträge für die Vergleichsoperatorauswahlkomponente vorgabemäßig (default) auf "ist"- und "ist nicht"-Einträgen stehen. Beispielsweise können, wenn das Ausdruckseinheitsattribut "Priorität" ist, diese Einträge hinzugefügt werden.
  • In Schritt 214 wird die Auswahl-Benutzerschnittstellenkomponente, die den Ausdruckseinheitsvergleichsoperator darstellt, auf den geeigneten Vergleichsoperator eingestellt, wie von der Knoteninformation spezifiziert wird, ähnlich wie oben für Schritt 202 beschneben wurde.
  • Wie oben beschneben wurde, kann der Typ der Benutzerschnittstellenkomponente, die erzeugt wird, um den "Wert"-Abschnitt einer Ausdruckseinheit darzustellen, sich unterscheiden. Beispielsweise, wie in den Schritten 216218 gezeigt ist, kann, wenn das Attribut der Ausdruckseinheit ein "Datum"-Attribut ist, eine kalendarische Benutzerschnittstellenkomponente erzeugt werden. Wie in den Schritten 224226 gezeigt ist, kann, wenn das Knotenattribut ein "Priorität"-Attribut ist, eine Auswahl-Benutzerschnittstellenkomponente erzeugt werden mit Einträgen, wie z. B. "niedrig", "normal", "hoch" usw. Wie in Schritt 222 gezeigt ist, kann die Vorgabe derart sein, daß sie eine Textfeldbenutzerschnittstellenkomponente erzeugt, die es einem Benutzer erlaubt, Freitext einzugeben, z. B. um den Wert für ein "Betreff" - oder "Absender"-Attribut zu spezifizieren.
  • In Schntt 228 wird die Auswahl-Benutzerschnittstellenkomponente, die den Ausdruckseinheitswert darstellt, auf den geeigneten Wert eingestellt, wie von der Knoteninformation spezifiziert wird, ähnlich wie oben für Schntt 202 beschrieben wurde.
  • Wie oben bemerkt wurde, stellt 6 eine Ausführungsform eines Prozesses zum Erzeugen von Benutzerschnittstellenkomponenten dar, die Ausdruckseinheitselementen entsprechen, und verschiedene Schritte von 6 können hinzugefügt, weggelassen, kombiniert, verändert, in anderer Reihenfolge durchgeführt werden usw. Beispielsweise kann, obgleich 6 hinsichtlich der Erzeugung von Benutzerschnittstellenkomponenten für einen bestimmten Typ der Ausdruckseinheit, der E-Mail-Nachrichten betrifft, dargestellt ist, der Prozeß natürlich verallgemeinert werden, um zu ermöglichen, daß Benutzerschnittstellenkomponenten geeignet erzeugt werden für Ausdruckseinheiten, die irgendeinen von verschiedenen Typen von Filterausdrücken betreffen. Beispielsweise kann der Prozeß von 6 in solch einer Art und Weise implementiert werden, daß ein Aufrufer eine Liste von Einträgen spezifizieren kann, die zu der Attributauswahl-Benutzerschnittstellenkomponente hinzuzufügen sind, eine Liste von Vergleichsoperatoreinträgen, die mit jedem Attribut zu verknüpfen sind usw. In bestimmten Ausführungsformen können Aufrufer in der Lage sein, diesen Informations typ in irgendeiner von verschiedenen Arten zu spezifizieren. Beispielsweise können Datenstrukturen, die die Information darstellen, definiert werden und als Parameter zu einer Funktion oder einem Verfahren weitergeleitet werden.
  • Verwendung der resultierenden Filterausdrucks-GUI
  • Eine Anwendung kann einen Filterausdrucksbaum erzeugen, einen Top-Level-Benutzerschnittstellencontainer für die aus dem Filterausdrucksbaum zu erzeugende GUI erstellen, wie z. B. ein Panel oder ein Fenster, und kann diesen Benutzerschnittstellencontainer zu einer Funktion oder einem Verfahren leiten, die bzw. das geeignete Benutzerschnittstellenstrukturen und – objekte zu dem Top-Level-Benutzerschnittstellencontainer hinzufügt, wie oben beschrieben wurde. Andere Parameter, die Informationen betreffend die zu erzeugende Filterausdrucks-GUI spezifizieren, wie z. B. die oben beschriebene Information, können ebenso zu der Funktion oder dem Verfahren weitergeleitet werden.
  • Sobald eine GUI erzeugt wurde, kann die Anwendung veranlassen, daß die GUI angezeigt wird, z. B. durch Aufrufen eines Anzeigeverfahrens auf einem Top-Level-Benutzerschnittstellencontainer für die GUI. In einer anderen Ausführungsform kann die GUI inhärent als ein Ergebnis der Erzeugung der Benutzerschnittstellenstrukturen und -objekte angezeigt werden.
  • Ein Anwendungsprogramm, das einen Filterausdruck verwendet, wechselwirkt mit einer GUI, die von einem Filterausdrucksbaum in irgendeiner von verschiedenen Weisen abhängig von einer bestimmten Implementierung kreiert wurde. In einer Ausführungsform wird die Benutzerschnittstelleninformation, wie z. B. Bezugnahmen auf Benutzerschnittstellenkomponenten oder -steuerungen, zu dem Filterausdrucksbaum hinzugefügt, wenn eine GUI kreiert wird. Beispielsweise entspricht in 3 die untere Boolesche Operator-Benutzerschnittstellenkomponente dem Wurzelknoten des Filterausdrucksbaums, der in 2 gezeigt ist. Somit kann eine Bezugnahme auf diese Benutzerschnittstellenkomponente zu dem Wurzelknoten des Filterausdrucksbaums hinzugefügt werden. Diese Benutzerschnittstelleninformation kann dann von der Anwendung verwendet werden, um mit der GUI zu Wechselwirken, ähnlich der Wechselwirkung einer Anwendung mit einer Filterausdrucks-GUI, die unter Verwendung von herkömmlichen Verfahren erzeugt wird.
  • Das Anwendungsprogramm kann Handhabungsereignisse registrieren, das Interagieren mit der Filterausdrucks-GUI, falls geeignet. Die Anwendung kann ebenso verschiedene andere Benutzerschnittstellenkomponenten oder -steuerungen zu der GUI hinzufügen, wie z. B. einen "OK"-Button und einen "Abbruch"-Button, und kann Ereignishandhaber für diese Komponenten registrieren. Beispielsweise kann in Antwort auf einen Benutzer, der einen "OK"-Button drückt, eine Anwendung derart betreibbar sein, daß sie die spezifizierte Filterinformation von dem Filterausdrucksbaum abfragt und die spezifizierte Filterinformation verwendet, um eine Filteroperation durchzuführen. Beispielsweise kann eine Anwendung für das Durchsuchen einer Datenbank von Straßenadressen die Filterinformation nutzen, um eine Operation, wie z. B. das Nachschlagen und das Zurückgeben eines Satzes von Straßenadressen für die Anzeige zu einem Benutzer durchzuführen. Falls geeignet, kann die Anwendung dann die abgerufene Information speichern, so daß sie später verwendet werden kann, um eine GUI zu initialisieren, um das zuletzt verwendete Filterkriterium, das von dem Benutzer spezifiziert wurde, z. B. das nächste Mal, wenn der Benutzer eine Datenbanksuche durchführt, widerzuspiegeln.
  • Obgleich die Ausführungsformen oben in beachtlichem Detail beschrieben wurden, ergeben sich dem Fachmann zahllose Variationen und Modifikationen, sobald die obige Beschreibung vollständig gewürdigt wurde. Es ist beabsichtigt, daß die folgenden Ansprüche derart interpretiert werden, daß sie alle solche Variationen und Modifikationen umfassen.

Claims (20)

  1. Verfahren zum Erstellen einer graphischen Benutzeroberfläche, wobei das Verfahren aufweist: Erstellen eines Filterausdrucksbaumes mit Knoten, die einen Filterausdruck repräsentieren, Durchlaufen des Filterausdrucksbaumes, wobei das Durchlaufen des Filterausdrucksbaumes die Verarbeitung jedes Baumknotens aufweist, wobei das Verfahren dadurch gekennzeichnet ist: daß das Verarbeiten jedes Baumknotens aufweist: das Bestimmen, ob der Baumknoten ein Blattknoten bzw. Endknoten ist, wenn der Baumknoten kein Blattknoten ist, das rekursive Verarbeiten jedes Nachfolgerblatts des Baumknotens, wenn der Baumknoten ein Blattknoten ist, das Erstellen einer Komponente der graphischen Benutzeroberfläche, die die Ausdruckseinheit darstellt, die von dem Blattknoten spezifiziert wird.
  2. Verfahren nach Anspruch 1, wobei das Erstellen der Komponente der graphischen Benutzeroberfläche, die die Ausdruckseinheit darstellt, die von dem Blattknoten spezifiziert wird, das Erzeugen einer "Attribut"-Komponente der graphischen Benutzeroberfläche, einer "Vergleichsoperator"-Komponente der graphischen Benutzeroberfläche und einer "Wert"-Komponente der graphischen Benutzeroberfläche aufweist.
  3. Verfahren nach Anspruch 2, wobei das Erzeugen einer "Attribut"-Komponente der graphischen Benutzeroberfläche das Einstellen der "Attribut"-Komponente der graphischen Benutzeroberfläche auf das von dem Baumknoten spezifizierte Attribut aufweist, wobei das Erzeugen einer "Vergleichsoperator"-Komponente der graphischen Benutzeroberfläche das Einstellen der "Vergleichsoperator"-Komponente der graphischen Benutzeroberfläche auf den Vergleichsoperator, der von dem Baumknoten spezifiziert wird, aufweist, wobei das Erstellen einer "Wert"-Komponente der graphischen Benutzeroberfläche das Einstellen der "Wert"-Komponente der graphischen Benutzeroberfläche auf den Wert, der von dem Baumknoten spezifiziert wird, aufweist.
  4. Verfahren nach Anspruch 2, wobei der Filterausdruck ein Ausdruck für das Filtern von elektronischen Nachrichten ist.
  5. Verfahren nach Anspruch 2, wobei der Filterausdruck ein Ausdruck für ein Element aus der Gruppe ist, die besteht aus: Filterung von Datenbankabfragen, Filterung von Datenbanksuchen und Filterung von Dokumentsuchen.
  6. Verfahren nach Anspruch 4, wobei das Erzeugen einer "Attribut"-Komponente der graphischen Benutzeroberfläche das Erstellen einer Auswahlkomponente der graphischen Benutzeroberfläche aufweist, wobei die Auswahlkomponente der graphischen Benutzeroberfläche ein oder mehrere Attribute aus der Gruppe aufweist, die besteht aus: Betreff der Nachricht, Absender der Nachricht, Datum der Nachricht und Priorität der Nachricht.
  7. Verfahren nach Anspruch 1, wobei jeder Blattknoten des Baums Informationen aufweist, die eine Ausdruckseinheit spezifizieren, wobei jede Ausdruckseinheit ein Attribut, einen Vergleichsoperator und einen Wert aufweist, und wobei jeder Knoten des Baums, der kein Blattknoten ist, Informationen aufweist, die einen Booleschen Operator darstellen.
  8. System, das aufweist: eine Verarbeitungseinheit, Speicher, der mit der Verarbeitungseinheit gekoppelt ist, ein Programm, das in dem Speicher aufgenommen ist, wobei das Programm ausführbar ist, um einen Filterausdrucksbaum zu erzeugen mit Knoten, die einen Filterausdnuck darstellen, wobei das Programm weiterhin ausführbar ist, um den Filterausdrucksbaum zu durchlaufen, wobei das Durchlaufen des Filterausdrucksbaums das Verarbeiten jedes Baumknotens aufweist, wobei das System dadurch gekennzeichnet ist, daß: das Verarbeiten jedes Baumknotens aufweist: das Bestimmen, ob der Baumknoten ein Blattknoten ist, wenn der Baumknoten kein Blattknoten ist, das rekursive Verarbeiten jedes Nachfolgerknotens des Baumknotens, wenn der Baumknoten ein Blattknoten ist, das Erstellen von Komponenten der graphischen Benutzeroberfläche, die die Ausdruckseinheit, die durch den Blattknoten spezifiziert wurde, darstellen.
  9. System nach Anspruch 8, wobei das Erstellen von Komponenten der graphischen Benutzeroberfläche, die die Ausdruckseinheit, die von dem Blattknoten spezifiziert wird, darstellen, das Erstellen einer "Attribut"- Komponente der graphischen Benutzeroberfläche, einer "Vergleichsoperator"-Komponente der graphischen Benutzeroberfläche und einer "Wert"-Komponente der graphischen Benutzeroberfläche aufweist.
  10. System nach Anspruch 9, wobei das Erstellen einer "Attribut"-Komponente der graphischen Benutzeroberfläche das Einstellen der "Attribut"-Komponente der graphischen Benutzeroberfläche auf das Attribut, das von dem Baumknoten spezifiziert wurde, aufweist, wobei das Erzeugen einer "Vergleichsoperator"-Komponente der graphischen Benutzeroberfläche das Einstellen der "Vergleichsoperator"-Komponente der graphischen Benutzeroberfläche auf den Vergleichsoperator, der von dem Baumknoten spezifiziert wurde, aufweist, wobei das Erstellen einer "Wert"-Komponente der graphischen Benutzeroberfläche das Einstellen der "Wert"-Komponente der graphischen Benutzeroberfläche auf den Wert, der von dem Baumknoten spezifiziert wurde, aufweist.
  11. System nach Anspruch 9, wobei der Filterausdruck ein Ausdruck für das Filtern von elektronischen Nachrichten ist.
  12. System nach Anspruch 9, wobei der Filterausdruck ein Ausdruck für ein Element der Gruppe ist, die besteht aus: Filterung von Datenbankabfragen, Filterung von Datenbanksuchen und Filterung von Dokumentsuchen.
  13. System nach Anspruch 11, wobei das Erstellen einer "Attribut"-Komponente der graphischen Benutzeroberfläche das Erstellen einer Auswahlkomponente der graphischen Benutzeroberfläche aufweist, wobei die Auswahlkomponente der graphischen Benutzeroberfläche ein oder mehrere Attribute aus der Gruppe aufweist, die besteht aus: Betreff der Nachricht, Absender der Nachricht, Datum der Nachricht und Priorität der Nachricht.
  14. System nach Anspruch 8, wobei jeder Blattknoten des Baums Information aufweist, die eine Ausdruckseinheit spezifiziert, wobei jede Ausdruckseinheit ein Attribut, einen Vergleichsoperator und einen Wert aufweist, und wobei jeder Knoten des Baumes, der kein Blattknoten ist, Information aufweist, die einen Booleschen Operator darstellt.
  15. Speichermedium, das Programmbefehle aufweist, die implementieren: das Erzeugen eines Filterausdrucksbaumes mit Knoten, die einen Filterausdruck darstellen, das Durchlaufen des Filterausdrucksbaumes, wobei das Durchlaufen des Filterausdrucksbaumes das Verarbeiten jedes Baumknotens aufweist, wobei das Verarbeiten jedes Baumknotens aufweist: das Bestimmen, ob der Baumknoten ein Blattknoten ist, falls der Baumknoten kein Blattknoten ist, das rekursive Verarbeiten jedes Nachfolgerknotens des Baumknotens, wenn der Baumknoten ein Blattknoten ist, Erzeugen von Komponenten der graphischen Benutzeroberfläche, die die Ausdruckseinheit darstellen, die von dem Blattknoten spezifiziert wird.
  16. Speichermedium nach Anspruch 15, wobei das Erzeugen der Komponenten der graphischen Benutzeroberfläche, die die Ausdruckseinheit, welche von dem Blattknoten spezifiziert wird, darstellen, das Erzeugen einer "Attribut"-Komponente der graphischen Benutzeroberfläche, einer "Vergleichsoperator"-Komponente der graphischen Benutzeroberfläche und einer "Wert"-Komponente der graphischen Benutzeroberfläche aufweist.
  17. Speichermedium nach Anspruch 16, wobei das Erzeugen einer "Attribut"-Komponente der graphischen Benutzeroberfläche das Einstellen der "Attribut"-Komponente der graphischen Benutzeroberfläche auf das Attribut, das von dem Baumknoten spezifiziert wird, aufweist, wobei das Erzeugen einer "Vergleichsoperator"-Komponente der graphischen Benutzeroberfläche das Einstellen der "Vergleichsoperator"-Komponente der graphischen Benutzeroberfläche auf den Vergleichsoperator, der von dem Baumknoten spezifiziert wird, aufweist, wobei das Erstellen einer "Wert"-Komponente der graphischen Benutzeroberfläche das Einstellen der "Wert"-Komponente der graphischen Benutzeroberfläche auf den Wert, der von dem Baumknoten spezifiziert wird, aufweist.
  18. Speichermedium nach Anspruch 16, wobei der Filterausdruck ein Ausdruck für das Filtern von elektronischen Nachrichten ist.
  19. Speichermedium nach Anspruch 18, wobei das Erzeugen einer "Attribut"-Komponente der graphischen Benutzeroberfläche das Erzeugen einer Auswahlkomponente der graphischen Benutzeroberfläche aufweist, wobei die Auswahlkomponente der graphischen Benutzeroberfläche ein oder mehrere Attribute aufweist aus der Gruppe, die besteht aus: Betreff der Nachricht, Absender der Nachricht, Datum der Nachricht und Priorität der Nachricht.
  20. Speichermedium nach Anspruch 15, wobei jeder Blattknoten des Baums Information aufweist, die eine Ausdruckseinheit spezifiziert, wobei jede Ausdruckseinheit ein Attribut, einen Vergleichsoperator und einen Wert aufweist, und wobei jeder Knoten des Baums, der kein Blattknoten ist, Information aufweist, die einen Booleschen Operator darstellt.
DE60005404T 1999-12-15 2000-12-14 System und verfahren zur erstellung einer graphischen benutzeroberfläche aus einem filter-expressionsbaum Expired - Lifetime DE60005404T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US46401999A 1999-12-15 1999-12-15
US464019 1999-12-15
PCT/US2000/034023 WO2001044933A2 (en) 1999-12-15 2000-12-14 System and method for creating a graphical user interface from a filter expression tree

Publications (2)

Publication Number Publication Date
DE60005404D1 DE60005404D1 (de) 2003-10-23
DE60005404T2 true DE60005404T2 (de) 2004-07-15

Family

ID=23842197

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60005404T Expired - Lifetime DE60005404T2 (de) 1999-12-15 2000-12-14 System und verfahren zur erstellung einer graphischen benutzeroberfläche aus einem filter-expressionsbaum

Country Status (6)

Country Link
EP (1) EP1248975B1 (de)
JP (1) JP2003523000A (de)
AT (1) ATE250240T1 (de)
AU (1) AU2104501A (de)
DE (1) DE60005404T2 (de)
WO (1) WO2001044933A2 (de)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8478764B2 (en) 2007-11-09 2013-07-02 Vantrix Corporation Method and apparatus for concurrent filtering of multiple components of streaming data
US8442928B2 (en) 2007-11-09 2013-05-14 Vantrix Corporation Method and apparatus for employing rules to filter streaming data
US8019709B2 (en) * 2007-11-09 2011-09-13 Vantrix Corporation Method and system for rule-based content filtering
US8447718B2 (en) 2007-11-09 2013-05-21 Vantrix Corporation Method and apparatus for filtering streaming data
CN101414256B (zh) * 2008-11-26 2010-09-08 浪潮集团山东通用软件有限公司 一种通用的数据过滤组件构建方法
US20140025691A1 (en) * 2012-07-20 2014-01-23 Adobe Systems Inc. Method and apparatus for dynamic filtering of an object graph in a content repository
US9286038B2 (en) * 2013-06-19 2016-03-15 Microsoft Technology Licensing, Llc Interface development and operation
US10168998B2 (en) 2017-03-20 2019-01-01 Google Llc Automated interface design

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69431294T2 (de) * 1993-03-25 2003-04-17 Mgi Software Corp Bildverarbeitungsverfahren und -system
US5995938A (en) * 1996-02-27 1999-11-30 Whaley; Susan S. Medication compliance system
US6002395A (en) * 1996-10-31 1999-12-14 Ncr Corporation System and method for building, testing and integrating a graphical touch user interface

Also Published As

Publication number Publication date
WO2001044933A2 (en) 2001-06-21
DE60005404D1 (de) 2003-10-23
WO2001044933A3 (en) 2002-08-01
ATE250240T1 (de) 2003-10-15
JP2003523000A (ja) 2003-07-29
AU2104501A (en) 2001-06-25
EP1248975A2 (de) 2002-10-16
EP1248975B1 (de) 2003-09-17

Similar Documents

Publication Publication Date Title
DE69931256T2 (de) Verfahren und system zum zurückholen einer elektronischen akte
DE69636914T2 (de) Verfahren und Vorrichtung für Netzwerkverwaltung
DE19842688B4 (de) Verfahren zum Filtern von Daten, die von einem Datenanbieter stammen
EP1311989B1 (de) Verfahren zur automatischen recherche
DE60036303T2 (de) Methode und modell für dynamische anfragen
DE69729926T2 (de) Netzwerkbrowser
DE60314877T2 (de) Verfahren und vorrichtung zur bereitstellung elektronischer post an ein mobiles gerät
DE69535395T2 (de) Nachrichtenfiltertechniken
DE4428060A1 (de) Dokumentations-Schnittstellensystem in einem Informationsverwaltungssystem
DE69719641T2 (de) Ein Verfahren, um Informationen auf Bildschirmgeräten in verschiedenen Grössen zu präsentieren
DE69909614T2 (de) Sich selbst manipulierende bäume verwendende rechenarchitektur
DE69628374T2 (de) Datenverwaltungssystem
EP2188742A1 (de) Erfassung von zusammenhängen zwischen informationen repräsentierenden daten
EP2193456A1 (de) Erfassung von zusammenhängen zwischen informationen repräsentierenden daten
DE60005404T2 (de) System und verfahren zur erstellung einer graphischen benutzeroberfläche aus einem filter-expressionsbaum
DE60300984T2 (de) Methode und Computersystem für die Optimierung eines Boolschen Ausdrucks für Anfragebearbeitung
EP1166228B1 (de) Verfahren zur nutzung von fraktalen semantischen netzen für alle arten von datenbank-anwendungen
DE4135347C2 (de) Verfahren zur Aufrechterhaltung einer gegenseitigen Beziehung zwischen mehreren Objekten in einem für objekt-orientierte Sprache vorgesehenen Computer-System und Vorrichtung zur Durchführung eines derartigen Verfahrens
DE102017122489A1 (de) Knoten in einem gerichteten azyklischen Graphen
DE202006021112U1 (de) Vorrichtung zum Bearbeiten von Geschäftsgegenständen, elektronischen Formaten und Arbeitsabläufen
EP1685505B1 (de) Datenverarbeitungssystem
EP2193455A1 (de) Erfassung von zusammenhängen zwischen informationen repräsentierenden daten
DE60100932T2 (de) Ein Speicherverwaltungsgerät, -methode,-programm und rechnerlesbares Speichermedium zum Speichern des Speicherverwaltungsprogrammes
EP2193457A1 (de) Erfassung von zusammenhängen zwischen informationen repräsentierenden daten
DE112022000920T5 (de) Systeme und verfahren zum zugreifen auf datenentitäten, die durch ein datenverarbeitungssystem verwaltet werden

Legal Events

Date Code Title Description
8364 No opposition during term of opposition