-
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.