DE60314940T2 - Inkrementales System zur Echtzeitanalyse digitaler Tinte - Google Patents

Inkrementales System zur Echtzeitanalyse digitaler Tinte Download PDF

Info

Publication number
DE60314940T2
DE60314940T2 DE60314940T DE60314940T DE60314940T2 DE 60314940 T2 DE60314940 T2 DE 60314940T2 DE 60314940 T DE60314940 T DE 60314940T DE 60314940 T DE60314940 T DE 60314940T DE 60314940 T2 DE60314940 T2 DE 60314940T2
Authority
DE
Germany
Prior art keywords
data structure
application data
snapshot
analyzing
revised
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
DE60314940T
Other languages
English (en)
Other versions
DE60314940D1 (de
Inventor
Sashi Raghupathy
Michael M. Shilman
Z. Haidian District Wei
David F. Redmond Jones
Charlton E. NE Redmond Lui
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.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Application granted granted Critical
Publication of DE60314940D1 publication Critical patent/DE60314940D1/de
Publication of DE60314940T2 publication Critical patent/DE60314940T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/14Image acquisition
    • G06V30/142Image acquisition using hand-held instruments; Constructional details of the instruments
    • G06V30/1423Image acquisition using hand-held instruments; Constructional details of the instruments the instrument generating sequences of position coordinates corresponding to handwriting

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Character Discrimination (AREA)
  • Editing Of Facsimile Originals (AREA)
  • Particle Formation And Scattering Control In Inkjet Printers (AREA)
  • Automatic Analysis And Handling Materials Therefor (AREA)

Description

  • TECHNISCHES GEBIET
  • Aspekte der vorliegenden Erfindung betreffen im Allgemeinen Systeme und Verfahren zum Verarbeiten handgeschriebener digitaler Tinte.
  • HINTERGRUND
  • Typische Computersysteme, im Besonderen Computersysteme, die grafische Benutzerschnittstellen verwenden, wie Microsoft WINDOWS®, werden optimiert, um Benutzereingabe von einer oder mehreren diskreten Eingabevorrichtungen anzunehmen. Zu typischen Eingabevorrichtungen gehören eine Tastatur zum Eingeben von Text und eine Zeigevorrichtung, wie eine Maus mit einem oder mehreren Knöpfen, zum Betreiben der Benutzerschnittstelle. Die allgegenwärtige Tastatur- und Mausschnittstelle sorgt für schnelle Erzeugung und Modifikation von Dokumenten, Kalkulationstabellen, Datenbankfeldern, Zeichnungen, Fotos und Ähnlichem. Es besteht jedoch eine signifikante Lücke zwischen der Flexibilität, die von der Tastatur- und Mausschnittstelle bereitgestellt wird, im Vergleich zu dem Nichtcomputer-Stift und -Papier (d. h. Standardstift und -papier). Mit dem Standardstift und -papier kann ein Benutzer ein Dokument editieren, in nichthorizontalen Richtungen schreiben, Notizen in einen Rand schreiben, Bilder und andere Formen zeichnen, getrennte Sätze von Notizen durch Verbindungslinien oder Pfeile verknüpfen und Ähnliches. In einigen Fällen kann ein Benutzer bevorzugen, einen Stift zum Kennzeichnen eines Dokuments zu verwenden, statt das Dokument auf dem Bildschirm zu prüfen, da er frei Notizen außerhalb der Begrenzungen und Beschränkungen der Tastatur- und Mausschnittstelle machen kann.
  • Einige Computersysteme gestatten jedoch einem Benutzer, auf einen Bildschirm zu schreiben (z.B. unter Verwendung eines „Tablettstifts" oder „Stifts" zum Schreiben von Notizen auf einen elektronischen Eingabebildschirm). Zum Beispiel gestattet die Micro soff READER-Anwendung einem, digitale Tinte (hierin außerdem als „elektronische Tinte" oder „Tinte" bezeichnet) zu einem Dokument hinzuzufügen. Das System speichert die Tinte und stellt sie auf Anforderung für einen Benutzer bereit. Andere Anwendungen (zum Beispiel Zeichenanwendungen, die auf dem Gebiet als mit den Betriebssystemen Palm 3.x und 4.x und PocketPC assoziiert bekannt sind) gestatten das Erfassen und Speichern von Zeichnungen. Diese Zeichnungen können andere Eigenschaften enthalten, die mit den Tintenstrichen, die zum Erstellen der Zeichnungen verwendet werden, assoziiert sind. Zum Beispiel können Linienbreite und Farbe mit der Tinte gespeichert werden. Ein Ziel dieser Systeme besteht darin, das Aussehen und den Eindruck physischer Tinte, die auf ein Stück Papier aufgetragen wird, zu duplizieren.
  • Eine Aktivität, die normalerweise physischer Tinte und Papier vorbehalten ist, ist das Notieren. Persönliche Notizen sind wie jeder Benutzer einzigartig. Manche Benutzer machen Notizen unter Verwendung vollständiger Sätze, während andere Gedanken oder Konzepte schnell aufschreiben und die Konzepte dann unter Verwendung von Pfeilen und Ähnlichem verknüpfen. Der letztgenannte Typ Notizen neigt dazu, an unterschiedlichen Stellen auf eine Seite und/oder in unterschiedlichen Winkeln auf die Seite geschrieben zu werden. Zusätzlich schauen manche Benutzer Notizen später nochmals durch und fügen weitere Gedanken hinzu, klären und/oder editieren zuvor aufgezeichnete Notizen. Der in handgeschriebenen Notizen vorhandene Wert könnte nicht nur in dem eigentlichen Text der aufgezeichneten Informationen liegen, sondern außerdem in der Gestaltung der Notizen und der Nebeneinanderstellung mancher Notizen in Bezug auf andere. Weiterer Wert kann mit der Geschwindigkeit, mit der Benutzer Notizen machen, hinzugefügt werden.
  • Der Übergang von einer Anordnung zum Notieren mit einem Füller und physischem Papier zu einer computerbasierten Notieranordnung kann sich als schwierig erweisen. Während computerbasierte Notiersysteme Vorteile, die Handschrifterkennungsfunktionalität, Suchbarkeit und Schrifttext-Neuformatierung, beinhalten, bereitstellen können, könnten Benutzer schnell desorientiert oder frustriert sein, wenn das computerbasierte System nicht wie erwartet funktioniert.
  • Als ein Beispiel sind eine Anzahl von Systemen zum elektronischen Erfassen, Neuordnen und Anzeigen von Handschrift als digitale Tinte bekannt (zum Beispiel das InkWri ter®-System von Aha! Software, nun im Besitz der Microsoft Corporation, Redmond, Washington). Diese Systeme erfassen Tintenstriche und gruppieren die Striche in Zeichen und Wörter. Das Schreiben in mehrere Bereiche auf einer Seite, wie dies viele Benutzer tun, kann schnell zu Verwirrung führen, wenn zum Beispiel Informationen, die als getrennte Notizen beibehalten werden sollten, von dem System zu einer einzelnen inkohärenten Notiz kombiniert werden. Außerdem kann bei manchen bestehenden Systemen Drag-Auswahl (ähnlich wie das Niederhalten eines Mausknopfs und Ziehen zum Auswählen von Text bei einem Texteditor) große Bereiche freien Raums (d. h. weißer Raum) auf der Seite auswählen. Wenn dieser ausgewählte Text ausgeschnitten und eingefügt wird (unter Verwendung computerbasierter Standard-Texteditierkonzepte) oder anderweitig genutzt wird, kann das große Volumen ausgewählten freien Raums ein unbeabsichtigtes und überraschendes Ergebnis erzeugen. Dieses Ergebnis ist gegen die eigene Intuition des durchschnittlichen Computerbenutzers, da herkömmliche Texteditiersysteme unterschiedlich arbeiten.
  • Zusätzlich erfordern einige bekannte Systeme, die Tintenstriche erfassen, relativ strukturierte Tinteneingabe, um auf eine akzeptable Weise zu funktionieren. Zum Beispiel werden Benutzer solcher Systeme typischerweise zum „ordentlichen Schreiben" oder zum „Schreiben zwischen den Linien" in einer horizontalen Ausrichtung oder zum Schreiben in einen spezifizierten Tinteneingabebereich ermahnt. Das Nichteinhalten dieser Anweisungen kann Erkennungsfehler oder andere Fehler verursachen, wenn die elektronische Tinte einem assoziierten Handschrifterkennungssystem vorgelegt wird, wodurch die Nützlichkeit des Systems für elektronisches Notieren beschränkt wird. Außerdem sind einige Benutzer angesichts dieser Fehler und Beschränkungen des Systems schnell frustriert und/oder sind frustriert, wenn sie gezwungen sind, ihre Handschrift einzuschränken und anzupassen, um besser mit den Beschränkungen des Systems „klarzukommen".
  • Datenverarbeitung in stiftbasierten Rechnersystemen können ebenfalls eine Quelle der Frustration für Benutzer sein. Das Verarbeiten handgeschriebener digitaler Tinte kann im Besonderen dann, wenn ein Dokument eine große Menge an Tintendaten zum Verarbeiten enthält, zeitaufwändig sein. Übermäßige Verzögerungen und „Ausfallzeit" zum Ermöglichen von Datenverarbeitung können einige Benutzer vom Wechseln zu stiftbasierten Rechnersystemen abbringen.
  • Diese Unzulänglichkeiten von bestehenden elektronischen Notiersystemen erzeugen wirksame Barrieren für die Übernahme stiftbasierter Rechnersysteme.
  • Darüber hinaus beschreibt der Artikel „A Handwriting-Based Equation Editor", Smithies u. a., Proceedings, Graphics Interface '99 Canadian Inf. Process. Soc., Toronto, Kanada, 1999, Seite 84 bis 91, einen Gleichungseditor, der auf Handschrifterkennung und automatischem Gleichungs-Parsen basiert. Dieses System nimmt an, dass der Benutzer die Striche für jedes Zeichen abschließt, bevor er zu dem nächsten weitergeht. Beim Einschalten wird der Benutzer in den „Zeichenmodus" gesetzt. Während der Benutzer schreibt, interpretiert das System automatisch die Striche. Während jedes Zeichen erkannt wird, wird seine Bounding-Box schattiert und mit dem Symbol imitiert, dass es gemäß der Bestimmung durch die Erkennungsvorrichtung am wahrscheinlichsten darstellt. Wenn Benutzer das, was sie gezeichnet haben, ändern möchten, können sie jederzeit in den „Auswählen-und-Bewegen-Modus" eintreten. In diesem Modus können sie einen Teilsatz ihrer ursprünglichen Striche auswählen, um sie zu löschen oder zu bewegen. In dem „Strichgruppen-Modifizieren-Modus" kann der Benutzer Strichgruppierungsfehler korrigieren. In dem „Zeichen-Modifizieren-Modus" kann der Benutzer Zeichenerkennungsfehler korrigieren.
  • Zusätzlich beschreibt US 6 028 959 ein Verfahren zur inkrementalen Erkennung von Handschrift. Striche werden in der natürlichen Reihenfolge geschrieben, in der das ideographische Zeichen geschrieben werden würde. Die Striche werden zu einer Strichliste hinzugefügt, wobei die Strichliste einer Inkrementalzeichenerkennungsvorrichtung zugeführt wird, die eine Hypothesenliste von Zeichen erzeugt, die die Striche der Strichliste enthält. Der erste Teil der Inkrementalerkennungsvorrichtung ist ein Klassierer, der die Zeichenkandidaten aus allen möglichen Zeichenkandidaten auf eine viel kleinere Gruppe begrenzt, ein ausführlicher Klassierer, der die Identität des partiellen oder vollständigen Zeichens, das geschrieben wird, bestimmt. Es gibt zwei neuronale Netzwerke, die den ausführlichen Klassierer bilden, wobei das erste Netzwerk zur Erkennung der partiellen Zeichen optimiert ist und das zweite Netzwerk zur Erkennung eines abgeschlossenen Zeichens optimiert ist.
  • Darüber hinaus beschreibt der Artikel „Incremental Recognition in Gesture-Based and Syntax-Directed Diagram Editors", Zhao, R. Ed, Ashlund, S., u. a., Proceedings of the Conference on Human Factors in Computing Systems, Reading, USA, 24. April 1993, Seite 95 bis 100, einen gestenbasierten und syntaxgerichteten Diagrammeditor. Eine Erkennungsvorrichtung niederen Niveaus wandelt die Punktkoordinaten in grafische Symbole um. Eine Erkennungsvorrichtung hohen Niveaus wandelt diese Basissymbole in Editierbefehle um, die wiederum von einem Diagrammeditor interpretiert werden, um die interne Diagrammstruktur zu erzeugen. Jeder Strich wird unmittelbar, nachdem er gezeichnet wurde, erkannt und seine Tinte wird durch ein erkanntes grafisches Symbol ersetzt. Jeweils zwei verbundene Symbole werden inkremental verschmolzen. Sobald die Erkennungsvorrichtung niederen Niveaus den eben gezeichneten Strich erkannt hat, versucht die Erkennungsvorrichtung hohen Niveaus eine gültige Geste aus grafischen Symbolen, die in der Datenbank gespeichert sind, zu finden.
  • Zusätzlich beschreibt der Artikel „A hybrid system for handprinted word recognition", Proceedings of the Conference on Artificial Intelligence for Applications, Orlando, 1. bis 5. März 1993, Los Alamitos, Seite 227 bis 234, eine Technik zur Erkennung von handgedruckten Wörtern, die ein Hybrid aus prozeduralen und konnektionistischen Techniken verwendet. Es wird dargelegt, dass traditionelle Ansätze bei der Worterkennung einen Segmentierungsschritt vor der Zeichenerkennung nutzen, bei dem ein Wortbild in seine Zeichenbestandteile zerlegt wird. Darüber hinaus überwacht in dem Basisschema die prozedurale Steuerung den Ausgang der Groberkennungsvorrichtung und wartet darauf, dass die Groberkennungsvorrichtung Sicherheit bei der Erkennung einer bestimmten Ziffer aufbaut. Wenn ein Schwellenwert erreicht wird, sendet die prozedurale Steuerung das jüngste Bild gemäß der Abtastung durch die Groberkennungsvorrichtung zur Verifizierung an die Feinerkennungsvorrichtung. Wenn die Feinerkennungsvorrichtung die Schätzung akzeptiert, ist die Ziffer erkannt. Wenn die Feinerkennungsvorrichtung die Schätzung ablehnt, muss die Groberkennungsvorrichtung entweder die Verarbeitung fortsetzen oder zurückverfolgen. Die Konstruktion der Groberkennungsvorrichtung ist derjenigen der Feinerkennungsvorrichtung ähnlich, aber es wurde lediglich ein Einzelabtastungsnetzwerk verwendet, das Informationen von der Spalten-Abtastung von links nach rechts empfängt.
  • Darüber hinaus beschreibt der Artikel „Statistical Visual language Models for Ink Parsing", Proceedings AAAI Symposium on Sketch Understanding, März 2002, Seite 126 bis 132, einen Inkrementalerkennungsalgorithmus. Es wird vorgeschlagen, dem Benutzer während des Zeichnens sofortige Rückmeldung zu geben. Wenn die Erkennungsvorrichtung eine neue Position empfängt, aktualisiert sie zuerst all ihre Merkmale. Auf Basis der Werte der Merkmale prüft die Erkennungsvorrichtung alle möglichen übereinstimmenden Formen, ob sie übereinstimmen oder nicht. Nachdem alle Formen aktualisiert sind, prüft die Verfolgungsvorrichtung, ob sich die aktuelle wahrscheinlichste Form geändert hat.
  • Daher ist es eine Aufgabe der Erfindung, ein verbessertes Verfahren und System zum Eingeben und Analysieren von Strichen digitaler Tinte bereitzustellen.
  • Diese Aufgabe wird durch den Gegenstand der unabhängigen Ansprüche erfüllt.
  • Bevorzugte Ausführungen sind der Gegenstand der abhängigen Ansprüche.
  • Die vorliegende Erfindung stellt flexible und effiziente Systeme und Verfahren zum Organisieren, Analysieren und Verarbeiten digitaler Tinte bereit. Die Systeme und Verfahren gemäß dieser Erfindung analysieren inkremental die eingegebenen Daten (die z.B. Tintenstriche darstellen), während der Benutzer fortfährt, die Daten zu ergänzen, zu editieren oder zu modifizieren. Auf diese Weise wird Verarbeitung sofort durchgeführt, wenn der Benutzer die Tinte eingibt, und das Verarbeitungssystem kann wirksam mit dem Benutzer mithalten und sich an Änderungen anpassen, die gemacht werden, während der Benutzer ein bestehendes Dokument elektronischer Tinte überarbeitet. Bei manchen Beispielen der Erfindung wird eine Vielzahl von Tintenanalysiermaschinen asynchron im Hintergrund ausgeführt, während ein Benutzer wahlweise fortfährt, mehr Tinte zu dem Dokument hinzuzufügen oder bestehende Tinte in dem Dokument zu modifizieren. Systeme und Verfahren nach Beispielen der Erfindung verhindern lange Verarbeitungsverzögerungen, da diese Systeme und Verfahren nicht zuerst große Mengen von Tintendaten verarbeiten müssen, die vorhanden sind, nachdem der Benutzer eine Seite vollständig mit Tinte gefüllt hat.
  • Diese und andere Merkmale und Aspekte der Erfindung werden bei Berücksichtigung der folgenden ausführlichen Beschreibung offensichtlich.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die vorhergehende Zusammenfassung sowie die folgende ausführliche Beschreibung können besser verstanden werden, wenn sie in Verbindung mit den begleitenden Zeichnungen gelesen werden, die als Beispiel und nicht zur Beschränkung in Bezug auf die beanspruchte Erfindung enthalten sind.
  • 1 stellt ein schematisches Diagramm einer beispielhaften digitalen Allzweck-Rechenumgebung dar, die zum Implementieren verschiedener Aspekte der vorliegenden Erfindung verwendet werden kann.
  • 2 stellt ein beispielhaftes stiftbasiertes Rechensystem dar, das nach verschiedenen Aspekten der vorliegenden Erfindung verwendet werden kann.
  • 3 stellt ein Beispiel für ein Gesamtverarbeitungssystem für digitale Tinte dar, das beim Praktizieren dieser Erfindung verwendet werden kann.
  • 4 stellt ein schematisches Diagramm eines Beispiels für ein System nach der vorliegenden Erfindung dar.
  • 5 stellt ein allgemeines Beispiel für verschiedene Vorgänge oder Parsingmaschinen dar, die bei einer Layoutanalyse verwendet werden können, die bei manchen Beispielen für die erfindungsgemäßen Systeme und Verfahren verwendet wird.
  • 6A und 6B stellen Beispiele für Ableitungsbäume dar, die Eingabedatenstrukturen beschreiben, die bei manchen Beispielen für erfindungsgemäße Systeme und Verfahren verwendet werden.
  • 7A und 7B stellen Flussdiagramme dar, die den Betrieb von Systemen und Verfahren nach einem Beispiel der vorliegenden Erfindung beschreiben.
  • 8A und 8B stellen Flussdiagramme dar, die den Betrieb von Systemen und Verfahren nach einem anderen Beispiel der vorliegenden Erfindung beschreiben.
  • 9A und 9B stellen Flussdiagramme dar, die den Betrieb von Systemen und Verfahren nach einem anderen Beispiel der vorliegenden Erfindung beschreiben.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Wie oben beschrieben wird, beziehen sich Beispiele der vorliegenden Erfindung auf flexible und effiziente Systeme und Verfahren zum Organisieren, Analysieren und Verarbeiten digitaler Tinte, z.B. in einem stiftbasierten Rechnersystem. Die Erfindung betrifft außerdem computerlesbare Medien, die durch Computer implementierbare Befehle zum Betreiben von Systemen und/oder Durchführen von Verfahren nach der Erfindung enthalten. Das Folgende beschreibt verschiedene Beispiele der Erfindung ausführlicher.
  • Diese Spezifikation beschreibt Figuren, die schematisch verschiedene Verfahren und Systeme darstellen, die beim Praktizieren von Beispielen der Erfindung nützlich sind (z. B. 3, 4 und 5). Diese schematischen Darstellungen sollen im Allgemeinen sowohl Systeme als auch Verfahren darstellen, die erfindungsgemäß nützlich sind. Daher kann in manchen Fällen in Abhängigkeit von dem Kontext des Satzes ein spezifisches Element aus diesen Figuren (wie das Layoutanalyseelement 302, das Element temporaler Zeilengruppierung 408 und Ähnliches) als ein System (z.B. ein System temporaler Zeilengruppierung 408) bezeichnet werden, während in anderen Fällen dasselbe Element und Bezugszeichen in Bezug auf ein Verfahren, einen Vorgang, einen Schritt, eine Parsingmaschine und/oder Ähnliches verwendet werden können. All diese Varianten (z.B. Systeme, Verfahren, Schritte, Vorgänge, Parsingmaschinen und Ähnliches) sollen in dem Umfang dieser Figuren enthalten sein.
  • Die folgende Beschreibung ist in Unterabschnitte unterteilt, um den Leser zu unterstützen. Die Unterabschnitte enthalten: Begriffe, Allzweck-Computer, Beschreibung von Beispielen für erfindungsgemäße Systeme und Verfahren und Schluss.
  • I. BEGRIFFE
  • Die folgenden Begriffe werden in dieser Spezifikation verwendet:
    Tinte (außerdem als „digitale Tinte" oder „elektronische Tinte" bezeichnet) – Eine Folge oder ein Satz handgeschriebener Striche. Eine Folge von Strichen kann Striche in einer geordneten Form enthalten. Die Folge kann auf eine geeignete Weise geordnet werden, wie nach der Zeit, zu der der Strich erfasst wurde, und/oder nach der Position, an der der Strich auf einer Seite erscheint. Andere Reihenfolgen sind möglich.
  • Punkt – Informationen, die einen Ort in einem Raum definieren. Zum Beispiel kann ein Punkt relativ zu einem Erfassungsraum (zum Beispiel Punkte auf einer Digitalisiervorrichtung) und/oder einem Anzeigeraum (die Punkte oder Bildpunkte einer Anzeigevorrichtung) definiert werden. Punkte können unter Verwendung einer Vielfalt bekannter Techniken dargestellt werden, wobei diese zweidimensionale kartesische Koordinaten (X, Y), Polarkoordinaten (r, Θ), dreidimensionale Koordinaten ((X, Y, Z), (r, Θ, ρ), (X, Y, t (wobei t Zeit ist)), (r, Θ, t)), vierdimensionale Koordinaten ((X, Y, Z, t) und (r, Θ, ρ, t)) und andere Techniken, die auf dem Gebiet bekannt sind, enthalten.
  • Strich – Eine Folge oder ein Satz erfasster Punkte. Ein Strich kann auf eine Reihe von Weisen bestimmt werden, wie zum Beispiel unter Verwendung von Zeit (z.B. sind ein Strich alle Punkte, die von dem Tablettstift während eines vorgegebenen Zeitintervalls angetroffen werden), unter Verwendung einer vorgegebenen Anzahl von Punkten (z.B. sind ein Strich alle Punkte 1 durch X, wobei X vordefiniert ist) oder unter Verwendung von Tablettstiftkontakt mit der Digitalisiervorrichtungsoberfläche (z.B. sind ein Strich alle Punkte, die von dem Tablettstift zwischen einem Stift-Aufgesetzt(Pen-Down)-Ereignis und einem Stift-Angehoben(Pen-Up)-Ereignis angetroffen werden). Beim Rendern kann die Folge von Punkten mit Linien verbunden werden. Alternativ kann ein Strich als ein Punkt und ein Vektor in der Richtung des nächsten Punkts dargestellt werden. Des Weiteren kann ein Strich als eine einfache Liste (oder Feld oder Tabelle) von Punkten bezeichnet werden. Kurz gesagt verfolgt ein Strich die Absicht, eine Darstellung von Punkten oder Segmenten in Bezug auf Tinte zu umfassen, ungeachtet der zugrundeliegenden Darstellung von Punkten und/oder davon, was die Punkte verbindet.
  • Rendern – Der Prozess des Bestimmens, wie Grafik (und/oder Tinte) anzuzeigen ist, ob auf einem Bildschirm oder gedruckt.
  • Ableitungsbaum (Parse Tree) – Eine Datenstruktur, die die Struktur eines Dokuments darstellt. Die 6A und 6B stellen Beispiele für Ableitungsbäume sowohl vor als auch nach einem Layoutanalysiervorgang dar, wobei eine vorgegebene Seite eines Dokuments in Blöcke, Zeilen, Wörter und einzelne Striche geparst wird.
  • Parsingmaschine – Ein einzelner Verarbeitungsschritt oder -vorgang in einer Tintenanalysiermaschine. Eine typische Tintenanalysiermaschine enthält mehrere Parsingmaschinen, wobei sich jede auf eine bestimmte Aufgabe konzentriert. Ein Beispiel für eine Tintenanalysiermaschine ist die hierin beschriebene Layoutanalysiermaschine, die einzelne Parsingmaschinen für temporale Zeilengruppierung, räumliche Blockgruppierung, räumliche Zeilengruppierung, Listenerfassung und räumliche Wortgruppierung enthält. Eine Parsingmaschine nimmt eine Ableitungsbaumdatenstruktur als Eingabe und modifiziert sie (soweit angebracht), um einen Ableitungsbaum mit einer unterschiedlichen Datenstruktur zu erzeugen, der wiederum als Eingabe zu der nächsten Parsingmaschine weitergeleitet werden kann.
  • II. ALLZWECK-COMPUTER
  • 1 stellt ein schematisches Diagramm einer beispielhaften herkömmlichen digitalen Allzweck-Rechenumgebung dar, die zum Implementieren verschiedener Aspekte der vorliegenden Erfindung verwendet werden kann. In 1 enthält ein Computer 100 eine Verarbeitungseinheit 110, einen Systemspeicher 120 und einen Systembus 130, der verschiedene Systembauteile einschließlich des Systemspeichers mit der Verarbeitungseinheit 110 koppelt. Der Systembus 130 kann einer von mehreren Typen von Busstrukturen sein, wobei dies einen Speicherbus oder eine Speichersteuerung, einen peripheren Bus und einen lokalen Bus unter Verwendung einer Vielfalt von Busarchitekturen beinhaltet. Der Systemspeicher 120 enthält einen Nur-Lese-Speicher (ROM) 140 und einen Direktzugriffsspeicher (RAM) 150.
  • Ein BIOS (Basic Input/Output System) 160, das die Basisroutinen enthält, die bei der Übertragung von Informationen zwischen Elementen in dem Computer 100 unterstüt zen, wie bei dem Einschalten, ist in dem ROM 140 gespeichert. Der Computer 100 enthält außerdem ein Festplattenlaufwerk 170, um von einer Festplatte (nicht gezeigt) zu lesen und in diese zu schreiben, ein Magnetplattenlaufwerk 180, um von einer entnehmbaren Magnetplatte 190 zu lesen oder in diese zu schreiben, und ein Optikplattenlaufwerk 191, um von einer optischen Platte 192, wie eine CD-ROM oder andere optische Medien, zu lesen oder in diese zu schreiben. Das Festplattenlaufwerk 170, Magnetplattenlaufwerk 180 und Optikplattenlaufwerk 191 sind durch eine Festplattenlaufwerkschnittstelle 192, eine Magnetplattenlaufwerkschnittstelle 193 bzw. eine Optikplattenlaufwerkschnittstelle 194 mit dem Systembus 130 verbunden. Die Laufwerke und ihre assoziierten computerlesbaren Medien stellen nichtflüchtige Speicherung von computerlesbaren Befehlen, Datenstrukturen, Programmmodulen und anderen Daten für den Personal Computer 100 bereit. Fachleute werden feststellen, dass außerdem andere Typen computerlesbarer Medien, die Daten, auf die ein Computer zugreifen kann, speichern können, wie Magnetkassetten, Flash-Speicherkarten, digitale Videoplatten, Bernoulli-Kassetten, Direktzugriffsspeicher (RAM), Nur-Lese-Speicher (ROM) und Ähnliches, in der beispielhaften Betriebsumgebung verwendet werden können.
  • Eine Anzahl von Programmmodulen kann auf dem Festplattenlaufwerk 170, der Magnetplatte 190, der optischen Platte 192, dem ROM 140 oder dem RAM 150 gespeichert werden, wobei dies ein Betriebssystem 195, ein oder mehrere Anwendungsprogramme 196, andere Programmmodule 197 und Programmdaten 198 beinhaltet. Ein Benutzer kann über Eingabevorrichtungen, wie eine Tastatur 101 und eine Zeigevorrichtung 102, Befehle und Informationen in den Computer 100 eingeben. Andere Eingabevorrichtungen (nicht gezeigt) können ein Mikrofon, einen Joystick, ein Gamepad, eine Satellitenschüssel, einen Scanner oder Ähnliches umfassen. Diese und andere Eingabevorrichtungen sind oft über eine serielle Schnittstelle 106, die mit dem Systembus 130 gekoppelt ist, mit der Verarbeitungseinheit 110 verbunden, können aber durch andere Schnittstellen, wie ein paralleler Anschluss, ein Gameport oder ein universaler serieller Bus (USB), verbunden sein. Des Weiteren können diese Vorrichtungen über eine geeignete Schnittstelle (nicht gezeigt) direkt mit dem Systembus 130 gekoppelt sein. Ein Monitor 107 oder ein anderer Typ von Anzeigevorrichtung ist ebenfalls über eine Schnittstelle, wie ein Videoadapter 108, mit dem Systembus 130 verbunden. Zusätzlich zu dem Monitor 107 enthalten Personal Computer typischerweise andere periphere Ausgabevorrichtungen (nicht gezeigt), wie Lautsprecher und Drucker. Als ein Beispiel werden eine Stift- Digitalisiervorrichtung 165 und eine begleitende Stift- oder Benutzereingabevorrichtung 166 bereitgestellt, um freihändige Eingabe digital zu erfassen. Die Stift-Digitalisiervorrichtung 165 kann über die serielle Schnittstelle 106 und den Systembus 130, wie in 1 gezeigt, oder durch eine andere geeignete Verbindung mit der Verarbeitungseinheit 110 verbunden sein. Des Weiteren kann sich, auch wenn die Digitalisiervorrichtung 165 von dem Monitor 107 getrennt gezeigt wird, der benutzbare Eingabebereich der Digitalisiervorrichtung 165 gemeinsam mit dem Anzeigebereich des Monitors 107 erstrecken. Des Weiteren kann die Digitalisiervorrichtung 165 in den Monitor 107 integriert sein oder kann als eine getrennte Vorrichtung bestehen, die über dem Monitor 107 liegt oder anderweitig an ihn angehängt ist.
  • Der Computer 100 kann in einer vernetzten Umgebung unter Verwendung logischer Verbindungen mit einem oder mehreren Ferncomputern, wie dem Ferncomputer 109, arbeiten. Der Ferncomputer 109 kann ein Server, ein Router, ein Netzwerk-PC, eine Peer-Vorrichtung oder ein anderer üblicher Netzwerkknoten sein und enthält typischerweise viele oder alle der oben beschriebenen Elemente in Bezug auf den Computer 100, auch wenn in 1 lediglich eine Speichervorrichtung 111 mit zugehörigen Anwendungsprogrammen 196 dargestellt wurden. Die in 1 gezeigten logischen Verbindungen enthalten ein lokales Netzwerk (LAN) 112 und ein Fernnetzwerk (WAN) 113. Solche vernetzten Umgebungen sind in Büros, unternehmensweiten Computernetzwerken, Intranets und dem Internet üblich.
  • Bei Verwendung in einer LAN-Netzwerkumgebung wird der Computer 100 über eine Netzwerkschnittstelle oder einen Adapter 114 mit dem lokalen Netzwerk 112 verbunden. Bei Verwendung in einer WAN-Netzwerkumgebung enthält der Personal Computer 100 typischerweise ein Modem 115 oder eine andere Einrichtung zum Herstellen einer Kommunikationsverbindung über das Fernnetzwerk 113, wie z.B. mit dem Internet. Das Modem 115, das intern oder extern sein kann, ist über die serielle Schnittstelle 106 mit dem Systembus 130 verbunden. In einer vernetzten Umgebung können Programmmodule, die in Bezug auf den Personal Computer 100 gezeigt werden, oder Abschnitte davon in einer Fernspeichervorrichtung gespeichert sein.
  • Es ist festzustellen, dass die gezeigten Netzwerkverbindungen beispielhaft sind und andere Techniken zum Herstellen einer Kommunikationsverbindung zwischen den Compu tern verwendet werden können. Das Bestehen von einem von verschiedenen wohlbekannten Protokollen, wie TCP/IP, Ethernet, FTP, HTTP und Ähnliches, wird angenommen und das System kann in einer Client-Server-Konfiguration betrieben werden, um einem Benutzer das Abrufen von Webseiten aus einem webbasierten Server zu gestatten. Einer von verschiedenen herkömmlichen Web-Browsern kann verwendet werden, um Daten auf Webseiten anzuzeigen und zu beeinflussen.
  • 2 stellt ein beispielhaftes stiftbasiertes Rechensystem 201 dar, das nach verschiedenen Aspekten der vorliegenden Erfindung verwendet werden kann. Eines oder alle der Merkmale, Teilsysteme und Funktionen in dem System von 1 kann oder können in dem Computer von 2 enthalten sein. Das stiftbasierte Rechensystem 201 enthält eine große Anzeigefläche 202, wie z.B. eine digitalisierende Flachbildanzeige, wie ein Flüssigkristallanzeige(LCD)-Bildschirm, auf dem eine Vielzahl von Fenstern 203 angezeigt wird. Unter Verwendung des Tablettstiftes 204 kann ein Benutzer auf der digitalisierenden Anzeigefläche 202 auswählen, markieren und/oder schreiben. Zu Beispielen für geeignete digitalisierende Anzeigeflächen 202 gehören elektromagnetische Stift-Digitalisiervorrichtungen, wie Mutoh- oder Wacom-Stift-Digitalisiervorrichtungen. Außerdem können andere Typen von Stift-Digitalisiervorrichtungen, wie z.B. optische Digitalisiervorrichtungen, verwendet werden. Das stiftbasierte Rechensystem 201 interpretiert Gesten unter Verwendung des Tablettstifts 204, um Daten zu beeinflussen, Text einzugeben, Zeichnungen zu erzeugen und/oder herkömmliche Computeranwendungsaufgaben, wie Kalkulationstabellen, Textverarbeitungsprogramme und Ähnliches, auszuführen.
  • Der Tablettstift 204 kann mit einem oder mehreren Knöpfen oder anderen Merkmalen zum Steigern seiner Auswahlfähigkeiten ausgestattet sein. Bei einem Beispiel kann der Tablettstift 204 als ein „Bleistift" oder „Stift" implementiert sein, bei dem ein Ende ein Schreibelement bildet und das andere Ende ein „Löschende" bildet, das, wenn es über die Anzeige bewegt wird, zu löschende Abschnitte der Anzeige anzeigt. Außerdem können andere Typen von Eingabevorrichtungen, wie eine Maus, eine Rollkugel oder Ähnliches verwendet werden. Zusätzlich kann der eigene Finger eines Benutzers der Tablettstift 204 sein und zum Auswählen oder Anzeigen von Abschnitten des angezeigten Bildes auf einer berührungsempfindlichen oder näherungsempfindlichen Anzeige verwendet werden. Folglich soll der Begriff „Benutzereingabevorrichtung" so, wie er hierin ver wendet wird, eine breite Definition haben und umfasst viele Varianten zu wohlbekannten Eingabevorrichtungen, wie den Tablettstift 204. Der Bereich 205 zeigt einen Rückmeldungsbereich oder Kontaktbereich, der dem Benutzer gestattet, zu bestimmen, wo der Tablettstift 204 die Anzeigefläche 202 berührt hat.
  • Erfindungsgemäße Systeme und Verfahren können ein Gesamtverarbeitungssystem oder -verfahren für elektronische Tinte betreffen. Verschiedene Beispiele der Erfindung werden im Folgenden ausführlicher beschrieben.
  • III. BESCHREIBUNG VON BEISPIELEN FÜR ERFINDUNGSGEMÄSSE SYSTEME UND VERFAHREN
  • A. Allgemeines System
  • 3 ist ein Flussdiagramm, das ein Beispiel für ein Gesamtsystem und -verfahren darstellt, bei denen die inkrementalen Tintenanalysiersysteme und -verfahren nach einigen Beispielen dieser Erfindung verwendet werden können. In dem Beispiel von 3 werden eingehende oder eingegebene Striche 300 zuerst einem Layoutanalysiervorgang 302 unterzogen, der die einzelnen eingegebenen Striche 300 zu assoziierten Strichsätzen, wie Wörter, Zeilen, Blöcke und/oder andere Gruppierungen 304, kombiniert und parst. Im Allgemeinen ermittelt das Layoutanalysierverfahren oder die Layoutanalysiermaschine 302 bestimmte Informationen in Bezug auf das Layout von Tintenstrichen 300 auf einer Seite.
  • Nach der Layoutanalyse 302 können die Daten in eine Vielfalt zusätzlicher Tintenanalysiermaschinen eingeleitet werden. Bei dem in 3 dargestellten System werden die Daten nächstfolgend in eine) Klassiflkationsanalysiersystem oder -maschine 306 eingeleitet. Das/die Klassifikationsanalysiersystem oder -maschine 306 bestimmt den/die Typ(en) von Strichen, die in den spezifischen Eingabedaten enthalten sind (z.B. ob einzelne Striche oder Strichsätze Flussdiagramme, Freihand-Zeichnungen, Text, Musik, Mathematik, Diagramme, grafische Darstellungen usw. darstellen). Bei anderen Beispielen der Erfindung kann ein Benutzer das System über den Typ eingegebener Striche „informieren", z.B. durch Auswählen eines „Zeichenmodus", eines „Textmodus" oder Ähnliches.
  • Weiteres Verarbeiten der eingegebenen Tinte von dem Strichtyp abhängen, der von dem/der Klassifikationsanalysiersystem oder -maschine 306 erkannt wird (oder anderweitig bestimmt wird). Zum Beispiel können bei Strichen oder Strichsätzen, die als Textschreiben klassifiziert werden, die klassifizierten Strichsätze zu einem Handschrifterkennungssystem 310 oder einem anderen geeigneten Verarbeitungssystem gesendet werden. Soweit erforderlich oder gewünscht, können die eingegebenen Tintendaten vor Einleitung in das Handschrifterkennungssystem 310 oder ein anderes Verarbeitungssystem unter Verwendung eines Normalisierungsalgorithmus oder -systems 308 „normalisiert" werden, um die eingegebenen Tintendaten in eine optimale Ausrichtung für die Analyse durch das Handschrifterkennungssystem 310 oder ein anderes Verarbeitungssystem zu platzieren (z.B. Drehen des Textes zu einer horizontalen Basislinie, soweit erforderlich). Herkömmliche Normalisierungssysteme oder -verfahren 308 und/oder Handschrifterkennungssysteme oder -verfahren 310 können verwendet werden, ohne von der Erfindung abzuweichen. Die von dem Handschrifterkennungssystem oder -verfahren 310 ausgegebenen Daten können maschinenerzeugten Text (z.B. Zeilen, Wörter, Absätze usw.), der auf eine herkömmliche Weise verwendet werden kann, wie bei herkömmlichen Textverarbeitungssystemen (z.B. Microsoft WORD® oder Ähnliches), E-Mail-Bearbeitungssystemen usw., bilden oder mit diesem verknüpfen.
  • Als ein anderes Beispiel können, wenn die Klassifikationsanalysiermaschine 306 die eingegebenen Striche oder Strichsätze als beinhaltende Zeichnungsstriche erkennt, die Daten dann zu einem Annotationserkennungssystem oder -verfahren 314 übertragen werden, das zum Erkennen von Textinformationen in der Zeichnung verwendet werden kann. Weiteres Verarbeiten kann auf eine herkömmliche Weise fortgeführt werden. Zum Beispiel können, soweit gewünscht, die Zeichnungen „bereinigt" werden, wobei die handgeschriebenen Annotationen durch maschinenerzeugten Text ersetzt werden können, handgeschriebene Zeichnungslinien oder -formen (z.B. Kreise, Dreiecke, Rechtecke usw.) können durch maschinenerzeugte Elemente und Ähnliches ersetzt werden. Außerdem können die Zeichnungen (entweder die handgeschriebenen Versionen oder später maschinenerzeugten Versionen) in geeignete Programme oder Systeme eingeleitet werden, ohne von dieser Erfindung abzuweichen.
  • Die Klassifikationsanalysiersysteme und -verfahren 306, die bei einigen Beispielen der Erfindung verwendet werden, können außerdem andere spezifische Schrift- oder Zeich nungstypen erkennen, ohne von der Erfindung abzuweichen. Zum Beispiel kann ein Klassifikationsanalysiersystem eingegebene Strichsätze als Musik, mathematische Informationen, Tabellen, Diagramme, grafische Darstellungen, Flussdiagramme usw. enthaltend erkennen, ohne von der Erfindung abzuweichen. Solche Strichsätze können, soweit vorhanden, an spezialisiertere Erkennungssysteme und/oder an andere geeignete Verarbeitungsanwendungen gesendet werden, ohne von der Erfindung abzuweichen.
  • Manche oder alle der in Verbindung mit 3 beschriebenen Funktionen könnten an eingegebenen Tintendaten durchgeführt werden, nachdem ein Benutzer sämtliche Tinte vollständig auf die Seite eingegeben hat (z.B. auf den Befehl eines Benutzers, wie ein Befehl „Sichern", Parsen", „Schließen" oder „Erkennen"). Auf Grund der ausgedehnten Computerverarbeitungszeit, die zum Durchführen typischer Layoutanalysen und Handschrifterkennungsanalysen erforderlich ist, kann jedoch ein Benutzer signifikante Verzögerungen erfahren, wenn die Verarbeitung auf dieser seltenen Ad-hoc-Basis durchgeführt wird. Diese Verzögerungen können lange genug dauern, dass der Benutzer frustriert sein könnte, wenn er darauf wartet, dass das Computersystem seine Analysen abschließt, bevor er zu den nächsten gewünschten Betätigungen übergeht (z.B. Eingeben weiterer Tinte, Bewegen zu einer neuen Seite, Drucken usw.).
  • Systeme und Verfahren nach Beispielen der vorliegenden Erfindung ermöglichen einem stiftbasierten Rechensystem inkrementales Durchführen verschiedener Analysen, wie die Layoutanalyse 302, Klassifikationsanalyse 306, Handschrifterkennungsanalyse 310 usw., in Echtzeit, während der Benutzer die Verwendung des stiftbasierten Rechensystemsfortsetzt (z.B. zum Eingeben und/oder Modifizieren der Tintenstriche auf der Seite). Darüber hinaus arbeiten bei manchen Beispielen für die erfindungsgemäßen Systeme und Verfahren die verschiedenen Parsermaschinen in einem Hintergrundablauf an einem „Schnappschuss" der Anwendungsdatenstruktur, um die Zeit, für die die Anwendungsdatenstruktur für den Benutzer zur Eingabe von Tinte nicht verfügbar ist, zu minimieren (der Begriff „Anwendungsdatenstruktur" bedeutet so, wie er hierin verwendet wird, eine Datenstruktur, die in Verbindung mit einem Anwendungsprogramm verwendet wird).
  • B. Allgemeine Beschreibung der Erfindung
  • Diese Erfindung betrifft im Allgemeinen Systeme und Verfahren zum Verarbeiten digitaler Tinte. Bei einem Beispiel enthält ein erfindungsgemäßes Verfahren das Erhalten von Daten, die einen oder mehrere Tintenstriche darstellen, wobei die Daten als eine Anwendungsdatenstruktur gespeichert werden und wobei ein Benutzer die Anwendungsdatenstruktur durch Hinzufügen eines oder mehrerer Tintenstriche, durch Löschen eines oder mehrerer Tintenstriche oder durch Modifizieren eines oder mehrerer Tintenstriche ändern kann. Ein erster Analysiervorgang (wie ein Tintenlayoutanalysiervorgang 302) kann an einem ersten Schnappschuss der Anwendungsdatenstruktur durchgeführt werden, um eine erste Datenstruktur zu erzeugen, wobei der erste Schnappschuss die Anwendungsdatenstruktur zu einem ersten Zeitpunkt darstellt. Auf eine ähnliche Weise kann ein zweiter Analysiervorgang, der sich von dem ersten Analysiervorgang unterscheidet (wie ein Handschrifterkennungsanalysiervorgang 310), an einem zweiten Schnappschuss der Anwendungsdatenstruktur durchgeführt werden, um eine zweite Datenstruktur zu erzeugen, wobei der zweite Schnappschuss die Anwendungsdatenstruktur zu einem zweiten Zeitpunkt darstellt. Dieser zweite Zeitpunkt kann derselbe wie der erste Zeitpunkt sein oder sich von diesem unterscheiden. Die Anwendungsdatenstruktur wird auf Basis dieses ersten und zweiten Analysiervorgangs modifiziert. Fachleute werden erkennen, dass eine Anzahl gewünschter Analysiervorgänge durchgeführt werden kann, ohne von dieser Erfindung abzuweichen.
  • Durch Analysieren eines „Schnappschusses" der Anwendungsdatenstruktur an Stelle von direktem Analysieren und Verarbeiten der Anwendungsdatenstruktur selbst kann ein Benutzer das Hinzufügen von Daten, die Tintenstriche darstellen, oder das Modifizieren oder Löschen bestehender Tintenstriche in der Anwendungsdatenstruktur fortsetzen, während die verschiedenen Analysen durchgeführt werden. Zum Beispiel können bei manchen Beispielen für erfindungsgemäße Systeme und Verfahren eingegebene Tintendaten, die die Anwendungsdatenstruktur ändern, nach dem ersten Zeitpunkt und/oder nach dem zweiten Zeitpunkt (wenn der Schnappschuss/die Schnappschüsse aufgenommen wird/werden), jedoch vor dem Ausführen des Schrittes des Modifizierens empfangen werden. In diesen Fällen wird während des Schrittes des „Modifizierens" die Anwendungsdatenstruktur nicht modifiziert, um Änderungen zu überschreiben, die von dem Benutzer nach dem ersten (oder zweiten) Zeitpunkt vorgenommen wurden (d. h. die von dem Benutzer an der Anwendungsdatenstruktur vorgenommenen Änderungen haben Vorrang vor Änderungen an der Anwendungsdatenstruktur, die auf Basis der Analysiervorgänge vorgenommen wurden).
  • Die verschiedenen „Schnappschüsse", die bei den oben beschriebenen Analysen verwendet werden, können dieselben oder unterschiedliche sein, ohne von der Erfindung abzuweichen. Ein „Schnappschuss", der in dieser Spezifikation verwendet wird, bezieht sich auf eine Kopie der Datenstruktur der eingegebenen Tintendaten zu einem spezifischen Zeitpunkt. Durch Arbeiten an „Schnappschüssen" der Datenstruktur können Analysen durch getrennte Analysiermaschinen gleichzeitig, teilweise gleichzeitig, nacheinander oder in einer gewünschten Reihenfolge fortschreiten, ohne von der Erfindung abzuweichen. Darüber hinaus können die Analysiermaschinen an den Schnappschüssen arbeiten, während die Anwendungsdatenstruktur für den Benutzer zur Tinteneingabe und/oder zum Editieren und/oder für andere geeignete Vorgänge verfügbar bleibt.
  • Ein anderes Beispiel der Erfindung betrifft ein unterschiedliches Verfahren zum Verarbeiten digitaler Tinte. Bei diesem beispielhaften Vorgang werden Daten, die einen oder mehrere Striche digitaler Tinte darstellen, empfangen und als eine Anwendungsdatenstruktur gespeichert. Ein erster Schnappschuss der Anwendungsdatenstruktur wird analysiert, um eine erste Datenstruktur zu erzeugen (die eine überarbeitete Version der Anwendungsdatenstruktur ist). Während des Schrittes des Analysierens wird jedoch die Anwendungsdatenstruktur modifiziert (z.B. durch Benutzereingabe, bei der ein Benutzer einen oder mehrere Tintenstriche hinzufügt, einen oder mehrere Tintenstriche löscht oder anderweitig einen oder mehrere Tintenstriche modifiziert). Eine überarbeitete Anwendungsdatenstruktur auf Basis der ersten Datenstruktur und von Modifikationen an der Anwendungsdatenstruktur, die während des Schrittes des Modifizierens vorgenommen wurden, wird erzeugt und ersetzt die ursprüngliche Anwendungsdatenstruktur. Diese Schritte können wiederholt werden, während der Benutzer fortfährt, Tinte für die Anwendungsdatenstruktur einzugeben und/oder zu modifizieren. Zusätzlich kann, wie oben beschrieben, der Schritt des Analysierens zwei oder mehr Analysiervorgänge enthalten, ohne von der Erfindung abzuweichen, und diese Analysiervorgänge können gleichzeitig, teilweise gleichzeitig, nacheinander oder auf eine andere geeignete Weise, die auf dem Gebiet bekannt ist, stattfinden.
  • Ein anderes Beispiel für ein erfindungsgemäßes Verfahren zum Verarbeiten digitaler Tinte enthält das Empfangen von Daten, die einen oder mehrere Striche digitaler Tinte darstellen, über einen ersten Zeitraum, wobei die Daten als eine Anwendungsdatenstruktur gespeichert werden. Diese Anwendungsdatenstruktur wird mehreren Analysen über den ersten Zeitraum unterzogen, wobei ein Benutzer während wenigstens einem der Schritte des Analysierens Änderungen an der Anwendungsdatenstruktur vornimmt (z.B. durch Hinzufügen eines oder mehrerer Tintenstriche, Löschen eines oder mehrerer Tintenstriche oder Modifizieren eines oder mehrerer Tintenstriche). Die Änderungen des Benutzers an der Anwendungsdatenstruktur beeinflussen jedoch nicht die Datenstruktur, die in dem Schritt des Analysierens analysiert wird. Sobald die Analyse abgeschlossen ist, wird die Anwendungsdatenstruktur modifiziert, um eine überarbeitete Anwendungsdatenstruktur zu bilden, wobei die überarbeitete Anwendungsdatenstruktur erzeugt wird unter Berücksichtigung der Modifikationen, die während des Schrittes/der Schritte des Analysierens an der Datenstruktur vorgenommen wurden, und Änderungen, die während des Schrittes/der Schritte des Analysierens von dem Benutzer vorgenommen wurden. Wie oben beschrieben, können der Schritt/die Schritte des Analysierens in diesem Beispiel zwei oder mehr unterschiedliche Analysiervorgänge (wie ein Layoutanalysiervorgang und ein Handschrifterkennungsanalysiervorgang) enthalten, und die Analysiervorgänge können gleichzeitig, teilweise gleichzeitig, nacheinander oder auf eine andere geeignete Weise stattfinden, ohne von der Erfindung abzuweichen.
  • Die überarbeitete oder modifizierte Anwendungsdatenstruktur in diesen Beispielen kann Änderungen enthalten, die von dem Benutzer und/oder dem System während des Schrittes/der Schritte des Analysierens vorgenommen wurden. Bei Überlappung oder Konflikt haben im Allgemeinen von dem Benutzer vorgenommene Änderungen Vorrang vor Änderungen, die von dem System vorgenommen wurden. Zusätzlich können zum Einsparen von Verarbeitungszeit die Schritte des Analysierens und des Modifizierens auf Abschnitte der Anwendungsdatenstruktur, die seit den vorhergehenden Verarbeitungsschritten geändert wurden, und auf den Bereich in der Datenstruktur, der unmittelbar an die seit den vorhergehenden Verarbeitungsschritten geänderten Abschnitte der Datenstruktur angrenzt, beschränkt werden.
  • Andere Beispiele dieser Erfindung betreffen Systeme zum Durchführen der oben beschriebenen Verfahren sowie computerlesbare Medien, die durch Computer ausführbare Befehle zum Durchführen der oben beschriebenen Verfahren und/oder Betreiben der oben beschriebenen Systeme enthalten. Die erfindungsgemäßen Systeme können verschiedene Bauteile, wie eine Eingabevorrichtung zum Empfangen eingegebener Tintendaten und ein Prozessorsystem zum Verarbeiten der Daten, enthalten, wie die Systeme, die oben in Verbindung mit den 1 und 2 beschrieben wurden.
  • C. Ausführliche Beschreibung beispielhafter Systeme und Verfahren zum Praktizieren der Erfindung
  • 4 stellt ein schematisches Diagramm eines Beispiels für ein System dar, das zum Praktizieren der vorliegenden Erfindung nützlich ist. Wie dargestellt, enthält das Gesamtsystem 1310 ein Anwendungssystem oder -programm 1320, das einen Parser 1322 enthält. Das Gesamtsystem 1310 kann in ein stiftbasiertes Rechensystem, wie das in 2 dargestellte, integriert werden. Der Benutzer 1300 gibt Tintenstriche in das System 1310 ein (oder die Tintenstriche werden heruntergeladen, z.B. aus einem Speicher oder einer externen Quelle) und die Tintenstriche werden durch das Anwendungsprogramm 1320 zum Beispiel in einer Anwendungsdatenstruktur 1302 (die in der Form einer Dokumentenbaumdatenstruktur 1302, wie die in den 6A und 6B dargestellten, sein kann) gespeichert. So dass der Benutzer 1300 fortfahren kann, Modifikationen an der Dokumentenbaumdatenstruktur 1302 vorzunehmen, während der Parser 1322 arbeitet, wobei der Parser 1322 eine Spiegelbaumdatenstruktur 1304 enthält. Änderungen, die an der Dokumentenbaumdatenstruktur 1302 vorgenommen werden (z.B. durch den Benutzer 1300, den Parser 1322, aus einer anderen Quelle usw.), werden sofort zu der Spiegelbaumdatenstruktur 1304 weitergeleitet, so dass die Spiegelbaumdatenstruktur 1304 im Allgemeinen den Inhalt der Dokumentenbaumdatenstruktur 1302 „spiegelt".
  • Die Spiegelbaumdatenstruktur 1304 wird verwendet, um Eingabedaten zu den zwei Analysiermaschinen 1306 und 1308 in dem Parser 1322 zuzuführen. Bei dem in 4 dargestellten Beispiel ist eine Analysiermaschine eine Layoutanalysiermaschine 1306 (die zum Beispiel eine Layoutanalyse 302 durchführen kann, wie oben in Verbindung mit 3 besprochen) und die andere ist eine Erkennungsmaschine 1308 (die zum Beispiel Handschrifterkennungsanalyse 310 und/oder Annotationserkennungsanalyse 314 durchführen kann, wie oben in Verbindung mit 3 besprochen). Die Maschinen 1306 und 1308 empfangen „Schnappschüsse" 1324 bzw. 1326 der Spiegelbaumdatenstruktur 1304 als Eingabedaten und sie arbeiten an diesen „Schnappschüssen" 1324 und 1326, statt direkt an der Dokumentenbaumdatenstruktur 1302 oder der Spiegelbaumdatenstruktur 1304 zu arbeiten. Auf diese Weise kann der Benutzer 1300 fortfahren, Operationen an der Dokumentenbaumdatenstruktur 1302 in dem Anwendungsprogramm 1320 durchzuführen, während die verschiedenen Parseranalysiermaschinen 1306 und 1308 ebenfalls arbeiten, und der Benutzer 1300 erfährt keine Arbeitsunterbrechung (z.B. Verarbeitungsverzögerungen), während die Maschinen 1306 und 1308 an den Daten arbeiten.
  • Zum Erzeugen eines „Schnappschusses" wird bei manchen Beispielen der Erfindung eine bestehende Schnappschussdatenstruktur mit der Spiegelbaumdatenstruktur 1304 verglichen. Die Unterschiede zwischen den beiden werden festgestellt und eine minimale Anzahl von Operationen wird durchgeführt, um den Schnappschuss mit der Spiegelbaumdatenstruktur 1304 zu synchronisieren. Auf diese Weise tritt minimales Datenneuschreiben beim Herstellen des Schnappschusses ein (z.B. werden unveränderte Daten aus einem vorhergehenden Schnappschuss nicht neu geschrieben).
  • Der Ausgang der Parsermaschinen 1306 und 1308 kann eine modifizierte oder überarbeitete Datenstruktur sein. Wenn zum Beispiel die Layoutanalysiermaschine 1306 wie die in 5 dargestellte ist, kann der Ausgang der Layoutanalysiermaschine 1306 eine Datenstruktur sein, die einzelne Tintenstriche enthält, die zu assoziierten Wörtern, Zeilen, Blöcken und Ähnlichem gruppiert sind. Der Betrieb einer Layoutanalysiermaschine dieses Typs wird im Folgenden ausführlicher beschrieben. Gleichermaßen kann, wenn die Parsermaschine 1308 ein Handschrifterkennungssystem 310 ist, der Ausgang Informationen oder eine Datenstruktur enthalten, die die Tintenstriche mit maschinenerzeugtem Text verbindet.
  • Wenn die Parsermaschinen 1306 und 1308 ihre Operationen an den Schnappschusseingabedaten 1324 bzw. 1326 abgeschlossen haben, werden die resultierenden Informationen zu dem Anwendungsprogramm 1320 zurückgesendet, wie durch die Pfeile 1328 bzw. 1330 angezeigt. Wie oben festgestellt wurde, kann jedoch der Benutzer 1300 die Dokumentenbaumdatenstruktur 1302 während des Zeitraums ändern, in dem die Parsermaschinen 1306 und 1308 an den Schnappschüssen 1324 und 1326 arbeiten.
  • Daher vergleicht der Parser 1322 vor dem Schreiben der Parseranalysiermaschinenergebnisse zurück in die Dokumentenbaumdatenstruktur 1302 die Dokumentenbaumdatenstruktur 1302, die sich aktuell in dem Anwendungsprogramm 1320 befindet (und die Änderungen des Benutzers enthält), mit der/den überarbeiteten Dokumentenbaumdatenstruktur(en), die von den Parsermaschinen 1306 und 1308 gesendet wurde(n), wobei wahlweise die Spiegelbaumdatenstruktur 1304 verwendet wird. Wenn der Benutzer 1300 an der Dokumentenbaumdatenstruktur 1302 Änderungen vorgenommen hat, die nicht in der/den überarbeiteten Baumdatenstruktur(en) von den Parsermaschinen 1306 und 1308 enthalten sind, oder wenn von dem Benutzer an der Dokumentenbaumdatenstruktur vorgenommene Änderungen einen Streitpunkt oder Konflikt mit Änderungen an der/den Datenstruktur(en), die von den Parsermaschinen 1306 und 1308 vorgenommen wurden (z.B. durch Hinzufügen, Löschen oder Modifizieren von Strichen), verursachen, dann wird die Anwendungsdokumentenbaumdatenstruktur 1302 überarbeitet, um nur die von den Parseranalysiermaschinen vorgenommenen Änderungen zu enthalten, die nicht mit den von dem Benutzer vorgenommenen Änderungen in Konflikt stehen (von dem Benutzer vorgenommene Änderungen setzen Änderungen, die von dem Parser vorgenommen wurden, außer Kraft). Außerdem werden lediglich Abschnitte der Dokumentenbaumdatenstruktur 1302, die von der bestehenden Version modifiziert sind, geändert oder neu geschrieben, um die Datenschreibzeit (und die damit verbundene Unterbrechung, die der Benutzer 1300 erfahren hat) zu verringern. Auf diese Weise enthält die abschließend überarbeitete Dokumentenbaumdatenstruktur, die in dem Anwendungsprogramm 1320 vorhanden ist, alle von dem Benutzer 1300 vorgenommenen Änderungen und die Ergebnisse der vorhergehenden Parsermaschinenanalysen, soweit die von der Parsermaschine vorgenommenen Änderungen mit Änderungen, die von dem Benutzer vorgenommen wurden, im Einklang stehen oder nicht von diesen übertrumpft werden.
  • Da die Dokumentenbaumdatenstruktur 1302 gemeinsam genutzte Daten enthält, die letztlich sowohl von dem Benutzer 1300 als auch von den Parsermaschinen 1306 und 1308 modifiziert werden können, kann der Benutzer 1300 keine neuen Daten in die Dokumentenbaumdatenstruktur 1302 eingeben, während sie neu geschrieben wird, um die von dem Parser vorgenommen Änderungen zu enthalten. Wenn ein Benutzer 1300 dies zu tun versucht, können erfindungsgemäße Systeme und Verfahren diese Anstrengungen auf eine geeignete Weise handhaben. Zum Beispiel können die neuen Striche oder Änderungen ignoriert werden oder sie können in einem Zwischenpufferspeicher gespeichert werden, bis die überarbeitete Anwendungsdokumentenbaumdatenstruktur für Dateneingabe verfügbar ist. Da jedoch die Dokumentenbaumdatenstruktur 1302 in dem Anwendungsprogramm 1320 nach diesem Beispiel der Erfindung im Allgemeinen nur in der Zeit, in der das System die geänderten Abschnitte der Datenstruktur neu schreibt, nicht verfügbar ist, ist der Zeitraum der Nichtverfügbarkeit typischerweise ziemlich kurz und wird oft von dem Benutzer nicht bemerkt.
  • Sobald die Dokumentenbaumdatenstruktur 1302 neu geschrieben oder modifiziert ist (und die von dem Benutzer und/oder der Parsermaschine vorgenommenen Änderungen enthält), wird die Spiegelbaumdatenstruktur 1304 so aktualisiert, dass sie die neu geschriebene oder modifizierte Dokumentenbaumdatenstruktur 1302 spiegelt, und die Parsermaschinen 1306 und 1308 können ihre Analysen wiederholen (soweit erforderlich). Vorteilhafterweise arbeiten die Parsermaschinen 1306 und 1308 lediglich an den Abschnitten der Dokumentenbaumdatenstruktur, die jüngst modifiziert wurden, (und Abschnitten, die von den jüngsten Modifikationen beeinflusst wurden), um die Verarbeitungszeit zu verringern. Durch inkrementales Aktualisieren der Parsermaschinenoperationen zu der gleichen Zeit, zu der der Benutzer Daten eingibt, kann der Parser 1322 im Allgemeinen mit der Dateneingabe des Benutzers mithalten, wodurch Verarbeitungsverzögerungen, die von dem Benutzer festgestellt werden, minimiert werden.
  • Wie oben erwähnt, kann bei manchen Beispielen der Erfindung die Verarbeitungszeit verringert werden, indem die Verarbeitung auf Abschnitte der Datenstruktur, in denen Änderungen aufgetreten sind, (und alle Bereiche, die durch diese Änderungen beeinflusst werden) beschränkt wird. Wenn die Benutzereingabe oder vorhergehende Parsermaschinenoperationen manche Abschnitte einer Datenstruktur nicht beeinflusst haben, könnte für die Parsermaschine(n) keine Notwendigkeit für erneutes Analysieren dieser selben Abschnitte bestehen. Als Beispiele können Systeme und Verfahren nach einigen Beispielen einen Abschnitt der Datenstruktur, der sich in einem vorgegebenen Abstand zu einer Änderung befindet, neu analysieren. Zum Beispiel kann die Neuanalyse die Zeile einer Änderung und eine oder zwei Zeilen, die die Änderung umgeben, Striche, die sich in einem Kreis eines vorgewählten Radius, der die Änderung umgibt, befinden, einen Textblock (wie im Folgenden ausführlicher beschrieben), der eine Ände rung enthält, oder Ähnliches enthalten. Das Folgende erklärt Beispiele der Erfindung, die diese Merkmale nutzen, ausführlicher.
  • D. Ein Beispiel für Verarbeitung, die bei der inkrementalen Analyse stattfindet Die Daten, die in Systemen und Verfahren nach Beispielen der vorliegenden Erfindung analysiert oder verarbeitet werden, können eine geeignete Form oder Struktur annehmen. Zum Beispiel werden bei einem beispielhaften Vorgang, wie in 3 dargestellt, einzelne Striche 300 eingegebener Tintendaten zu einer Datenstruktur miteinander kombiniert als Ergebnis einer Abfolge von Entscheidungen, die von einer Layoutanalysiermaschine 302 getroffen wurden, die bestimmte einzelne Striche auf Basis eines gesamten Tintenlayouts und von Statistiken, die aus der eingegeben Tinte ermittelt wurden, gruppiert oder assoziiert. Die Layoutanalysiermaschine 302 kann eine hierarchische Bündelung von Tintenstrichen auf einer Seite bereitstellen, die globale statistische Berechnungen zu dem/den Bündel(n) ermöglichen. Die ersten Strichgruppierungsentscheidungen sind konservativ und basieren auf lokalen Layoutbeziehungen, wenn die Tintenstrichbündel klein sind (z.B. Bündel, die einzelne Striche oder relativ kurze Kombinationen von Strichen darstellen). Spätere Strichgruppierungsentscheidungen können auf Grund der globaleren Statistiken, die von größeren Bündeln gesammelt wurden (z.B. Strichgrößen über eine längere Linie, relative Strichbeabstandung, Linienwinkel usw.), offensiver sein. Es können mehrere Durchgänge durch die eingegebenen Tintendaten durchgeführt werden, um bei dem Bestimmen, ob Striche zum Bilden von Strichsätzen, wie Wörter, Zeilen und/oder Blöcke 304 aus eingegebenen Tintenstrichen, zu verschmelzen sind, ein zunehmend offensiveres Treffen von Entscheidungen zu ermöglichen.
  • 5 stellt im Allgemeinen Schritte oder Parsingmaschinen dar, die an einem Beispiel für eine Layoutanalysierparsermaschine, ein System oder ein Verfahren 1306, die bei dem Erzeugen und/oder Modifizieren von Datenstrukturen, die bei manchen Beispielen dieser Erfindung verwendet werden, beteiligt sind. Auf Grund der Freiheit, die einem Benutzer bei dem Eingeben digitaler Tinte in die Systeme und Verfahren nach einigen Beispielen der Erfindung bereitgestellt wird (z.B. kann ein Benutzer irgendwo auf einer Seite, in einer Ausrichtung, jederzeit unter Verwendung einer gewünschten Strichgröße schreiben), könnte es bei Beginn des Layoutanalysiervorgangs 302 von 5 keine Vorinformationen geben, aus denen das korrekte Layout, die korrekte Ausrichtung oder der korrekte Typ eingegebener Daten bestimmt werden kann (z.B. ob die eingehenden Eingabedaten 400 Text, Zeichnung, Mathematik, Musik, Flussdiagramme, Diagramme, grafische Darstellungen usw. sind). Das Element 402 in 5 stellt eine allgemeine grafische Darstellung einer Eingabedatenstruktur 400 bereit. Die grafische Darstellung 402 wird in der Ableitungsbaumdatenstruktur von 6A ausführlicher dargestellt. Im Allgemeinen behandelt, wenn der Layoutanalysiervorgang 302 beginnt (z.B. selbst dann, wenn der Benutzer mit dem Eingeben von Tintenstrichen in das stiftbasierte Rechensystem fortfahren kann), das System jeden Strich S 500 auf einer vorgegebenen Seite P 508 als ein getrenntes Wort W 502, wobei jedes Wort W 502 als eine getrennte Zeile L 504 behandelt wird und jede Zeile L 504 als ein getrennter Block B 506 behandelt wird. Die Layoutanalysiermaschine 302 führt die Aufgabe des Assoziierens oder Verschmelzens von Strichen miteinander durch, um Strichsätze zu bilden, die korrekte Wörter, Zeilen und Blöcke assoziierter Tintendaten enthalten. Zwar kann eine geeignete Layoutanalysiermaschine in Verbindung mit dieser Erfindung verwendet werden, aber im Folgenden wird ein Beispiel ausführlicher beschrieben.
  • Zwar verwendet diese Beschreibung der beispielhaften Layoutanalysiermaschine 302 Begriffe wie „Wort", „Zeile" und „Block", aber diese Begriffe werden in dieser Spezifikation als passend verwendet, um auf einen oder mehrere assoziierte Striche oder Strichsätze Bezug zu nehmen. Zu der Zeit, da die Layoutanalyse 302 erstmals in diesem Beispiel der Erfindung auftritt, ist keine abschließende Bestimmung erfolgt, ob einzelne Striche oder Strichsätze Schrift, Zeichnungen usw. bilden.
  • Die Layoutanalysiermaschine 302 nach diesem Beispiel der Erfindung arbeitet gierig, so dass bei jedem Durchgang (oder Operation jeder Parsingmaschine) Strich- oder Zeilenverschmelzungsoperationen auftreten, aber Teilungen nicht. Darüber hinaus kann die Maschine 302 mit Prüfungen und Toleranzen betrieben werden, so dass es nicht erforderlich sein sollte, zurückzugehen und eine ungewünschte Verschmelzungsoperation zu korrigieren.
  • Als eine Folge des Betriebs der Layoutanalysiermaschine 302 können die einzelnen Striche 500 zu assoziierten Wörtern W, Zeilen L und Blöcken B kombiniert werden, soweit dies angemessen ist. 6B stellt eine grafische Darstellung 406 einer möglichen Datenstruktur für die Datenausgabe 404 von der Layoutanalysiermaschine 302 dar. Wie aus einem Vergleich der 6A und 6B offensichtlich ist, enthält die Seite 508 insgesamt dieselben Strichinformationen, aber bestimmte Striche S 500 wurden miteinander kombiniert oder assoziiert, um Wörter W 510 zu bilden, und bestimmte Wörter W 510 wurden miteinander verbunden, um eine Zeile L 512 in der Datenstruktur von 6B zu bilden. Selbstverständlich kann ein Wort W 510 eine Anzahl von Strichen S 500 enthalten und gleichermaßen kann eine Zeile L 512 eine Anzahl von Wörtern W 510 enthalten. Außerdem können, auch wenn dies nicht in dem bestimmten Ableitungsbaumbeispiel von 6B dargestellt wird, zwei oder mehr Zeilen L 512 miteinander verbunden werden, um einen Block B 514 zu bilden.
  • Zusätzlich zur Unterstützung des Definierens der Struktur eines Dokuments können die verschiedenen Knoten in dem Ableitungsbaum (z.B. 6B) zum Speichern räumlicher Informationen in Bezug auf verschiedene Ebenen in dem Baum verwendet werden. Zum Beispiel kann jeder Zeilenebenenknoten eine Regressions-/Passzeile aller Punkte, die die Striche der Zeile bilden, den konvexen Körper jedes Striches in der Zeile und/oder andere gewünschte Informationen speichern. Außerdem können die Ableitungsbaumdatenstrukturen modifiziert werden, indem verschiedene elementare Operationen auf die darin enthaltenen Striche, Wörter, Zeilen und Blöcke angewendet werden. Zu geeigneten Operationen können gehören: Hinzufügen, Entfernen, Verschmelzen, Teilen und Verändern des Elternverzeichnisses. Komplexere Operationen können unter Verwendung dieser elementaren Operationen gebildet werden. Da diese Operationen an dem Datenstrukturbaum durchgeführt werden, können die an den unterschiedlichen Knotenebenen geführten Statistiken automatisch aktualisiert werden, um der neuen Struktur zu entsprechen.
  • 5 stellt eine schematische Übersicht über ein Beispiel einer geeigneten Layoutanalysiermaschine 1306 bereit, die bei manchen Beispielen dieser vorliegenden Erfindung nützlich sein kann. Bei diesem Beispiel ist ein erster Schritt in dem Layoutanalysiervorgang 302 ein Schritt des temporalen Zeilengruppierens 408, der im Allgemeinen Merkmale temporal benachbarter Striche vergleicht und sie als Zeilen kombiniert, soweit angebracht. Verschiedene Faktoren, wie Strichgröße, Abstand zwischen Strichen, Strichwinkel usw., können bei dem Bestimmen, ob eine temporale Zeilengruppierung aus zwei oder mehr Strichen hergestellt werden sollte, berücksichtigt werden. Sobald dieser Schritt des temporalen Zeilengruppierens 408 abgeschlossen ist, vergleicht der nächste Schritt in der Analyse 302, ein Schritt des räumlichen Blockgruppierens 410, die temporalen Zeilengruppierungen und kombiniert Zeilen, die eng aneinander angeordnet sind, als räumliche Blöcke. Verschiedene Faktoren, wie Strichgröße, Abstand zwischen Strichen, Zeilenwinkel usw., können bei dem Bestimmen, ob eine räumliche Blockgruppierung hergestellt werden sollte, berücksichtigt werden.
  • Die temporal gruppierten Zeilen (von Schritt 408) können in einem Schritt des räumlichen Zeilengruppierens 412 weiter gruppiert werden, wobei wahlweise ihre räumliche Blockbeziehung oder -ausrichtung berücksichtigt wird. Dieser Schritt des räumlichen Zeilengruppierens 412 muss nicht die Zeit eines Strichs im Vergleich zu einem anderen Strich berücksichtigen, auch wenn Faktoren zusätzlich zu der räumlichen Beziehung der Zeilen, wie Zeilenwinkel, Strichgröße usw. berücksichtigt werden können. Außerdem kann das Ergebnis des oben beschriebenen Vorgangs des räumlichen Blockgruppierens 410 als ein Faktor bei dem Bestimmen, ob eine räumliche Zeilengruppierung zwischen zwei bestehenden temporalen Zeilengruppierungen hergestellt werden sollte, verwendet werden.
  • Sobald die räumlichen Zeilengruppierungen abgeschlossen sind, kann dann der Layoutanalysiervorgang 302 nach diesem Beispiel die einzelnen Striche in den Zeilengruppierungen zu einer oder mehreren räumlichen Wortgruppierungen 416 kombinieren, wobei dies zum Beispiel von Faktoren wie Abstand zwischen Strichen, Zeilenausrichtung, Strichgröße usw. abhängt.
  • 5 stellt außerdem eine(n) optionale(n) Parsingmaschine oder -schritt in gestrichelten Linien dar, die als Teil einer Layoutanalyse 302 durchgeführt werden können. Dieser optionale Schritt wird „Listenerfassung" 414 genannt. Wenn Personen eine Liste schreiben, neigen sie oft dazu, eine Spalte aus Zahlen oder Buchstaben zu schreiben und dann die Listenelemente einzusetzen. Zu anderen Zeiten schreiben Personen den Inhalt der Liste und fügen dann später eine Spalte aus Zahlen, Buchstaben oder Aufzählungen hinzu. Diese Listenerfassungsmaschine 414 kann diese speziellen Umstände erfassen und kombiniert die Zahlen-, Buchstaben- oder Aufzählungsstriche mit dem entsprechenden Listenelementtext.
  • Die verschiedenen Schritte in dieser beispielhaften Tintenanalysiermaschine 302 (5) können in der Reihenfolge geändert oder weggelassen werden, ohne von der Erfindung abzuweichen. Zum Beispiel kann, wenn gewünscht, der Schritt des räumlichen Zeilengruppierens 412 vor dem Schritt des räumlichen Blockgruppierens 410 stattfinden.
  • Die Ausgabedaten 404 von der Layoutanalysiermaschine 302 kann auf eine geeignete Weise, wie in einer Klassifikationsmaschine 306, verwendet werden, wie in 3 dargestellt, und von dort können die Daten zu anderen geeigneten Verarbeitungsmaschinen weitergehen (z.B. Annotationserkennung 314, Handschrifterkennung 310 usw.). Die Layoutanalysiermaschine 302 oder eine Kombination aus der Layoutanalysiermaschine 302 und der Klassifikationsmaschine 306 können eine Parsermaschine 1306 bilden, wie in Verbindung mit 4 dargestellt.
  • Selbstverständlich ist diese Erfindung nicht auf den Betrieb mit einer Layoutanalysiermaschine oder einem spezifischen Typ von Analysiermaschine beschränkt. Andere geeignete Maschinen oder Vorgänge zum Gruppieren oder Assoziieren einzelner Striche zu geeigneten Datenstrukturen oder eine andere gewünschte Analyse können durchgeführt werden, ohne von dieser Erfindung abzuweichen. Außerdem könnte, soweit gewünscht, der Benutzer vor dem Verarbeiten dem System anzeigen, dass bestimmte Striche immer zusammengruppiert werden sollten (z.B. durch Zeichnen einer Linie rundherum, Markieren oder anderweitiges Auswählen eingegebener Datenstriche, die miteinander zu assoziieren sind).
  • E. Die inkrementale Analyse
  • Wie oben angemerkt, können die erfindungsgemäßen inkrementalen Analysiersysteme und -verfahren geeignete Datenverarbeitungsanalysen wie diejenigen, die in Verbindung mit der 3 dargestellt werden, enthalten. Die beschriebenen Beispiele der Erfindung enthalten eine Layoutanalyse 302, die außerdem eine Klassifikationsanalyse 306 und eine Handschrifterkennungsanalyse 310 enthalten kann.
  • Der Layoutanalysierprozess (z.B. wie der in 3 dargestellte) oder andere gewünschte Analysiervorgänge können anfänglich zu einer Zeit, nachdem der Benutzer mit dem Hinzufügen von Strichen zu einer Seite und/oder Editieren von Strichen auf ei ner Seite und/oder anderweitigen Modifizieren von Strichen auf einer Seite beginnt, beginnen. Während der Benutzer das Modifizieren der Seite fortsetzt, kann der Layoutanalysierprozess 302 (und/oder andere gewünschte Vorgänge) an der überarbeiteten Seitendatenstruktur wiederholt werden, wobei er sich wahlweise auf Abschnitte der Datenstruktur, die seit einer vorhergehenden Iteration der Layoutanalysiermaschine 302 modifiziert wurden, (und umgebende oder durch die geänderten Abschnitte beeinflusste Abschnitte) konzentriert. Die 7A, 7B, 8A, 8B, 9A und 9B stellen Flussdiagramme verschiedener Vorgänge zum inkrementalen Analysieren von Eingabedaten dar.
  • Die 7A und 7B stellen einen beispielhaften inkrementalen Tintenanalysiervorgang dar, bei dem zwei unterschiedliche Parsermaschinen (z.B. eine Layoutanalysiermaschine und eine Handschrifterkennungsmaschine) gleichzeitig und parallel arbeiten. Bei Schritt S700 empfängt das System erste von dem Benutzer eingegebene Striche als Eingabedaten (alternativ könnte ein Benutzer ein Anfangsdokument aus einer anderen Quelle oder einer anderen Anwendung herunterladen oder anderweitig eine geeignete Eingabe oder ein geeignetes Anfangsdokument empfangen). Anfänglich können, wie in 6A dargestellt, die Eingabedaten in einer Dokumentenbaumdatenstruktur enthalten sein, bei der jeder Strich als ein getrenntes Wort, eine getrennte Zeile und ein getrennter Block behandelt wird. Ein Zweck einer Layoutanalysiermaschine (wie die in 5 dargestellte) besteht darin, die einzelnen Striche zu assoziierten Wörtern, Zeilen und Blöcken aus Tintendaten zu gruppieren.
  • Nimmt man außerdem auf 4 Bezug, wird anfänglich (Schritt S702) die Spiegelbaumdatenstruktur 1304 in der Parsermaschine 1322 mit der in dem Anwendungsprogramm 1320 verwendeten Dokumentenbaumdatenstruktur 1302 gleichgesetzt. Während der Benutzer 1300 an der Dokumentenbaumdatenstruktur 1302 arbeitet, verfolgen die Systeme und Verfahren nach diesem Beispiel der Erfindung die von dem Benutzer vorgenommenen Änderungen durch Markieren der von dem Benutzer geänderten Knoten (siehe 6A und 6B) als „benutzerverschmutzt (user-dirty)" (wenn der Benutzer einen Strich, ein Wort, eine Zeile oder einen Block geändert oder hinzugefügt hat) oder „löschverschmutzt (delete-dirty)" (wenn der Benutzer einen Strich, ein Wort, eine Zeile oder einen Block gelöscht hat). In Schritt S704 bestimmt das System, ob User-Dirty- oder Delete-Dirty-Knoten in der Datenstruktur bestehen. Falls JA, sagt dies dem System, dass der Benutzer an der Datenstruktur gearbeitet hat und dass, wenigstens in Bezug auf die als benutzerverschmutzt oder löschverschmutzt markierten Knoten, eine neue Layoutanalyse nötig sein könnte. Dann wird ein Schnappschuss 1324 der Spiegelbaumdatenstruktur 1304 (Schritt S706) aufgenommen und die Layoutanalysiermaschine 1306 arbeitet an diesem Schnappschuss 1324 (Schritt S708). Sobald der Schnappschuss in Schritt S704 aufgenommen wurde, werden die User-Dirty- und/oder Delete-Dirty-Knoten in dem Spiegelbaum auf „sauber (clean)" geändert.
  • Verarbeitung kann an einer geeigneten Datenmenge stattfinden, die jeden verschmutzten Knoten umgibt (z.B. alle Daten in dem Block, der den verschmutzten Knoten enthält; alle Daten in einem vorgegebenen Abstand zu dem verschmutzten Knoten; alle Daten in der Zeile, die den verschmutzten Knoten enthält und wahlweise alle Daten in einer oder mehreren Zeilen, die den verschmutzten Knoten umgeben (soweit vorhanden); usw.). Vorteilhafterweise minimieren oder verringern die Systeme und Verfahren nach wenigstens einigen Beispielen der Erfindung redundante Berechnungen (z.B. indem unveränderte Knoten nicht erneut analysiert werden), während immer noch genügend umgebende Daten neu analysiert werden, um sicherzustellen, dass alle erforderlichen Daten neu analysiert werden und die Genauigkeit aufrechterhalten wird.
  • Bei der Vorwärtsbewegung zu 7B (wie durch Ableitungssymbol B dargestellt (S710)) werden Knoten, die durch die Layoutanalysiermaschine 1306 geändert wurden, als „parserverschmutzt (parser-dirty)" markiert (Schritt S712), so dass die Systeme und Verfahren nach diesem Beispiel der Erfindung die vorhergehenden Änderungen an der Datenstruktur, die von der Layoutanalysiermaschine 1306 vorgenommen wurden, verfolgen können. Nach dem Markieren der Parser-Dirty-Knoten (Schritt S712) können, soweit erforderlich oder gewünscht, die Systeme und Verfahren nach diesem Beispiel der Erfindung auf das Synchronisieren der Taktung mit der Erkennungsmaschine warten (Schritt S714), das im Folgenden ausführlicher beschrieben wird. Da der Schritt S714 optional und/oder nicht immer erforderlich ist, wird er in 7B in gestrichelten Linien gezeigt.
  • Wenn bei Schritt S704 keine User- oder Delete-Dirty-Knoten bestehen (Antwort NEIN), überspringt der Vorgang die Schritte S706, S708 und S712 und bewegt sich vorwärts zu Schritt S714, wie durch das Ableitungssymbol D dargestellt (S716).
  • Die Systeme und Verfahren nach dem in den 7A und 7B dargestellten Beispiel der Erfindung enthalten zwei unabhängige Analysiermaschinen oder -abläufe, nämlich die/den Layoutanalysiermaschine oder -ablauf 1306 und die/den Erkennungsmaschine oder -ablauf 1308, die gleichzeitig und parallel ausgeführt werden. Selbstverständlich kann eine Anzahl unabhängiger Maschinen oder Abläufe in dem Hintergrund des Anwendungsprogramms 1320 ausgeführt werden, ohne von der Erfindung abzuweichen. Nach Schritt S702 bestimmen die Systeme und Verfahren nach diesem Beispiel der Erfindung, ob die Spiegelbaumdatenstruktur neue Parser-Dirty-Knoten enthält (Schritt S718). Falls JA, wird ein Schnappschuss 1326 der Spiegelbaumdatenstruktur 1304 aufgenommen (Schritt S720) und die Erkennungsmaschine 1308 arbeitet an diesem Schnappschuss 1326 (Schritt S722). Der in Schritt S722 verwendete Schnappschuss 1326 kann derselbe sein wie der in Schritt S708 verwendete Schnappschuss 1324 (z.B. wird lediglich ein „Schnappschuss" aufgenommen) oder er kann unterschiedlich sein (wobei dies anzeigt, dass die Schnappschüsse zu unterschiedlichen Zeitpunkten aufgenommen wurden), ohne von der Erfindung abzuweichen. Nachdem der Schnappschuss in Schritt S720 aufgenommen wurde, werden die Parser-Dirty-Knoten in dem Spiegelbaum als „sauber" markiert.
  • Geht man zurück zu 7B (angezeigt durch das Ableitungssymbol C (Schritt S724)), markiert das System in dem nächsten Schritt des dargestellten Vorgangs Knoten, die von der Erkennungsmaschine geändert wurden, als „erkennungsmaschinenverschmutzt (reco-dirty)" (Schritt S726). Dann wartet (soweit erforderlich) in Schritt S728 die Verarbeitung in der Erkennungsmaschine 1308 auf das Synchronisieren mit der Layoutanalysiermaschine 1306. Erneut wird, da der Schritt S728 optional und/oder nicht immer erforderlich ist, dieser in gestrichelten Linien gezeigt.
  • Wenn bei Schritt S718 der Vorgang bestimmt, dass die Spiegelbaumdatenstruktur 1304 keine Parser-Dirty-Knoten enthält (Antwort NEIN), überspringt der Vorgang die Schritte S720, S722 und S726 und springt zu Schritt S728, wie durch das Ableitungssymbol E angezeigt (Schritt S730).
  • Sobald die Layoutanalysiermaschine 1306 und die Erkennungsmaschine 1308 ihre Verarbeitung abgeschlossen haben und neu synchronisiert sind, bestimmt der Vorgang dann, ob die Schnappschüsse durch die Layoutanalysiermaschine 1306 und/oder die Handschrifterkennungsmaschine 1308 geändert wurden (Schritt S732). Wenn keine Schnappschussänderungen bestehen (Antwort JA bei Schritt S732), bestimmt das System, ob die Verarbeitung abgeschlossen wurde (Schritt S734), und falls JA, endet der Vorgang (Schritt S736). Dieses Ende kann vorübergehend sein und zum Beispiel lediglich andauern, bis ein Benutzer das Vornehmen von Änderungen an der Dokumentenbaumdatenstruktur 1302 wieder aufnimmt. Als eine andere Alternative kann das System automatisch und periodisch auf neue von dem Benutzer vorgenommene Änderungen prüfen. Wenn die Verarbeitung bei Schritt S734 nicht abgeschlossen ist (Antwort NEIN, wenn zum Beispiel ein Benutzer Änderungen an der Dokumentenbaumdatenstruktur vorgenommen hat), geht der Vorgang zu Schritt S702 zurück, wie durch das Ableitungssymbol A angezeigt (Schritt S738).
  • Wenn bei Schritt S732 das System bestimmt, dass wenigstens ein Schnappschuss geändert wurde (Antwort NEIN), dann bestimmt das System, ob beide Parsermaschinen Änderungen an ihrem jeweiligen Schnappschuss vorgenommen haben (Schritt S740). Wenn beide Parsermaschinen Änderungen an ihrem Schnappschuss vorgenommen haben (Antwort JA), dann kombiniert das System die von der Layoutanalyse und der Handschrifterkennung geänderten Schnappschüsse zu einer zusammengesetzten geänderten Datenstruktur (Schritt S742). Wenn eine Überlappung oder ein Konflikt besteht, setzen in diesem Beispiel Parser-Dirty-Knoten Reco-Dirty-Knoten außer Kraft, da im Vergleich zu den Reco-Dirty-Knoten die Änderungen an den Parser-Dirty-Knoten durch den Benutzer jünger sind. Wenn beide Maschinen keine Änderungen an ihrem Schnappschuss vorgenommen haben (Antwort NEIN), bestimmt das System, dass der eine geänderte Schnappschuss alle von der Layoutanalysiermaschine 1306 oder der Handschrifterkennungsmaschine 1308 vorgenommenen Änderungen enthält, Schritt S742 wird übersprungen und das System fährt unter Verwendung des einzelnen geänderten Schnappschusses fort.
  • In Schritt S744 verwendet der Parser 1322 die in der Schnappschussdatenstruktur enthaltenen Informationen zum Neuschreiben der Daten in der Dokumentenbaumdatenstruktur 1302. Lediglich Abschnitte der Dokumentenbaumdatenstruktur 1302, die von der Layoutanalysiermaschine oder der Erkennungsmaschine geändert wurden, werden neu geschrieben. Auf diese Weise benötigt das Verarbeitungssystem keine Zeit zum Neuschreiben von Daten in der Dokumentenbaumdatenstruktur 1302, die nicht geändert wurden. Wenn außerdem von dem Benutzer an der Dokumentenbaumdatenstruktur 1302 vorgenommene Änderungen zu Überlappung oder Konflikt mit Änderungen in der Datenstruktur, die von der Layoutanalysiermaschine oder der Erkennungsmaschine vorgenommen wurden, führen, wird die Dokumentenbaumdatenstruktur 1302 nicht so geändert, dass sie die im Konflikt stehenden Änderungen, die von der Layoutanalysiermaschine oder der Erkennungsmaschine vorgenommen wurden, enthält. Auf diese Weise haben die von dem Benutzer vorgenommenen Änderungen Vorrang vor den Änderungen, die von dem System vorgenommen wurden. Die Bestimmung, ob die Dokumentenbaumdatenstruktur 1302 neue von dem Benutzer vorgenommene Änderungen enthält, kann zum Beispiel vollzogen werden, indem nach User- oder Delete-Dirty-Knoten in der Spiegelbaumdatenstruktur 1304 gesucht wird.
  • Wie durch das Ableitungssymbol A (Schritt S738) angezeigt, geht der Vorgang dann zu Schritt S702 zurück, um den Prozess an der überarbeiteten oder modifizierten Dokumentenbaumdatenstruktur zu wiederholen.
  • Die 8A und 8B stellen ein anderes Beispiel für ein Flussdiagramm dar, das beim Praktizieren des inkrementalen Analysiervorgangs nach der vorliegenden Erfindung verwendet werden kann. Bei dem in diesen Zeichnungen beispielhaft dargestellten Vorgang werden die zwei Parsermaschinen 1306 und 1308 nacheinander ausgeführt, wobei die Layoutanalysiermaschine 1306 zuerst ausgeführt wird und die Handschrifterkennungsmaschine 1308 später ausgeführt wird.
  • Bei diesem Vorgang werden zuerst die anfänglich von dem Benutzer eingegebenen Striche in der Dokumentenbaumdatenstruktur 1302 empfangen (Schritt S800) (oder die Daten werden auf eine andere Weise in das System eingeleitet, z.B. Herunterladen, aus einem Speicher, aus einer anderen Anwendung usw.). Erneut wird, wenn dies eintritt, die Spiegelbaumdatenstruktur 1304 überarbeitet, um die Dokumentenbaumdatenstruktur 1302 zu spiegeln (Schritt S802). In dem nächsten Schritt bestimmt das System, ob User- oder Delete-Dirty-Knoten in der Spiegelbaumdatenstruktur 1304 bestehen (Schritt S804). Falls JA, wird ein Schnappschuss der Spiegelbaumdatenstruktur aufgenommen (Schritt S806) und die Layoutanalysiermaschine 1306 arbeitet an dem Schnappschuss (Schritt S808). Sobald der Schnappschuss aufgenommen wurde, werden User- oder Delete-Dirty-Knoten in der Spiegelbaumdatenstruktur 1304 auf „sauber" geändert. Knoten in dem Schnappschuss, die durch die Layoutanalysiermaschine 1306 geändert wurden, werden als „parserverschmutzt (parser-dirty)" markiert (Schritt S810). Wenn die Antwort bei Schritt S804 NEIN lautet, überspringt der Vorgang die Schritte S806, S808 und S810.
  • In Schritt S812 bestimmt das System, ob Parser-Dirty-Knoten in dem Schnappschuss 1324 (soweit bereits einer aufgenommen wurde) oder in der Spiegelbaumdatenstruktur 1304 (wenn kein Schnappschuss aufgenommen wurde) bestehen. Wenn Parser-Dirty-Knoten bestehen (Antwort Ja), dann wird ein Schnappschuss aufgenommen, wenn nicht zuvor einer aufgenommen wurde (Schritt S814), und dann wird die Handschrifterkennungsmaschine 1308 an dem Schnappschuss ausgeführt (Schritt S816). Sobald hier ein Schnappschuss aufgenommen wurde (soweit erforderlich), werden Parser-Dirty-Knoten in der Spiegelbaumdatenstruktur 1304 als „sauber" markiert. Knoten, die in dem Schnappschuss während des Betriebs der Handschrifterkennungsmaschine 1308 geändert wurden, werden als „erkennungsmaschinenverschmutzt (reco-dirty)" markiert (Schritt S818). Alternativ kann ein einzelner Schnappschuss zu Beginn des Vorgangs von 8A aufgenommen werden (vor dem Betrieb der Parsingmaschine) und dann können alle Knoten des Spiegelbaums 1304 als sauber markiert werden, nachdem der Schnappschuss aufgenommen wurde.
  • Nimmt man nun Bezug auf 8B (wie durch das Ableitungssymbol B angezeigt (Schritt S820)), verwendet der Parser 1322 die in der Schnappschussdatenstruktur enthaltenen Daten zum Neuschreiben der Daten in der Dokumentenbaumdatenstruktur 1302 (Schritt S822). Lediglich Abschnitte der Dokumentenbaumdatenstruktur, die von der Layoutanalysiermaschine oder der Erkennungsmaschine geändert wurden, werden neu geschrieben, um dadurch Datenschreibzeit zu verringern (keine Notwendigkeit des Neuschreibens unveränderter Daten). Außerdem haben, wie oben beschrieben, von dem Benutzer an der Dokumentenbaumdatenstruktur 1302 vorgenommene Änderungen Vorrang, falls die von dem Benutzer vorgenommenen Änderungen zu Überlappung oder Konflikt mit den von der Layoutanalysiermaschine oder der Erkennungsmaschine vorgenommenen Änderungen führen.
  • Dann bestimmt der Vorgang, ob die Verarbeitung abgeschlossen wurde (Schritt S828). Falls JA, endet der Vorgang (Schritt S830, wenigstens vorübergehend, bis mehr Ände rungen an der Dokumentenbaumdatenstruktur vorgenommen wurden), und falls NEIN, geht der Vorgang zurück zu Schritt S802 und wiederholt sich, wie durch das Ableitungssymbol A angezeigt (Schritt S832). Außerdem kann, wie oben angemerkt, das System periodisch und automatisch auf neue Benutzereingabe prüfen.
  • Wenn keine Parser-Dirty-Knoten bei Schritt S812 bestehen (Antwort NEIN), springt der Vorgang vorwärts zu Schritt S828, wie durch das Ableitungssymbol C, Schritt S834, angezeigt.
  • Die 9A und 9B stellen ein Beispiel der Erfindung dar, bei dem die Layoutanalysiermaschine 1306 und die Handschrifterkennungsmaschine 1308 unabhängig voneinander, wahlweise parallel und nacheinander, arbeiten. 9A stellt den Betrieb der Layoutanalysiermaschine 1306 dar. Als ein Anfangsschritt (Schritt S900) empfängt das System anfängliche Eingabe auf eine geeignete Weise (z.B. Striche von einem Benutzer, Herunterladung von einer anderen Quelle oder Anwendung usw.) und die Spiegelbaumdatenstruktur 1304 wird zu der Dokumentenbaumdatenstruktur 1302, an der der Benutzer arbeitet, äquivalent gehalten (Schritt S902). Das System bestimmt dann, ob die Spiegelbaumdatenstruktur 1304 User-Dirty- oder Delete-Dirty-Knoten enthält (Schritt S904). Falls JA, wird ein Schnappschuss 1324 der Spiegelbaumdatenstruktur 1304 aufgenommen (Schritt S906) und die Layoutanalysiermaschine wird an dem Schnappschuss 1324 ausgeführt (Schritt S908). Sobald der Schnappschuss aufgenommen wurde, wird der Spiegelbaum geändert, um die User- und/oder Delete-Dirty-Knoten als „sauber" zu markieren. Wie bei den vorhergehenden Beispielen, werden Knoten in dem Schnappschuss 1324, die von der Layoutanalysiermaschine 1306 geändert wurden, als „parser-dirty" markiert (Schritt S910).
  • In dem nächsten Schritt (Schritt S912) verwendet der Parser 1322 die in der Schnappschussdatenstruktur enthaltenen Daten zum Neuschreiben der Daten in der Dokumentenbaumdatenstruktur 1302. Lediglich Abschnitte der Dokumentenbaumdatenstruktur, die von der Layoutanalysiermaschine geändert wurden, werden neu geschrieben, um dadurch Datenschreibzeit zu verringern (unveränderte Daten müssen nicht neu geschrieben werden). Außerdem haben, wie oben beschrieben, von dem Benutzer an der Dokumentenbaumdatenstruktur 1302 vorgenommene Änderungen Vorrang, falls die von dem Benutzer vorgenommenen Änderungen zu Überlappung oder Konflikt mit den von der Layoutanalysiermaschine vorgenommenen Änderungen führen.
  • Dann bestimmt das System, ob die Verarbeitung abgeschlossen wurde (Schritt S918), und falls JA, endet der Vorgang (Schritt S920) wenigstens vorübergehend, bis zusätzliche Änderungen in die Dokumentenbaumdatenstruktur 1302 eingeleitet werden oder bis eine automatische oder periodische Überarbeitung des Systems durchgeführt wird, wie oben besprochen. Falls zusätzliche Verarbeitung erforderlich ist (Antwort NEIN bei Schritt S918), geht der Vorgang zurück zu Schritt S902, wie durch das Ableitungssymbol A angezeigt (Schritt S922).
  • Wenn bei Schritt S904 bestimmt wird, dass die Spiegelbaumdatenstruktur 1304 keine User-Dirty- oder Delete-Dirty-Knoten enthalten (Antwort NEIN), geht der Vorgang weiter zu Schritt S918, wie durch das Ableitungssymbol D angezeigt (Schritt S924).
  • Der Betrieb der Handschrifterkennungsmaschine 1308, wie in 9B dargestellt, ist dem Betrieb der Layoutanalysiermaschine 1306 ähnlich. Als ein Anfangsschritt (Schritt S950) empfängt das System anfängliche Eingabe auf eine geeignete Weise (z.B. Striche von einem Benutzer oder andere Eingabe, wie oben beschrieben) und die Spiegelbaumdatenstruktur 1304 wird zu der Dokumentenbaumdatenstruktur 1302, an der der Benutzer oder das Anwendungsprogramm 1320 arbeiten, äquivalent gehalten (Schritt S952). Das System bestimmt dann, ob die Spiegelbaumdatenstruktur 1304 Parser-Dirty-Knoten enthält (Schritt S954). Falls JA, wird ein Schnappschuss 1326 der Spiegelbaumdatenstruktur 1304 aufgenommen (Schritt S956) und die Handschrifterkennungsmaschine wird an dem Schnappschuss 1326 ausgeführt (Schritt S958). Die Parser-Dirty-Knoten in der Spiegelbaumdatenstruktur 1304 werden als „sauber" markiert, nachdem der Schnappschuss aufgenommen wurde. Wie bei den vorhergehenden Beispielen, können Knoten in dem Schnappschuss, die von der Handschrifterkennungsmaschine geändert wurden, als „reco-dirty" markiert werden (Schritt S960).
  • In dem nächsten Schritt (Schritt S962) verwendet der Parser 1322 die in der Schnappschussdatenstruktur enthaltenen Daten zum Neuschreiben der Daten in der Dokumentenbaumdatenstruktur 1302. Lediglich Abschnitte der Dokumentenbaumdatenstruktur, die von der Erkennungsmaschine geändert wurden, werden neu geschrieben, um da durch Datenschreibzeit zu verringern (unveränderte Daten müssen nicht neu geschrieben werden). Außerdem haben von dem Benutzer an der Dokumentenbaumdatenstruktur 1302 vorgenommene Änderungen und von der Parsermaschine an der Dokumentenbaumdatenstruktur 1302 vorgenommene Änderungen seit dem letzten Schnappschuss Vorrang, falls eine dieser Änderungen zu Überlappung oder Konflikt mit den von der Erkennungsmaschine vorgenommenen Änderungen führt.
  • Dann bestimmt das System, ob die Verarbeitung abgeschlossen wurde (Schritt S968), und falls JA, endet der Vorgang (Schritt S970) wenigstens vorübergehend, bis zusätzliche Änderungen in die Dokumentenbaumdatenstruktur 1302 eingeleitet werden oder bis eine automatische oder periodische Prüfung auf neue Daten durchgeführt wird. Falls zusätzliche Verarbeitung erforderlich ist (Antwort NEIN bei Schritt S968), geht der Vorgang zurück zu Schritt S952, wie durch das Ableitungssymbol A angezeigt (Schritt S972).
  • Wenn bei Schritt S954 bestimmt wird, dass die Spiegelbaumdatenstruktur keine Parser-Dirty-Knoten enthalten (Antwort NEIN), geht der Vorgang weiter zu Schritt S968, wie durch das Ableitungssymbol D angezeigt (Schritt S974).
  • IV Schluss
  • Zwar wurde die Erfindung in Bezug auf verschiedene spezifische Beispiele beschrieben, aber diese spezifischen Beispiele stellen die Erfindung lediglich beispielhaft dar und beschränken sie nicht. Zusätzlich können die verschiedenen spezifizierten Schritte und Vorgänge, die in den Flussdiagrammen dargestellt werden, modifiziert, in der Reihenfolge verändert, übersprungen oder anderweitig verändert werden, ohne von der Erfindung abzuweichen.
  • Darüber hinaus bedeutet der Umstand, dass ein spezifisches Merkmal oder eine spezifische Funktion der Erfindung in Verbindung mit einem spezifischen Beispiel beschrieben wird, nicht, dass dieses Merkmal oder diese Funktion auf die Verwendung mit diesem spezifischen Beispiel der Erfindung beschränkt ist oder dass jedes Beispiel dieses spezifische Merkmal oder diese spezifische Funktion enthalten muss. Vielmehr können die oben beschriebenen verschiedenen Merkmale und Funktionen, soweit nicht anderweitig spezifiziert, bei einem Beispiel der Erfindung frei verwendet werden. Fachleute werden feststellen, dass Änderungen und Modifikationen an den beispielhaft dargestellten Versionen der Erfindung vorgenommen werden können, ohne von dem Umfang der in den angehängten Ansprüchen definierten Erfindung abzuweichen.

Claims (27)

  1. Verfahren zum Verarbeiten digitaler Tinte, das umfasst: Empfangen von Daten, die einen oder mehr Striche digitaler Tinte darstellen, wobei die Daten als eine Anwendungsdatenstruktur (1302) gespeichert werden; Aufnehmen eines ersten Schnappschusses (1324) der Anwendungsdatenstruktur, wobei der erste Schnappschuss die Anwendungsdatenstruktur zu einem ersten Zeitpunkt darstellt; Analysieren (S708) des ersten Schnappschusses, um eine erste Datenstruktur zu erzeugen; Modifizieren der Anwendungsdatenstruktur während des Analysierens durch Löschen oder Modifizieren eines oder mehrerer vorhandener Tintenstriche, wobei die vorhandenen Tintenstriche in der Anwendungsdatenstruktur zu dem ersten Zeitpunkt dargestellt sind; und Ersetzen der Anwendungsdatenstruktur mit einer überarbeiteten Anwendungsdatenstruktur (1302), wobei die überarbeitete Anwendungsdatenstruktur auf der ersten Datenstruktur und während des Modifizierens an der Anwendungsdatenstruktur vorgenommenen Modifikationen basiert.
  2. Verfahren nach Anspruch 1, das des Weiteren umfasst: Analysieren (S722) der überarbeiteten Anwendungsdatenstruktur (1302), um eine zweite Datenstruktur zu erzeugen.
  3. Verfahren nach Anspruch 1, das des Weiteren umfasst: Analysieren eines zweiten Schnappschusses (1326), der die überarbeitete Anwendungsdatenstruktur (1302) enthält, um eine zweite Datenstruktur zu erzeugen; Modifizieren der überarbeiteten Anwendungsdatenstruktur während des Analysierens des zweiten Schnappschusses durch Löschen oder Modifizieren eines oder mehrerer vorhandener Tintenstriche; und Ersetzen der überarbeiteten Anwendungsdatenstruktur durch eine zweite überarbeitete Anwendungsdatenstruktur (1302), wobei die zweite überarbeitete Anwendungsdatenstruktur auf der zweiten Datenstruktur und während des Modifizierens der überarbeiteten Anwendungsdatenstruktur an der überarbeiteten Anwendungsdatenstruktur vorgenommenen Modifikationen basiert.
  4. Verfahren nach Anspruch 1, das des Weiteren umfasst: Analysieren eines zweiten Schnappschusses (1326), der die Anwendungsdatenstruktur (1302) enthält, um eine zweite Datenstruktur zu erzeugen, wobei die überarbeitete Anwendungsdatenstruktur zusätzlich auf der zweiten Datenstruktur basiert und der zweite Schnappschuss (1326) der gleiche sein kann wie der erste Schnappschuss (1324) oder ein anderer.
  5. Verfahren nach Anspruch 4, wobei das Analysieren des zweiten Schnappschusses (1326) wenigstens teilweise gleichzeitig mit dem Analysieren des ersten Schnappschusses (1326) stattfindet.
  6. Verfahren nach Anspruch 1, das des Weiteren Empfangen von Daten, die die Anwendungsdatenstruktur (1302) verändern, nach dem ersten Zeitpunkt jedoch vor dem Schritt des Ersetzens umfasst.
  7. Verfahren nach Anspruch 6, wobei bei dem Schritt des Ersetzens die überarbeitete Anwendungsdatenstruktur (1302) zusätzlich auf den nach dem ersten Zeitpunktempfangenen Daten basiert.
  8. Verfahren nach Anspruch 1, wobei bei dem Schritt des Ersetzens die überarbeitete Anwendungsdatenstruktur (1302) zusätzlich auf nach dem ersten Zeitpunkt gewonnenen Daten basiert.
  9. Verfahren nach Anspruch 4, wobei der erste Schnappschuss (1324) und der zweite Schnappschuss (1326) die gleiche Anwendungsdatenstruktur (1304) enthalten.
  10. Verfahren nach Anspruch 1, das des Weiteren umfasst: Empfangen der Daten über einen ersten Zeitraum, wobei der Schritt des Analysierens umfasst: mehrmaliges Analysieren der Anwendungsdatenstruktur (1302) über den ersten Zeitraum, wobei wehrend des Analysierens ein Benutzer (1300) die Anwendungsdatenstruktur modifiziert, ohne den Schritt des Analysierens zu beeinflussen.
  11. Verfahren nach Anspruch 10, wobei das Analysieren wenigstens zwei verschiedene Analysiervorgänge (S708, S722) einschließt.
  12. Verfahren nach Anspruch 11, wobei die zwei verschiedenen Analysiervorgänge (S708, S722) wenigstens teilweise gleichzeitig stattfinden.
  13. Verfahren nach Anspruch 11, wobei die zwei verschiedenen Analysiervorgänge (S708, S722) nacheinander stattfinden.
  14. Computerlesbares Medium, auf dem durch Computer ausführbare Befehle gespeichert sind, die so konfiguriert sind, dass sie, wenn sie auf einem Computer ausgeführt werden, die Schritte des Verfahrens nach einem der Ansprüche 1 bis 13 durchführen.
  15. System zum Verarbeiten digitaler Tinte, das umfasst: eine Eingabevorrichtung (201) zum Empfangen von Daten, die einen oder mehrere Striche digitaler Tinte darstellen, wobei die Daten als eine Anwendungsdatenstruktur (1302) gespeichert sind; und ein Prozessorsystem, das: (a) einen ersten Schnappschuss (1324) der Anwendungsdatenstruktur aufnimmt, wobei der erste Schnappschuss die Anwendungsdatenstruktur zu einem ersten Zeitpunkt darstellt; (b) den ersten Schnappschuss analysiert, um eine erste Datenstruktur zu erzeugen, (c) die Anwendungsdatenstruktur während des Schrittes des Analysierens durch Löschen oder Modifizieren eines oder mehrerer vorhandener Tin tenstriche modifiziert, wobei die vorhandenen Tintenstriche in der Anwendungsdatenstruktur zu dem ersten Zeitpunkt dargestellt sind, und (d) die Anwendungsdatenstruktur durch eine überarbeitete Anwendungsdatenstruktur (1302) ersetzt, wobei die überarbeitete Anwendungsdatenstruktur auf der ersten Datenstruktur und während des Schrittes des Modifizierens an der Anwendungsdatenstruktur vorgenommenen Modifikationen basiert.
  16. System nach Anspruch 15, wobei das Prozessorsystem des Weiteren die überarbeitete Anwendungsdatenstruktur (1302) analysiert, um eine zweite Datenstruktur zu erzeugen.
  17. System nach Anspruch 15, wobei das Prozessorsystem des Weiteren (e) einen zweiten Schnappschuss (1326) analysiert, der die überarbeitete Anwendungsdatenstruktur (1302) enthält, um so eine zweite Datenstruktur zu erzeugen, (f) die überarbeitete Anwendungsdatenstruktur während des Schrittes des Analysierens des zweiten Schnappschusses durch Löschen oder Modifizieren eines oder mehrerer vorhandener Tintenstriche modifiziert, und (g) die überarbeitete Anwendungsdatenstruktur durch eine zweite überarbeitete Anwendungsdatenstruktur (1302) ersetzt, wobei die zweite überarbeitete Anwendungsdatenstruktur auf der zweiten Datenstruktur und während des Schrittes des Modifizierens der überarbeiteten Anwendungsdatenstruktur an der überarbeiteten Anwendungsdatenstruktur vorgenommenen Modifikationen basiert.
  18. System nach Anspruch 15, wobei das Prozessorsystem des Weiteren einen zweiten Schnappschuss (1326) analysiert, der die Anwendungsdatenstruktur (1302) enthält, um eine zweite Datenstruktur zu erzeugen, die überarbeitete Anwendungsdatenstruktur (1302) zusätzlich auf der zweiten Datenstruktur basiert und der zweite Schnappschuss (1326) der gleiche sein kann wie der erste Schnappschuss (1324) oder ein anderer.
  19. System nach Anspruch 18, wobei das Analysieren des zweiten Schnappschusses (1326) wenigstens teilweise gleichzeitig mit dem Analysieren des ersten Schnappschusses (1324) stattfindet.
  20. System nach Anspruch 15, wobei die Eingabevorrichtung (201) des Weiteren Daten, die die Anwendungsdatenstruktur (1302) verändern, nach dem ersten Zeitpunkt, jedoch vor dem Schritt des Ersetzens empfängt.
  21. System nach Anspruch 20, wobei bei dem Ersetzen die überarbeitete Anwendungsdatenstruktur (1302) zusätzlich auf den nach dem ersten Zeitpunkt empfangenen Daten basiert.
  22. System nach Anspruch 15, wobei bei dem Ersetzen die überarbeitete Anwendungsdatenstruktur (1302) zusätzlich auf den nach dem ersten Zeitpunkt empfangenen Daten basiert.
  23. System nach Anspruch 18, wobei der erste Schnappschuss (1324) und der zweite Schnappschuss (1326) die gleiche Anwendungsdatenstruktur (1302) enthalten.
  24. System nach Anspruch 15, wobei die Daten über einen ersten Zeitraum empfangen werden und das Analysieren umfasst: mehrmaliges Analysieren der Anwendungsdatenstruktur (1302) über den ersten Zeitraum, wobei während wenigstens einem der Schritte des Analysierens ein Benutzer (1300) die Anwendungsdatenstruktur modifiziert, ohne den Schritt des Analysierens zu beeinflussen.
  25. System nach Anspruch 24, wobei das Prozessorsystem wenigstens zwei verschiedene Analysiervorgänge (S708, S722) durchführt.
  26. System nach Anspruch 25, wobei die zwei verschiedenen Analysiervorgänge (S708, S722) wenigstens teilweise gleichzeitig stattfinden.
  27. System nach Anspruch 25, wobei die zwei verschiedenen Analysiervorgänge (S708, S722) nacheinander stattfinden.
DE60314940T 2002-05-14 2003-02-19 Inkrementales System zur Echtzeitanalyse digitaler Tinte Expired - Lifetime DE60314940T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US143804 1988-01-14
US10/143,804 US7123770B2 (en) 2002-05-14 2002-05-14 Incremental system for real time digital ink analysis

Publications (2)

Publication Number Publication Date
DE60314940D1 DE60314940D1 (de) 2007-08-30
DE60314940T2 true DE60314940T2 (de) 2007-10-31

Family

ID=29418469

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60314940T Expired - Lifetime DE60314940T2 (de) 2002-05-14 2003-02-19 Inkrementales System zur Echtzeitanalyse digitaler Tinte

Country Status (4)

Country Link
US (2) US7123770B2 (de)
EP (1) EP1367528B1 (de)
AT (1) ATE367619T1 (de)
DE (1) DE60314940T2 (de)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7454393B2 (en) * 2003-08-06 2008-11-18 Microsoft Corporation Cost-benefit approach to automatically composing answers to questions by extracting information from large unstructured corpora
US7958132B2 (en) * 2004-02-10 2011-06-07 Microsoft Corporation Voting based scheme for electronic document node reuse
US20050187741A1 (en) * 2004-02-19 2005-08-25 Microsoft Corporation Development tool for defining attributes within a multi-dimensional space
US7284192B2 (en) 2004-06-24 2007-10-16 Avaya Technology Corp. Architecture for ink annotations on web documents
US20060085740A1 (en) * 2004-10-20 2006-04-20 Microsoft Corporation Parsing hierarchical lists and outlines
US8509563B2 (en) 2006-02-02 2013-08-13 Microsoft Corporation Generation of documents from images
US20080235263A1 (en) * 2007-03-02 2008-09-25 Adi, Llc Automating Creation of Digital Test Materials
US7725493B2 (en) 2007-03-23 2010-05-25 Palo Alto Research Center Incorporated Optimization method and process using tree searching operation and non-overlapping support constraint requirements
US7907141B2 (en) 2007-03-23 2011-03-15 Palo Alto Research Center Incorporated Methods and processes for recognition of electronic ink strokes
US8014607B2 (en) * 2007-03-23 2011-09-06 Palo Alto Research Center Incorporated Method and apparatus for creating and editing node-link diagrams in pen computing systems
US7945097B2 (en) * 2007-05-21 2011-05-17 Microsoft Corporation Classifying digital ink into a writing or a drawing
US8094939B2 (en) * 2007-06-26 2012-01-10 Microsoft Corporation Digital ink-based search
US8315482B2 (en) * 2007-06-26 2012-11-20 Microsoft Corporation Integrated platform for user input of digital ink
US9171454B2 (en) * 2007-11-14 2015-10-27 Microsoft Technology Licensing, Llc Magic wand
US20090245646A1 (en) * 2008-03-28 2009-10-01 Microsoft Corporation Online Handwriting Expression Recognition
US8952894B2 (en) * 2008-05-12 2015-02-10 Microsoft Technology Licensing, Llc Computer vision-based multi-touch sensing using infrared lasers
US20100031202A1 (en) * 2008-08-04 2010-02-04 Microsoft Corporation User-defined gesture set for surface computing
US8847739B2 (en) 2008-08-04 2014-09-30 Microsoft Corporation Fusing RFID and vision for surface object tracking
US20100166314A1 (en) * 2008-12-30 2010-07-01 Microsoft Corporation Segment Sequence-Based Handwritten Expression Recognition
CN103019398A (zh) * 2011-09-20 2013-04-03 腾讯科技(深圳)有限公司 一种文字输入方法及文字输入装置
US11256410B2 (en) * 2014-01-22 2022-02-22 Lenovo (Singapore) Pte. Ltd. Automatic launch and data fill of application
US10725650B2 (en) * 2014-03-17 2020-07-28 Kabushiki Kaisha Kawai Gakki Seisakusho Handwritten music sign recognition device and program
US10817124B2 (en) 2014-06-03 2020-10-27 Lenovo (Singapore) Pte. Ltd. Presenting user interface on a first device based on detection of a second device within a proximity to the first device
US9898841B2 (en) 2015-06-29 2018-02-20 Microsoft Technology Licensing, Llc Synchronizing digital ink stroke rendering
US10210383B2 (en) 2015-09-03 2019-02-19 Microsoft Technology Licensing, Llc Interacting with an assistant component based on captured stroke information
US10387034B2 (en) 2015-09-03 2019-08-20 Microsoft Technology Licensing, Llc Modifying captured stroke information into an actionable form
US10146759B2 (en) 2016-03-24 2018-12-04 Microsoft Technology Licensing, Llc Controlling digital input
US10162518B2 (en) 2017-02-03 2018-12-25 Microsoft Technology Licensing, Llc Reversible digital ink for inking application user interfaces
US11010401B2 (en) * 2017-04-25 2021-05-18 Microsoft Technology Licensing, Llc Efficient snapshot generation of data tables
US11023661B2 (en) 2018-05-03 2021-06-01 Microsoft Technology Licensing, Llc Visually enhanced digital ink
US11372823B2 (en) * 2019-02-06 2022-06-28 President And Fellows Of Harvard College File management with log-structured merge bush
CN111159891B (zh) * 2019-12-27 2022-03-15 南京航空航天大学 基于dnn神经网络的单样本极化滤波器系数预测方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5926566A (en) * 1996-11-15 1999-07-20 Synaptics, Inc. Incremental ideographic character input method

Also Published As

Publication number Publication date
ATE367619T1 (de) 2007-08-15
US7813556B2 (en) 2010-10-12
EP1367528A3 (de) 2005-01-19
US20070076952A1 (en) 2007-04-05
US20030215138A1 (en) 2003-11-20
EP1367528B1 (de) 2007-07-18
EP1367528A2 (de) 2003-12-03
US7123770B2 (en) 2006-10-17
DE60314940D1 (de) 2007-08-30

Similar Documents

Publication Publication Date Title
DE60314940T2 (de) Inkrementales System zur Echtzeitanalyse digitaler Tinte
DE60308944T2 (de) Layoutanalyse eines handschriftlichen Dokuments für Freiform-Eingabe mit digitaler Tinte
DE60316503T2 (de) Klassifikationsanalyse von Freiformeingaben mit digitaler Tinte
DE60314977T2 (de) Tintensegmentierer und zugehöriges Programm
DE69916225T2 (de) Verfahren und System zur Wartung von Freiformtinteannotationen auf ändernden Ansichten
DE60312572T2 (de) Verfahren und Gerät zum Konvertieren digitaler Bilder von Handzeichnungen zur weiteren Verwendung in einem strukturierten Text/Graphik Editor.
DE60308952T2 (de) Verfahren und System zur Anzeige und Verknüpfung von Gegenständen aus elektronischer Tinte mit erkanntem Text und Objekten
DE69723220T2 (de) Gerät und Verfahren zur Extrahierung von Tabellengeraden innerhalb normaler Dokumentbilder
US5751850A (en) Method for image segmentation and classification of image elements for documents processing
US6903751B2 (en) System and method for editing electronic images
DE4311172C2 (de) Verfahren und Einrichtung zum Identifizieren eines Schrägenwinkels eines Vorlagenbildes
DE69533074T2 (de) Verfahren zum Interpretieren handgeschriebener schematischer Benutzerschittstellenbefehle
DE3716787A1 (de) Zeichenerkennungsverfahren
DE3722444A1 (de) Verfahren und vorrichtung zum erzeugen von entwurfsmusterdaten
EP2082357B1 (de) Vorrichtung, verfahren und computerprogramm zur erkennung von schriftzeichen in einem bild
US20210149931A1 (en) Scalable form matching
WO2005119580A1 (de) Verfahren und einrichtung zur strukturanalyse eines dokuments
Bhattacharya et al. Understanding contents of filled-in Bangla form images
CN112508000B (zh) 一种用于ocr图像识别模型训练数据生成的方法及设备
DE69927313T2 (de) Verarbeitung diakritischer Zeichen zur Erkennung von nicht unter Zwang geschriebener Handschrift unter Verwendung einer Vorwärtssuche
Li et al. Linecounter: Learning handwritten text line segmentation by counting
Mironovsky et al. Graphological analysis and identification of handwritten texts
Shireesha et al. Document Analysis using Deep Learning Techniques
Said Automatic processing of documents and bank cheques
DE4345324C2 (de) Vorlagensegmentierungssystem

Legal Events

Date Code Title Description
8364 No opposition during term of opposition