-
TECHNISCHES
GEBIET
-
Die vorliegende Erfindung betrifft
allgemein Computer-Dienstprogramme und im Besonderen Computerprogramme,
die doppelte Dateien oder Objekte entfernen.
-
HINTERGRUND
DER ERFINDUNG
-
Computeranwender benutzen während des Tages
oft mehr als einen Computer, um Information auf vielen verschiedenen
Rechenmaschinen einzugeben und zu verändern. Um dem Benutzer die
aktuellsten Daten zur Verfügung
zu stellen, ist eine Synchronisation zwischen jeder der Maschinen
erforderlich, auf der der Benutzer Daten geändert oder hinzugefügt hat.
Das Synchronisieren umfasst ein Vergleichen der auf einer Maschine
liegenden Dateien mit den auf einer anderen liegenden Dateien. Wenn
die Datei nur auf einer Maschine vorhanden ist, wird sie auf die
andere kopiert. Wenn beide die Datei enthalten, wird die aktuellste
Version von einer Maschine auf die andere kopiert. Auf diese Weise
werden beide Maschinen letztlich die gleichen Dateien enthalten, und
die in jeder Maschine enthaltenen Dateien werden die letzten Editierungen
des Benutzers widerspiegeln. Wenn mehr als zwei Maschinen synchronisiert
werden müssen,
können
mehrfache Synchronisierungen erforderlich sein.
-
Wegen der Natur der meisten Synchronisationssoftware
können
mehrfache Kopien der gleichen Datei erzeugt werden. Die Dateien,
die unbedeutende Veränderungen
enthalten, sind nicht genau gleich, und können daher von der Synchronisationssoftware als
zwei getrennte Dateien behandelt werden. Die Synchronisationssoftware
wird daher jede auf die andere Maschine kopieren, anstatt die zwei
zu vergleichen und nur die aktuellste Version zu kopieren. Anstatt
nur die letzte Version zu haben, findet infolgedessen der Benutzer
auch alle vorherigen Versionen vor. Dies ist eine Verschwendung
von Computer-Ressourcen und kann zur Verwirrung des Benutzers führen.
-
Das Problem wird verschlimmert, wenn
die Dateien durch eine andere Person als den Benutzer erzeugt und
editiert werden können.
Wenn z. B. der Benutzer ein Informationsverwaltungsprogramm, wie MicrosoftR OUTLOOK von Microsoft Corporation, verwendet,
können
mehrfache Kopien von identischen Dateien erzeugt werden, nicht nur
durch den Synchronisationsprozess zwischen den Maschinen des Benutzers,
sondern auch durch die Nachrichten, die von anderen über ein
E-Mail-System gesendet werden. Zum Beispiel kann der Be nutzer eine E-Mail-Nachricht
mit einer angehängten
Datei empfangen. Die gleiche E-Mail-Nachricht kann dann von einem anderen
Kollegen an den Benutzer weitergeleitet werden. Schließlich kann
der Benutzer die an die Nachricht angehängte Datei auf einem handgehaltenen
Computer aktualisieren und sie dann mit dem Desktop-Computer synchronisieren.
Der Benutzer hat jetzt möglicherweise
drei Kopien der gleichen Nachricht und braucht dennoch nur eine.
Weil jedoch die Nachrichten nicht streng identisch sind, wird das Synchronisationsprogramm
erkennen, dass sie die gleiche Datei sind; und wird jede Datei auf
jede Maschine kopieren. Der Benutzer wird daher drei Kopien der
gleichen Nachricht auf sowohl seinen handgehaltenen als auch den
Desktop-Computern finden.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Die vorliegende Erfindung ist daher
auf ein flexibleres Verfahren zum Entfernen doppelter Objekte aus
einem Objektspeicher gerichtet.
-
Die vorliegende Erfindung ist auch
auf ein Verfahren gerichtet, das Objekte auf der Basis von benutzergewählten Kriterien
und Sonderfällen
vergleicht, um festzustellen, ob zwei Objekte Duplikate sind.
-
Die vorliegende Erfindung, wie in
den anliegenden Ansprüchen
dargelegt, stellt eine Benutzerschnittstelle bereit, die dem Benutzer
auszuwählen erlaubt,
welche Merkmale der Objekte in dem Objektspeicher verglichen werden,
um Gleichwertigkeit festzustellen. Eine eindeutige Identifizierungsnummer
kann dann basierend auf den Werten dieser Merkmale berechnet werden.
Objekte, die die gleiche Nummer haben, haben daher die gleichen
benutzergewählten
Merkmale und sind nach den Kriterien des Benutzers gleichwertig.
Einige Merkmale können
vor dem Berechnen der eindeutigen Identifizierungsnummer eine Modifikation
erfordern. Zum Beispiel sollte ein Telefonfeld den gleichen Wert
ergeben, ob die Telefonnummer Striche zwischen dem Gebietscode, Präfix und
Suffix, Klammern um den Gebietscode oder Zwischenräume zwischen
dem Gebietscode, Präfix
und Suffix enthält.
Die Striche, Klammern und Zwischenräume müssen somit vor dem Berechnen nicht
entfernt werden, sodass die gleichen Telefonnummern in der Berechnung
der gleichen eindeutigen Identifizierungsnummer resultieren, ungeachtet des
Formats der Telefonnummer. Sobald berechnet ist, dass zwei Objekte
die gleiche eindeutige Identifizierungsnummer haben, und so für identisch
erachtet werden, kann eines entfernt werden. Einige "identische"
Objekte können
sich jedoch unterscheiden, weil eines der Objekte einen Link zu
anderen Objekten enthalten kann. Das Objekt ohne den Link sollte das
sein, das entfernt wird, sodass die Änderungen des Benutzers an
dem verbleibenden Objekt über den
Link genau aktualisiert werden können.
Vor dem Entfernen von "doppelten" Objekten kann das System daher
auf Links in den Objekten prüfen
und diejenigen ohne Links entfernen.
-
Weitere Merkmale und Vorteile der
Erfindung werden aus der folgenden ausführlichen Beschreibung von veranschaulichenden
Ausführungen
sichtbar gemacht, die mit Verweis auf die begleitenden Zeichnungen
vonstatten geht.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Während
die anliegenden Ansprüche
die Merkmale der vorliegenden Erfindung mit Besonderheit darlegen,
kann die Erfindung zusammen mit ihren Aufgaben und Vorteilen am
besten aus der folgenden ausführlichen
Beschreibung verstanden werden, die in Verbindung mit den begleitenden
Zeichnungen erfolgt. Inhalt der Zeichnungen:
-
1 ist
ein Blockschaltbild, das ein exemplarisches Computersystem veranschaulicht,
auf dem die vorliegende Erfindung residiert.
-
2 ist
eine exemplarische Informationsverwaltungsanwendung, mit der die
vorliegende Erfindung verwendet werden kann.
-
3 ist
ein Blockdiagramm, das allgemein ein Objekt nach der vorliegenden
Erfindung veranschaulicht.
-
4 ist
ein Diagramm, das die Zusammensetzung von einigen der Objekte von
MicrosoftR OUTLOOK veranschaulicht.
-
5 ist
ein anderes Diagramm, das die Zusammensetzung von einigen der Objekte
von MicrosoftR OUTLOOK veranschaulicht.
-
6 ist
ein anderes Diagramm, das die Zusammensetzung von einigen der Objekte
von MicrosoftR OUTLOOK veranschaulicht.
-
7 ist
ein Flussdiagramm, das allgemein die Arbeitsweise der vorliegenden
Erfindung veranschaulicht.
-
8 ist
eine exemplarische Benutzerschnittstelle nach der vorliegenden Erfindung.
-
AUSFÜHRLICHE
BESCHREIBUNG DER ERFINDUNG
-
Auf die Zeichnungen verweisend, worin
gleiche Bezugszeichen gleiche Elemente betreffen, wird die Erfindung
als in einer geeigneten Rechenumgebung implementiert veranschaulicht.
-
Obwohl nicht erforderlich, wird die
Erfindung im Kontext von computerausführbaren Anweisungen, wie z.
B. Programmmodulen, die von einem Personal Computer ausgeführt werden,
beschrieben. Für
gewöhnlich
enthalten Programmmodule Routinen, Programme, Objekte, Komponenten,
Datenstrukturen usw., die bestimmte Aufgaben ausführen oder
bestimmte abstrakte Datentypen implementieren. Außerdem werden
die Fachleute erkenn, dass die Erfindung mit anderen Computersystem-Konfigurationen praktiziert
werden kann, einschließlich
handgehaltener Geräte,
Multiprozessorsystemen, mikroprozessorbasierter oder programmierbarer
Verbraucherelektronik, Netzwerk-PCs, Minicomputern, Mainframe-Computern
und dergleichen. Die Erfindung kann auch in verteilten Rechenumgebungen
praktiziert werden, wo Aufgaben von entfernten Verarbeitungseinrichtungen
durchgeführt
werden, die durch ein Kommunikationsnetzwerk verbunden sind. In
einer verteilten Rechenumgebung können sich Programmmodule sowohl
in lokalen als auch entfernten Speichereinrichtungen befinden.
-
Mit Verweis auf 1 umfasst ein exemplarisches System zur
Implementierung der Erfindung einen Universalrechner in der Form
eines herkömmlichen
Personal Computers 20, der eine Verarbeitungseinheit 21,
einen Systemspeicher 22 und einen Systembus 23 enthält, der
verschiedene Systemkomponenten, einschließlich des Systemspeichers, mit
der Verarbeitungseinheit 21 verbindet. Der Systembus 23 kann
eine von mehreren Arten von Busstrukturen sein, einschließlich eines
Speicherbusses oder Speichersteuerung, eines Peripheriebusses und
eines lokalen Busses, der eine von einer Vielfalt von Busarchitekturen
benutzt. Der Systemspeicher umfasst einen Nurlesespeicher (ROM) 24 und
einen Direktzugriffsspeicher (RAM) 25. Ein Basis-Eingabe/Ausgabe-System
(BIOS) 26, das die Basisroutinen enthält, die Information zwischen
Elementen innerhalb des Personal Computers 20, z. B. während des
Startens, zu übertragen
hilft, ist im ROM 24 gespeichert. Der Personal Computer 20 umfasst
weiter ein Festplattenlaufwerk 27, um aus einer Festplatte 60 zu
lesen und darauf zu schreiben, ein Magnetplattenlaufwerk 28,
um aus einer wechselbaren Magnetplatte 29 zu lesen oder
darauf zu schreiben, und ein optisches Plattenlaufwerk 30,
um aus einer wechselbaren optischen Platte 31, z. B. einer
CD-ROM oder einem anderen optischen Medium, zu lesen oder darauf
zu schreiben.
-
Das Festplattenlaufwerk 27,
das Magnetplattenlaufwerk 28 und das optische Plattenlaufwerk 30 sind
mit dem Systembus 23 durch eine Festplattenlaufwerk-Schnittstelle 32,
eine Magnetplattenlaufwerk-Schnittstelle 33 bzw. eine optische
Plattenlaufwerk-Schnittstelle 34 verbunden. Die Laufwerke
und ihre zugehörigen
computerlesbaren Medien stellen nichtflüchtige Speicherung von computerlesbaren Anweisungen,
Datenstrukturen, Programmmodulen und anderen Daten für den Personal
Compter 20 bereit. Obwohl die hier beschriebene exemplarische Umgebung
eine Festplatte 60, eine wechselbare Magnetplatte 29 und
eine wechsel bare optische Platte 31 einsetzt, werden die
Fachleute einsehen, dass andere Arten von computerlesbaren Medien,
die Daten speichern können,
auf die ein Computer zugreifen kann, wie z. B. Magnetkassetten,
Flash-Speicherkarten, digitale Videoplatten, Bernoulli-Kassetten, Direktzugriffsspeicher,
Nurlesespeicher und dergleichen, ebenfalls in der exemplarischen
Betriebsumgebung verwendet werden können.
-
Ein Anzahl von Prgrammmodulen kann
auf der Festplatte 60, der Magnetplatte 29, der
optischen Platte 31, dem ROM 24 oder dem RAM 25 gespeichert
werden, einschließlich
eines Betriebssystems 35, eines oder mehreren Anwendungsprogrammen 36,
anderen Programmmodulen 37 und Programmdaten 38.
Ein Benutzer kann Befehle und Information durch Eingabegeräte wie eine
Tastatur 40 und ein Zeigegerät 42 in den Personal
Computer 20 eingeben. Andere Eingabegeräte (nicht gezeigt) können ein
Mikrophon, Joystick, Game-Pad, Satellitenschüssel, Scanner oder dergleichen
einschließen.
Diese und andere Eingabegeräte
werden oft mit der Verarbeitungseinheit 21 durch eine serielle
Schnittstelle 46 verbunden, die mit dem Systembus verbunden
ist, können
aber durch andere Schnittstellen, wie z. B. einem Parallel-Port,
Game-Port oder einem universellen seriellen Bus (USB) angeschlossen
werden. Ein Monitor 47 oder eine andere Art von Anzeigegerät ist ebenfalls über eine
Schnittstelle, wie z. B. einem Videoadapter 48, mit dem
Systembus 23 verbunden. Zusätzlich zu dem Monitor umfassen
Personal Computer typischerweise andere periphere Ausgabegeräte, nicht
gezeigt, wie Lautsprecher oder Drucker.
-
Der Personal Computer 20 kann
in einer vernetzten Umgebung arbeiten, die logische Verbindungen
zu einem oder mehr entfernten Computern, z. B. einem entfernten
Computer 49, verwendet. Der entfernte Computer 49 kann
ein anderer Personal Computer, ein Server, eine Peer-Einrichtung
oder ein gewöhnlicher
Netzwerknoten sein und umfasst typischerweise alle oben bezüglich des
Personal Computers 20 beschriebenen Elemente, obwohl in 1 nur eine Speichereinrichtung 50 veranschaulicht
wurde. Die in 1 gezeigten
logischen Verbindungen umfassen ein lokales Netzwerk (LAN) 51 und
ein Weitbereichsnetzwerk (WAN) 52. Solche Vernetzungsumgebungen
sind in Büros,
unternehmensweiten Computernetzen, Intranetzen und im Internet üblich.
-
Wenn in einer LAN-Vernetzungsumgebung verwendet,
ist der Personal Computer 20 mit dem lokalen Netzwerk 51 durch
eine Netzwerkschnittstelle oder -adapter 53 verbunden.
Wenn in einer WAN-Vernetzungsumbegung verwendet, enthält der Personal
Computer 20 typischerweise ein Modem 54 oder eine
andere Einrichtung zum Herstellen von Übertragungen über das
WAN 52. Das Modem 54, das intern oder extern sein
kann, ist über
die serielle Schittstelle 46 mit dem Systembus 23 verbunden.
In einer vernetzten Umgebung kön nen
bezüglich
des Personal Computers 20 gezeigte Programmmodule oder
Teile davon in der entfernten Speichereinrichtung gespeichert werden.
Man wird einsehen, dass die gezeigten Netzwerkverbindungen exemplarisch sind,
und andere Einrichtungen zum Herstellen einer Kommunikationsverbindung
zwischen den Computern benutzt werden können.
-
In der Beschreibung, die folgt, wird
die Erfindung unter Bezug auf Handlungen und symbolische Darstellungen
von Operationen, die von einem oder mehr Computern durchgeführt werden,
beschrieben, sofern nicht anders angegeben. Als solches wird man verstehen,
dass solche Handlungen und Operationen, die manchmal als computerausgeführt bezeichnet
werden, die Manipulation von elektrischen Signalen, die Daten in
einer strukturierten Form darstellen, durch die Verarbeitungseinheit
des Computers einschließen.
Diese Manipulation transformiert die Daten oder behält sie an
den Stellen in dem Speichersystem des Computers, was den Betrieb
des Computers in einer Weise rekonfiguriert oder sonstwie ändert, die
von den Fachleuten wohl verstanden wird. Die Datenstrukturen, wo
Daten beibehalten werden, sind physikalische Stellen des Speichers,
die bestimmte Merkmale haben, die durch das Format der Daten definiert
werden. Während
die Erfindung in dem vorangehenden Kontext beschrieben wird, ist dies
jedoch nicht einschränkend
gemeint, da die Fachleute erkennen werden, dass verschiedene der nachstehend
beschriebenen Aktionen und Operationen auch in Hardware implementiert
werden können.
-
Erfindungsgemäß veranschaulicht 2 eine exemplarische Benutzerschnittstelle
für ein
Informationsverwaltungsprogramm. Ein solches Informationsverwaltungsprogramm
ist, nur zum Beispiel, MicrosoftR OUTLOOK
von Microsoft Corporation. Ein Informationsverwaltungsprogramm kann
computerlesbare Objekte mit bestimmten Merkmalen erzeugen. Ein Objekt,
wie z. B. das in 3 gezeigte
Objekt 90, wird als ein Satz von Merkmalen 92 definiert. Zum
Beispiel ist jede in der in 2 veranschaulichten
"Inbox" gezeigte Nachricht ein Objekt. Die Merkmale eines solchen
Objekts können
den Absender, Empfänger,
den Gegenstand, das Absendedatum, das Empfangsdatum und Anlagen
einschließen.
Jedes Merkmal 92 in 3 enthält einen
Merkmalanhänger 94 und
einen Merkmalwert 98. Der Merkmalanhänger 94 kann eine
32-Bit Zahl sein, wo die höchstwertigen
16 Bit die Merkmal-ID 95 sind, und die niedrigstwertigen
16 Bit der Merkmaltyp 97 sind. Der Merkmalwert 98 kann
abhängig
von dem Merkmaltyp 97 in der Länge variieren. 4, 5 und 6 veranschaulichen die Merkmale
von verschiedenen Arten von Objekten, die in einem Objektspeicher
eines Informationsverwaltungsprogramm vorhanden sein können. Wie
in 4 zu sehen ist, kann
ein Mail-Item, das Nachrichtenobjekt aus der Inbox von 2, viele solcher Merkmale
haben.
-
Wegen der zahlreichen Merkmale, die
für ein gegebenes
Objekt existieren können,
kann es selten sein, zwei Objekte zu finden, die identisch sind,
wo jedes Merkmal in einem Objekt das gleiche wie das entsprechende
Merkmal in dem anderen Objekt ist. Des Weiteren kann der Benutzer
Objekte als funktional gleichwertig ansehen, ohne dass die Objekte
unbedingt identisch sind. Die vorliegende Erfindung gibt dem Benutzer
die Fähigkeit,
auszuwählen,
welche Merkmale des Objekts verglichen werden, um ein funktionale
Gleichwertigkeit zu bestimmen.
-
Wie unten ausführlicher beschrieben wird, liest
die vorliegende Erfindung alle Objekte, sobald der Benutzer die
Merkmale ausgewählt
hat, die zum Bestimmen der funktionalen Gleichwertigkeit benutzt werden.
Die Anwendung braucht nicht den Wert aller Merkmale zu erlangen.
Stattdessen müssen
nur die Werte der kritischen Merkmale (Merkmale, die der Benutzer
zum Vergleichen gewählt
hat) gelesen werden. Sobald die kritischen Merkmale in die Anwendung
eingelesen sind, werden einige wegen besonderer Fälle, die
unten weiter erklärt
werden, modifiziert werden müssen.
Sobald die Merkmale eingelesen und modifiziert sind, werden sie
einem 'Zyklische Redundanzprüfung'-
(CRC) Rechner zugeführt,
der einen eindeutigen Identifizierungswert, oder Signatur, aus dem
Wert der Merkmale berechnet. Die Signaturen werden dann gespeichert.
Die Objekte, deren Signaturen gleich sind, müssen per Definition die gleichen
Werte in den kritischen Merkmalen haben. Objekte mit den gleichen
Signaturen sind für
die Zwecke des Benutzers funktional gleichwertig, und nur ein solches
Objekt wird behalten. In einer solchen Weise werden alle funktional
gleichwertigen Duplikate weggeworfen.
-
Nun auf 7 verweisend wird in Schritt 100 dem
Benutzer die Wahlmöglichkeit
gegeben, Merkmale, die zum Bestimmen der Gleichwertigkeit verglichen
werden, zu ändern
oder festzulegen. In Schritt 102 wird dem Benutzer gestattet,
den Typ des Objekts zu wählen,
das verglichen wird. Wie aus 4, 5 und 6 zu sehen ist, haben verschiedene Arten
von Objekten verschiedene Arten von Typen von Merkmalen. Der Benutzer
kann daher verschiedene zu vergleichende Merkmale abhängig von
dem Typ des Objekts, das nach Duplikaten abgesucht wird, auswählen. Nur
als Beispiel veranschaulicht 7 die Schritte
der Anwendung von drei Typen von Objekten. In Schritt 104 kann
der Benutzer die zu vergleichenden Merkmale für Kontaktobjekte wählen, in Schritt 106 kann
der Benutzer die zu vergleichenden Merkmale für Kalenderobjekte wählen, und
in Schritt 108 kann der Benutzer die zu vergleichenden
Aufgabenobjekt-Merkmale wählen.
Wie die Fachleute wissen werden, kann dem Benutzer in Schritt 102 jede Zahl
von Typen von Objekten vorgelegt werden. Eine exemplarische Benutzerschnittstelle,
um dem Benutzer die Option zum Auswählen der zu vergleichenden Merkmale
zu präsentieren,
wird in 8 gezeigt.
-
Sobald der Benutzer die Merkmale
der Objekte, die verglichen werden, um eine Gleichwertigkeit zu
bestimmen, spezifiziert hat, kann die Anwendung, wie angedeutet,
bei Schritt 110 in 7 beginnen.
Die Anwendung kann zuerst in Schritt 112 in den Objektspeicher
einloggen. Dies kann erforderlich sein, wenn das Informationsverwaltungsprogramm passwortgeschützt ist
oder anderweitig ein Einloggen verlangt, um den Benutzer zu identifizieren.
Die Anwendung liest dann in Schritt 114 alle Objekte im
Objektspeicher des Informationsverwaltungsprogramms. Die Objekte
können
mittels eines einer Anzahl von Protokollen, wie dem MicrosoftR OUTLOOK Object Model oder dem 'Messaging
Application Programming Interface (MAPI), gelesen werden. Ein Objekt
wird "gelesen", indem die Daten in jedem der Merkmale des Objekts
erlangt werden. Um die Effizienz zu erhöhen, braucht die vorliegende
Erfindung nur die Daten von den durch den Benutzer ausgewählten Merkmalen
zu lesen, da nur diese Merkmale beim Berechnen der Signatur benutzt
werden, wie unten ausführlicher
beschrieben wird.
-
In Schritt 116 in 7 kann die Anwendung die
Tabelle wiederkehrender Ereignisse lesen. Wie die Fachleute wissen,
erzeugen Informationsverwaltungsprogramme oft getrennte Objekte,
sollte der Benutzer ein wiederkehrendes Ereignis benötigen, z.
B. ein wöchentliches
Treffen, einen Geburtstag oder einen Jahrestag. Solche Objekte,
die unten ausführlicher
beschrieben werden, können
in einer Tabelle gespeichert werden, sodass sich alle wiederkehrenden
Ereignisse an einem Ort befinden. Die vorliegende Erfindung kann
die Objekte in der Tabelle lesen, ob irgendwelche der Merkmale in
diesen Objekten durch den Benutzer ausgewählt wurden oder nicht. Die
Merkmale der Objekte in der Tabelle von wiederkehrenden Ereignissen
werden der Anwendung beim Bestimmen helfen, welch doppelten Objekte
im Objektspeicher entfernt werden können, wie unten ausführlicher
beschrieben wird.
-
In Schritt 118 kann die Anwendung
die ausgewählten
Merkmale, die sie gelesen hat, modifizieren. Bestimmte Merkmale
können
Modifikation benötigen,
um die Absicht des Benutzers widerzuspiegeln. Zum Beispiel wird
der Benutzer die folgenden Telefonnummern als identisch ansehen:
(123) 456-7890, 123-456-7890 und 123 456 7890. Für einen Computer würden jedoch
die Nummern nicht identisch sein, da Zwischenräume, Klammern und Striche alle
mit verschiedenen Werten verbunden sind. Wenn der Benutzer das Telefonnummernmerkmal
eines Objekts als eines der Merkmale zum Bestimmen der Gleichwertigkeit
ausgewählt
hätte,
würden
daher zwei ansonsten gleichwertige Objekte als verschieden gefunden
werden, wenn die gleiche Telefonnummer in verschiedenen Formaten
eingegeben wurde. Die Erfindung berücksichtigt solche Sonderfälle, indem
geeignete Merkmale vor dem Berechnen der Signatur vorübergehend
editiert werden, wie unten ausführlicher
zu beschreiben ist.
-
Ein Sonderfall kann das Problem des
Fehlens kritischer Merkmale sein, die berechnet werden können. Zum
Beispiel kann der Benutzer das Dauermerkmal eines Treffens gewählt haben,
das in den Vergleichsprozess zum Bestimmen der Gleichwertigkeit
einzubeziehen ist. Das Dauermerkmal ist somit ein kritisches Merkmal:
Es wird für
den Vergleich benötigt.
Einige Verabredungsobjekte mögen
jedoch keine Daten in dem Dauermerkmal enthalten; sie mögen nur
eine Anfangszeit und eine Endezeit haben. Eine Anfangszeit und eine
Endezeit gegeben, ist es jedoch möglich, die Dauer zu berechnen.
Das Dauermerkmal wird somit ein fehlendes kritisches Merkmal, das
berechnet werden kann. In einem solchen Fall wird die vorliegende
Erfindung das fehlende kritische Merkmal vor dem Durchführen eines
Vergleichs berechnen. Merkmalbeziehungen können in die Anwendung gespeichert
werden, sodass die Anwendung, wenn ein kritisches Merkmal fehlt,
bestimmen kann, ob andere Merkmale benutzt werden können, um
das kritische Merkmal zu gewinnen. Die anderen Merkmale brauchen
nicht vom Benutzer ausgewählt worden
zu sein. Die Anwendung kann, wenn versucht wird, ein fehlendes kritisches
Merkmal zu berechnen, andere, nicht vom Benutzer ausgewählte Merkmale
lesen. Wenn die Anwendung findet, dass es genug andere Merkmale
gibt, kann sie versuchen, das fehlende kritische Merkmal zu berechnen.
-
Ein zweiter Sonderfall, der in Schritt 118 in 7 in Betracht gezogen werden
kann, ist der Fall eines Textfelds, z. B. ein Notizenfeld in einem
Kontaktobjekt. Ein Textfeld kann Formatierungsoptionen haben, z.
B. Schriftgröße oder
Schriftfarbe, die berücksichtigt
werden, wenn die Signatur berechnet wird. Der Benutzer betrachtet
jedoch eine Nachricht "rufe Bill an" als die gleiche Nachricht,
ob sie groß oder
klein oder in Rot oder Schwarz geschrieben ist. Um diese Gegebenheit
widerzuspiegeln, entfernt die Anwendung vor dem Berechnen der Signatur
vorübergehend
alle Formatierungen.
-
Ein dritter Sonderfall, der mit dem
zweiten Sonderfall oben in Beziehung steht, betrifft Dateianlagen
innerhalb der Textfelder. Die Anwendung kann die Gleichwertigkeit
durch Verweis auf die Namen der angehängten Dateien bestimmen. Während der
Benutzer die Anlage "< file_A>, <file_Z>" als der Anlage "<file_Z>, <file_A> gleichwertig erachten
kann, wird die Anwendung beim Vergleichen der Merkmale sie als verschieden
finden. Um dieses Ergebnis zu vermeiden, werden alle Anlagen vor
dem Vergleichen der Merkmale in alphabetischer Folge nach ihren
Namen organisiert. In dieser Weise wird ein identischer Satz von
Anlagen den gleichen Signaturwert ergeben.
-
Ein vierter Sonderfall, der ebenfalls
in Schritt 118 in 7 erwogen
werden kann, ist die Situation, wo ein Objekt mehrfache Kategorien
enthält.
Informationsverwaltungsanwendungen gruppieren oft Objekte nach Kategorien,
um das Präsentieren
von Information dem Benutzer zu erleichtern. Zum Beispiel könnte E-Mail
als eine "E-Mail mit Anlage" oder als eine "E-Mail, auf die Du geantwortet
hast" kategorisiert werden. Die spezielle E-Mail-Nachricht, in diesem
Fall das Objekt, würde
zu der Kategorie "E-Mail mit Anlage" und zu der Kategorie "E-Mail,
auf die Du geantwortet hast" gehören.
Der Benutzer würde
daher die Nachricht finden, wenn er alle Nachrichten mit Anlagen
ansieht, und wenn er alle Nachrichten ansieht, auf die er geantwortert
hat. Die Benutzer würde die
Reihenfolge der Kategorien als irrelevant ansehen: Eine E-Mail mit
den Kategorien "E-Mail mit Anlage" und "E-Mail, auf die Du geantwortet
hast" würden
für gleichwertig
mit den Kategorien "E-Mail, auf die Du geantwortet hast" und "E-Mail
mit Anlage" erachtet werden. Die Kategoriewerte werden jedoch in den
CRC-Rechner geführt,
um eine Signaturnummer zu bestimmen, und CRC-Berechnungen sind reihenfolgeabhängig. Um
den Erwartungen des Benutzers zu entsprechen, kann daher die vorliegende
Erfindung vor dem Berechnen der Signatur die Kategorien in alphabetischer
Folge neu ordnen.
-
Ein fünfter Sonderfall kann das Problem
des weißen
Zwischenraums sein. Wie die Fachleute wissen, enthält ein Zwischenraum,
z. B. die Zwischenräume
zwischen den Wörtern
einer Textdatei, einen endlichen, Nicht-NuII-Wert. Wenn eine Signatur
berechnet wird, würde
ein Telefonmerkmal, das " 123-456-7890" als einen Entrag enthält, in einer
anderen Signatur resultieren als das gleiche Merkmal, das einen
Eintrag "123-456-7890 " enthält.
Der Benutzer würde
jedoch nicht erwarten, dass solche vorderen oder hinteren Zwischenräume die
Berechnung beeinflussen würden.
Um die Vorstellungen des Benutzers widerzuspiegeln, kann die Erfindung
vordere oder hintere Zwischenräume
aus Einträgen
in den Merkmalen entfernen. Zwischenräume zwischen dem Text können jedoch
eine Bedeutung für
den Benutzer enthalten. In einem Textfeld kann z. B. der Benutzer
Zwischenräume
zwischen Text verwenden, um Elemente unter Spalten auszurichten.
Zwischenräume
zwischen dem Text werden daher von der vorliegenden Erfindung nicht
entfernt.
-
Ein sechster Sonderfall, der in Schritt 118 in 7 in Betracht gezogen werden
kann, umfasst "Namensmerkmale". Die in 3 gezeigte Merkmal-ID 95 kann
16 Bit lang sein, wie zuvor erklärt wurde.
Sollte jedoch der Merkmal-ID-Wert 8000 in Hexadezimal übersteigen,
kann der Wert unter verschiedenen Kopien der Informationsverwaltungsanwendung
nicht konstant bleiben. Solche Werte sind in der Technik als "Namensmerkmale"
bekannt. Wenn eine solche Merkmal-ID durch den CRC-Rechner in einer
unten zu beschreibenden Weise benutzt wird, können daher die Signaturwerte
zwischen zwei Objekten verschieden sein, die ansonsten identische kritische
Merkmale haben. Um Konsistenz sicherzustellen, kann daher die vorliegende
Erfindung den Namen-ID-Verweis des Merkmals anstelle der Merkmal-ID
verwenden.
-
Ein siebter Sonderfall ist der Fall
von logischen Merkmalen. Wie die Fachleute wissen, enthält ein logisches
Merkmal eines Objekts nicht unbedingt einen Wert von entweder null
oder eins. Stattdessen wird ein logisches Merkmal mit einem Wert
von null als "unwahr" definiert, während ein logisches Merkmal
mit irgendeinem Mccht-Null-Wert als "wahr" definiert wird. Logische
Merkmale könnten
daher verschiedene Werte haben und dennoch "wahr" sein, was somit
verschiedene Signaturnummern für
zwei funktional gleichwertige Merkmale ergibt. Die vorliegende Erfindung
kann daher vor der Berechnung der Signatur jeden logischen Nicht-Null-Wert in eins ändern. Aus
diese Weise haben alle auf "wahr" gesetzten logischen Merkmale den
gleichen Wert für
Vergleichszwecke.
-
Ein achter Sonderfall befasst sich
mit wiederkehrenden Verabredungen. Das Problem ist, dass viele Informationsverwaltungsanwendungen
wiederkehrende Verabredungen als ein Objekt speichern, das das Wiederkehr-Muster
für ein
anderes Objekt beschreibt. Zum Beispiel kann ein Verabredungsobjekt
mit einem Wiederkehr-Objekt verbunden sein, wo das Verabredungsobjekt
den Namen der Verabredung, den Ort, die Telefonnummer enthält, und
das Wiederkehr-Objekt die Anfangszeit, die Endezeit, die Dauer und
die Häufigkeit
der Verabredung (wöchentlich,
monatlich, usw.) enthält.
Objekte wie diese sind als "Eltern-Kind"-Objekte bekannt, wo das Verabredungsobjekt
das ursprüngliche
Objekt und folglich die "Eltern" ist, und das Wiederkehr-Objekt
erzeugt wurde, als der Benutzer das Verabredungsobjekt modifizierte,
um ein wiederkehrendes Ereignis zu werden, und somit das "Kind"
genannt wird. Wie unten weiter erklärt wird, werden Eltern-Kind-Objekte
miteinander verknüpft.
Weil jedoch das Kindobjekt mehr Merkmale als die vom Benutzer ausgewählten kritischen
Merkmale enthalten kann, kann die vorliegende Erfindung das Kindobjekt
parsen, um nur die Werte der kritischen Merkmale zu gewinnen. Auf
diese Weise werden wiederkehrende Ereignisse mit funktional gleichwertigen
wiederkehrenden Ereignismerkmalen, z. B. Häufigkeit und Dauer, für gleichwertig befunden.
-
Sobald diese Sonderfälle in Rechnung
gezogen und die Merkmale entsprechend modifiziert sind, geht die
Erfindung zu Schritt 120 in 7,
wo sie den Signaturwert berechnet. Wie zuvor erwähnt wurde, wird der Signaturwert
mittels eines CRC-Rechners berechnet. Der Signaturwert hängt von
der Reihenfolge ab, in der die Merkmale dem CRC-Rechner vorgelegt
werden. Um sicherzustellen, dass die Merkmale immer in der gleichen
Reihenfolge vorgelegt werden, kann daher die Anwendung die Merkmale mittels
des Merkmalanhängers 94 sortieren.
Sobald die Merkmale sortiert sind, wird der Merkmalwert 98 zuerst
dem CRC-Rechner
bereitgestellt. Dann wird der Merkmalanhänger 94 dem CRC-Rechner
bereitgestellt. Der CRC-Rechner benutzt die Werte des Merkmalwerts 98 und
des Merkmalanhängers 94,
um eine eindeutige Signatur mittels der zyklischen Redundanzprüfung in
einer den Fachleuten bekannten Weise zu berechnen. Die Berechnung
des Signaturwerts aus Merkmalen wird weiter in der mitanhängigen Anmeldung
betitelt USE OF OBJECT SIGNATURE PROPERTY AS A SEARCH PARAMETER DURING
SYNCHRONRATION OF OJBECTS ON A COMPUTER von Wu, eingereicht am 16.
Mai, 1999 und abgetreten an der Zessionar der vorliegenden Anmeldung,
die hierin in ihrer Gesamtheit durch Verweis eingeschlossen wird,
beschrieben.
-
Sobald die Signaturnummer berechnet
ist, können
die Nummern in Schritt 124 in 7 sortiert werden, um das Vergleichen
zu erleichtern. Gleichwertige Signaturen werden nach dem Sortieren
angrenzend aneinander liegen. In Schritt 126 muss die Anwendung
daher nur nach Signaturen direkt über oder unter einer gegebenen
Signatur in der Liste suchen, um zu bestimmen, ob es irdendwelche
gibt, die gleichwertig sind.
-
In MAPI enthält das "Entryld"-Merkmal einen Objektidentifizierer,
der zurück
auf das Objekt zeigt. Die Erfindung kann das "Entryld" benutzen,
um zu bestimmen, welches Objekt welcher Signatur entspricht. Sobald
gleichwertige Signaturen gefunden sind, wird daher "Entryld" benutzt,
um zurück
auf die geeigneten Objekte im Objektspeicher zu verweisen. Alle
außer
diesen Objekten können
dann entfernt werden. Die gleichwertigen Objekte, die ausgewählt werden,
um weggeworfen zu werden, können
in den meisten Fällen
zufällig
ausgewählt
werden.
-
Vor dem zufälligen Wegwerfen aller außer den
Objekten, die die gleiche Signatur haben, kann jedoch die Erfindung
Link-Fälle
in Betracht ziehen. Einige der Objekte mit der gleichen Signatur
können einen
Link enthalten. Während
die Objekte nach den vom Benutzer ausgewählten Kriterien gleichwertig sind
und sie folglich gleichwertige Signaturnummern haben, sind sie daher
nicht identisch, da einige der Objekte einen Link enthalten können. Wie
die Fachleute wissen, kann ein Link automatisches Aktualisieren
oder Mitteilen erlauben. Zum Beispiel kann ein Begegnungsanforderungsobjekt
einen Link zu den anderen Teilnehmern des Begegnung enthalten. Wenn
der Benutzer die Begegnungsanforderung annimmt, könner daher
alle anderen Teilnehmer automatisch über den Link informiert werden,
dass der Benutzter daran teilzunehmen plant. Ähnlich können, wenn der Benutzer das
Begegnungsanforderungsobjekt löscht,
alle anderen Teilnehmer automatisch benachrichtigt werden, dass
der Benutzer nicht wünscht,
der Begegnung beizuwohnen. Es ist daher erwünscht, wie zwischen zwei gleichwertigen
Objekten, das Objekt, das den Link enthält, beizubehalten.
-
Die Erfindung erwägt diese Link-Fälle in Schritt 128 in 7. Eine Art von Link-Fall
ist das wiederkehrende Ereignisobjekt. Wie zuvor erklärt wurde,
ist ein wiederkehrendes Ereignisobjekt ein Kindobjekt. Das Kindobjekt
kann einen Link zu dem Elternobjekt haben, sodass Änderungen
an den Eltern in dem Kind widergespiegelt werden können. Zum
Beispiel ist ein Wiederkehr-Objekt ein Kind, das erzeugt wird, wenn
der Benutzer ein Eltern-Begegnungsobjekt modifiziert, sodass das
wiederkehrende Merkmal der Eltern auf "wahr" gesetzt wird. Wenn
der Benutzer dann das Eltern-Begegnungsobjekt ändern würde, sodass das wiederkehrende
Merkmal der Eltern auf "unwahr' gesetzt wird, müsste das Kind-Wiederkehrobjekt
weggeworfen werden. Ein Link zwischen den Eltern- und Kindobjekten
erlaubt, dass das Kind solche an den Eltern vorgenommenen Änderungen
widerspiegelt. Es ist daher vorteilhaft, wie zwischen gleichwertigen
Objekten, das Objekt mit einem Link beizubehalten. In Schritt 116 liest
die Erfindung alle Kindobjekte aus der Tabelle wiederkehrender Ereignisse.
Eines der Merkmale eines solchen Kindobjekts kann der Link zu dem
Elternobjekt sein. Die vorliegende Erfindung kann daher diesem Link
zurück folgen
und bestimmen, welches Objekt von den gleichwertig befundenen gelinkt
ist. Das Objekt mit dem Link wird dann beibehalten, während die
anderen Duplikate in Schritt 130 in der Liste von Duplikaten
gesammelt werden. Wenn mehr als ein gleichwertiges Objekt einen
Link enthält,
wird die Anwendung zufällig
auswählen,
welches der Objekte mit dem Link zu behalten ist.
-
Eine zweite Art des Link-Falles ist
das Begegnungsanforderungsobjekt. Ein Begegnungsanforderungsobjekt
kann eine Begegnung für
einen Benutzer planen und enthält
einen Link zurück
zu dem Anforderer der Begegnung. Das Löschen eines Begegnungsanforderungsobjekts
kann die Informationsverwaltungsanwendung veranlassen, den Link
zu dem Anforderer zu benutzen, um dem Anforderer mitzuteilen, dass
der Benutzer die Begegnung storniert hat. Um unerwünschte Stornierungen
von Begegnungen während
des Entfernens von Duplikaten zu vermeiden, liest die vorliegende
Erfindung die Objekte mit der gleichen Signatur, um festzustellen,
welches ein Verabredungsobjekt ist und welches ein Begegnungsanforderungsobjekt
ist. Dieses Begegnungsanforderungsobjekt wird dann beibehalten, und
die anderen Gleichwertigkeiten werden in Schritt 130 in
der Liste von Duplikaten gesammelt.
-
Sobald die Anwendung die Link-Fälle in Schritt 128 vollendet
hat, bildet sie in Schritt 130 eine Liste der doppelten
Objekte. Einige doppelte Objekte werden in die Liste gestellt, nachdem
die Anwendung die Link-Fälle
in Schritt 128, wie oben beschrieben, in Betracht gezogen
hat. Andere doppelte Objekte werden zufällig ausgewählt, sodass nur ein Objekt
mit einer gegebenen Signaturnummer beibehalten und nicht in die
Liste eingetragen wird. Die Anwendung fordert dann in Schritt 132 den
Benutzer auf, die Duplikate zu entfernen. Sollte der Benutzer nicht
wählen,
die Duplikate zu entfernen, endet die Anwendung in Schritt 134.
Wenn der Benutzer wählt,
die Duplikate zu entfernen, kann die Anwendung in Schritt 134 prüfen, ob
ein geeigneter Hefter, z. B. ein "Doppelte Items"-Hefter, existiert.
Wenn ein solcher Hefter nicht vorhanden ist, kann die Anwendung
in Schritt 138 einen erzeugen. Wenn ein solcher Hefter
vorhanden ist, kann die Anwendung die durch die Signaturen in der
Duplikatliste bezeichneten Objekte in Schritt 140 von ihren
ursprünglichen
Stellen im Objektspeicher in den geeigneten Hefter schieben. Die
Anwendung endet dann in Schritt 142.
-
Die Anwendung verlegt nur die Objekte
und löscht
sie nicht dauerhaft. Der Benutzer kann daher jedes Objekt zurückgewinnen,
das er nicht zu löschen
gewünscht
haben mag. Für
die Anwendung ist es auch möglich,
einen anderen Hefter für
jeden Durchgang durch den Objektspeicher zu erzeugen. Zum Beispiel
könnte
die Anwendung die doppelten Objekte, die sie bei ihrem ersten Durchgang
gefunden hat, in einen mit "duplizierte Items 1" bezeichneten Hefter
schieben. Dann, zu einer späteren
Zeit, wenn der Benutzer die Anwendung wieder laufen lässt, könnte sie
die das zweite Mal gefundenen doppelten Objekte in einen mit "duplizierte
Items 2" bezeichneten Hefter schieben. In einer solchen Weise könnte die
Anwendung den Benutzer mit einer Aufheben-Funktionalität versehen.
Um das letzte Entfernen von Duplikaten rückgängig zu machen, kann die Anwendung
oder der Benutzer einfach die Objekte aus dem "duplizierte Items"-Hefter
mit der höchsten Nummer
an den Objektspeicher zurückgeben.