[go: up one dir, main page]

DE60004211T2 - Entfernung von duplizierten objekten aus einem objektspeicher - Google Patents

Entfernung von duplizierten objekten aus einem objektspeicher Download PDF

Info

Publication number
DE60004211T2
DE60004211T2 DE60004211T DE60004211T DE60004211T2 DE 60004211 T2 DE60004211 T2 DE 60004211T2 DE 60004211 T DE60004211 T DE 60004211T DE 60004211 T DE60004211 T DE 60004211T DE 60004211 T2 DE60004211 T2 DE 60004211T2
Authority
DE
Germany
Prior art keywords
property
user
signature
readable medium
special case
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60004211T
Other languages
English (en)
Other versions
DE60004211D1 (de
Inventor
Charles Wu
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of DE60004211D1 publication Critical patent/DE60004211D1/de
Application granted granted Critical
Publication of DE60004211T2 publication Critical patent/DE60004211T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/912Applications of a database
    • Y10S707/917Text
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)
  • Transition And Organic Metals Composition Catalysts For Addition Polymerization (AREA)
  • Bidet-Like Cleaning Device And Other Flush Toilet Accessories (AREA)
  • Stabilization Of Oscillater, Synchronisation, Frequency Synthesizers (AREA)

Description

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

Claims (42)

  1. Computerlesbares Medium mit durch Computer ausführbaren Befehlen zum Durchführen der folgenden Schritte: Auffordern eines Benutzers, eine zu vergleichende Eigenschaft (92) auszuwählen; Lesen (114) eines Objektes (90) in einem Objektspeicher; Modifizieren (118) einer Falleigenschaft (92) des Objektes (90); Berechnen einer Signatur des Objektes (90) auf Basis der von dem Benutzer gewählten Eigenschaft (92); und Entfernen (140) eines ersten Objektes mit einer zu einer Signatur eines zweiten Objektes äquivalenten Signatur.
  2. Computerlesbares Medium nach Anspruch 1, wobei das Auffordern des Benutzers, die Eigenschaft auszuwählen, das Auffordern (102) des Benutzers umfasst, einen Objekttyp auszuwählen.
  3. Computerlesbares Medium nach Anspruch 2, wobei das Auffordern des Benutzers, die zu vergleichende Eigenschaft auszuwählen, des Weiteren das Auffordern (106, 108) des Benutzers umfasst, die zu vergleichende Eigenschaft (92) auf Basis der Benutzerauswahl des Objekttyps auszuwählen.
  4. Computerlesbares Medium nach Anspruch 1, wobei das Lesen (114) des Objektes das Lesen eines Wertes (98) einer Eigenschaft des Objektes (90) umfasst.
  5. Computerlesbares Medium nach Anspruch 1, wobei das Lesen (114) des Objektes das Lesen eines Wertes (98) der von dem Benutzer ausgewählten Eigenschaft umfasst.
  6. Computerlesbares Medium nach Anspruch 1, wobei das Modifizieren (118) der speziellen Falleigenschaft (92) des Objektes (90) das Herleiten eines Wertes (92) für eine kritische Eigenschaft umfasst, der berechnet werden kann.
  7. Computerlesbares Medium nach Anspruch 1, wobei das Modifizieren (118) der speziellen Falleigenschaft (92) des Objektes (90) das Entfernen von Formatierung aus einer Textfeldeigenschaft umfasst.
  8. Computerlesbares Medium nach Anspruch 1, wobei das Modifizieren (118) der speziellen Falleigenschaft (92) des Objektes (90) das Alphabetisieren eines Namens einer angehängten Datei innerhalb einer Textfeldeigenschaft umfasst.
  9. Computerlesbares Medium nach Anspruch 1, wobei das Modifizieren (118) der speziellen Falleigenschaft (92) des Objektes (90) das Alphabetisieren eines Namens einer Kategorie des Objektes umfasst.
  10. Computerlesbares Medium nach Anspruch 1, wobei das Modifizieren (118) der speziellen Falleigenschaft (92) des Objektes (90) das Entfernen von vorderen Leerstellen aus einem Texteintrag in einer Eigenschaft umfasst.
  11. Computerlesbares Medium nach Anspruch 1, wobei das Modifizieren (118) der speziellen Falleigenschaft (92) des Objektes (90) das Entfernen von hinteren Leerstellen aus einem Texteintrag in einer Eigenschaft umfasst.
  12. Computerlesbares Medium nach Anspruch 1, wobei das Modifizieren (118) der speziellen Falleigenschaft (92) des Objektes (90) das Verwenden einer Namenskennung statt einer Eigenschaftskennung (95) umfasst.
  13. Computerlesbares Medium nach Anspruch 1, wobei das Modifizieren (118) der speziellen Falleigenschaft (92) des Objektes (90) das Ändern eines Nicht-Null-Wertes einer Boolschen Eigenschaft umfasst.
  14. Computerlesbares Medium nach Anspruch 1, wobei das Modifizieren (118) der speziellen Falleigenschaft (92) des Objektes (90) das Gewinnen einer kritischen Eigenschaft aus einem Sohn-Objekt umfasst.
  15. Computerlesbares Medium nach Anspruch 1, wobei das Berechnen (120) der Signatur auf Basis der von dem Benutzer gewählten Eigenschaft (92) das Zuführen eines Wertes (98) der von dem Benutzer gewählten Eigenschaft (92) zu einer CRC-(cyclic redundancy check)Recheneinrichtung umfasst.
  16. Computerlesbares Medium nach Anspruch 1, wobei das Berechnen (120) der Signatur auf Basis der von dem Benutzer gewählten Eigenschaft (92) das Zuführen eines Wertes (98) der von dem Benutzer gewählten modifizierten speziellen Falleigenschaft (92) zu einer CRC-Recheneinrichtung umfasst.
  17. Computerlesbares Medium nach Anspruch 1, wobei Entfernen (140) des ersten Objektes mit der zu der Signatur des zweiten Objektes äquivalenten Signatur das Auffinden (126) eines Objektes aus der Gruppe, die das erste Objekt und das zweite Objekt umfasst, mit einer Verknüpfung umfasst.
  18. Computerlesbares Medium nach Anspruch 17, wobei das Auffinden (126) des Objektes mit der Verknüpfung das Auffinden eines wiederkehrenden Ereignisobjektes umfasst.
  19. Computerlesbares Medium nach Anspruch 17, wobei das Auffinden (126) des Objektes mit der Verknüpfung das Auffinden eines Besprechungsaufforderungs-Objektes umfasst.
  20. Computerlesbares Medium nach Anspruch 17, wobei das Entfernen des ersten Objektes mit der zu der Signatur des zweiten Objektes äquivalenten Signatur das Beibehalten des Objektes mit der Verknüpfung umfasst.
  21. Computerlesbares Medium nach Anspruch 1, wobei das Entfernen (140) des ersten Objektes mit der zu der Signatur des zweiten Objektes äquivalenten Signatur das Verschieben (140) des ersten Objektes in einen zweiten Objektspeicher umfasst.
  22. Verfahren zum Entfernen doppelter Objekte aus einem Objektspeicher, das umfasst: Auffordern (102) eines Benutzers, eine zu vergleichende Eigenschaft (92) auszuwählen; Lesen (114) eines Objektes (90) in einem Objektspeicher; Modifizieren (118) einer speziellen Falleigenschaft (92) des Objektes (90); Berechnen (120) einer Signatur des Objektes (90) auf Basis der von dem Benutzer gewählten Eigenschaft (92); und Entfernen (140) eines ersten Objektes mit einer zu einer Signatur einer zweiten Objektes äquivalenten Signatur.
  23. Verfahren nach Anspruch 22, wobei das Auffordern des Benutzers, die zu vergleichende Eigenschaft auszuwählen, das Auffordern (102) des Benutzers umfasst, einen Objekttyp auszuwählen.
  24. Verfahren nach Anspruch 23, wobei das Auffordern des Benutzers, die zu vergleichende Eigenschaft auszuwählen, des Weiteren das Auffordern (106, 108) des Benutzers umfasst, die zu vergleichende Eigenschaft (92) auf Basis der Benutzerauswahl des Objekttyps auszuwählen.
  25. Verfahren nach Anspruch 22, wobei das Lesen (114) des Objektes das Lesen eines Wertes (98) einer Eigenschaft des Objektes (90) umfasst.
  26. Verfahren nach Anspruch 22, wobei das Lesen (114) des Objektes das Lesen eines Wertes (98) der von dem Benutzer ausgewählten Eigenschaft umfasst.
  27. Verfahren nach Anspruch 22, wobei das Modifizieren (118) der speziellen Falleigenschaft (92) des Objektes (90) das Herleiten eines Wertes (98) für eine kritische Eigenschaft umfasst, der berechnet werden kann.
  28. Verfahren nach Anspruch 22, wobei das Modifizieren (118) der speziellen Falleigenschaft (92) des Objektes (90) das Entfernen von Formatierung aus einer Textfeldeigenschaft umfasst.
  29. Verfahren nach Anspruch 22, wobei das Modifizieren (118) der speziellen Falleigenschaft (92) des Objektes (90) das Alphabetisieren eines Namens einer angehängten Datei innerhalb einer Textfeldeigenschaft umfasst.
  30. Verfahren nach Anspruch 22, wobei das Modifizieren (118) der speziellen Falleigenschaft (92) des Objektes (90) das Alphabetisieren eines Namens einer Kategorie des Objektes umfasst.
  31. Verfahren nach Anspruch 22, wobei das Modifizieren (118) der speziellen Falleigenschaft (92) des Objektes (90) das Entfernen von vorderen Leerstellen einem Texteintrag in einer Eigenschaft umfasst.
  32. Verfahren nach Anspruch 22, wobei das Modifizieren (118) der speziellen Falleigenschaft (92) des Objektes (90) das Entfernen von hinteren Leerstellen aus einem Texteintrag in einer Eigenschaft umfasst.
  33. Verfahren nach Anspruch 22, wobei das Modifizieren (118) der speziellen Falleigenschaft (92) des Objektes (90) das Verwenden einer Namenskennung statt einer Eigenschaftskennung (95) umfasst.
  34. Verfahren nach Anspruch 22, wobei das Modifizieren (118) der speziellen Falleigenschaft (92) des Objektes (90) das Ändern eines Nicht-Null-Wertes einer Boolschen Eigenschaft umfasst.
  35. Verfahren nach Anspruch 22, wobei das Modifizieren (118) der speziellen Falleigenschaft (92) des Objektes (90) das Gewinnen einer kritischen Eigenschaft aus einem Sohn-Objekt umfasst.
  36. Verfahren nach Anspruch 22, wobei das Berechnen (120) der Signatur auf Basis der von dem Benutzer gewählten Eigenschaft (92) das Zuführen eines Wertes (92) der von dem Benutzer gewählten Eigenschaft (92) zu einer CRC-Recheneinrichtung umfasst.
  37. Verfahren nach Anspruch 22, wobei das Berechnen (120) der Signatur auf Basis der von dem Benutzer gewählten Eigenschaft (92) das Zuführen eines Wertes (92) der von dem Benutzer gewählten modifizierten speziellen Falleigenschaft zu einer CRC-Recheneinrichtung umfasst.
  38. Verfahren nach Anspruch 22, wobei das Entfernen (140) des ersten Objektes mit der zu der Signatur des zweiten Objektes äquivalenten Signatur das Auffinden (126) eines Objektes aus der Gruppe, die das erste und das zweite Objekt umfasst, mit einer Verknüpfung umfasst.
  39. Verfahren nach Anspruch 22, wobei das Auffinden (126) des Objektes mit der Verknüpfung das Auffinden eines wiederkehrenden Ereignisobjektes umfasst.
  40. Verfahren nach Anspruch 22, wobei das Auffinden (126) des Objektes mit der Verknüpfung das Auffinden eines Besprechungsaufforderungs-Objektes umfasst.
  41. Verfahren nach Anspruch 22, wobei das Entfernen (140) des ersten Objektes mit der zu der Signatur des zweiten Objektes äquivalenten Signatur das Beibehalten des Objektes mit der Verknüpfung umfasst.
  42. Verfahren nach Anspruch 22, wobei das Entfernen (140) des ersten Objektes mit der zu der Signatur des zweiten Objektes äquivalenten Signatur das Verschieben (140) des ersten Objektes in einen zweiten Objektspeicher umfasst.
DE60004211T 1999-03-19 2000-03-17 Entfernung von duplizierten objekten aus einem objektspeicher Expired - Lifetime DE60004211T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US272481 1999-03-19
US09/272,481 US6901413B1 (en) 1999-03-19 1999-03-19 Removing duplicate objects from an object store
PCT/US2000/007002 WO2000057275A1 (en) 1999-03-19 2000-03-17 Removing duplicate objects from an object store

Publications (2)

Publication Number Publication Date
DE60004211D1 DE60004211D1 (de) 2003-09-04
DE60004211T2 true DE60004211T2 (de) 2004-02-19

Family

ID=23039980

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60004211T Expired - Lifetime DE60004211T2 (de) 1999-03-19 2000-03-17 Entfernung von duplizierten objekten aus einem objektspeicher

Country Status (5)

Country Link
US (1) US6901413B1 (de)
EP (1) EP1181641B1 (de)
AT (1) ATE246375T1 (de)
DE (1) DE60004211T2 (de)
WO (1) WO2000057275A1 (de)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1368739A4 (de) * 2001-02-12 2007-07-04 Emc Corp System und verfahren zur indizierung einzigartiger e-mail-nachrichten und verwendungen dafür
JP2003263317A (ja) * 2002-03-07 2003-09-19 Toshiba Corp 情報処理装置
US7107416B2 (en) 2003-09-08 2006-09-12 International Business Machines Corporation Method, system, and program for implementing retention policies to archive records
US7146388B2 (en) 2003-10-07 2006-12-05 International Business Machines Corporation Method, system, and program for archiving files
US8417673B2 (en) 2003-10-07 2013-04-09 International Business Machines Corporation Method, system, and program for retaining versions of files
US7188127B2 (en) 2003-10-07 2007-03-06 International Business Machines Corporation Method, system, and program for processing a file request
US9799008B2 (en) * 2004-02-27 2017-10-24 International Business Machines Corporation Applying ordered modifications to recurring event instances
US7403949B2 (en) * 2005-08-17 2008-07-22 International Business Machines Corporation Elimination of redundant objects in storage systems
US7401080B2 (en) * 2005-08-17 2008-07-15 Microsoft Corporation Storage reports duplicate file detection
US20080040189A1 (en) * 2006-08-14 2008-02-14 Cisco Technology, Inc. Automatic selection of meeting participants
US7899161B2 (en) 2006-10-11 2011-03-01 Cisco Technology, Inc. Voicemail messaging with dynamic content
US9311633B2 (en) * 2007-06-22 2016-04-12 David Rosenberg Digital file processing for secondary sale
US8621625B1 (en) * 2008-12-23 2013-12-31 Symantec Corporation Methods and systems for detecting infected files
US8806477B2 (en) * 2009-10-30 2014-08-12 Red Hat, Inc. Space efficient software package management
US8539028B2 (en) * 2010-11-05 2013-09-17 Logmein, Inc. Network-based quick connect meeting service
US20160350175A1 (en) * 2014-04-30 2016-12-01 Hewlett Packard Enterprise Development Lp Duplicate data using cyclic redundancy check
US20160019490A1 (en) * 2014-07-18 2016-01-21 Volometrix, Inc. Derivation of operating entities and metrics from collaboration data obtained from computing systems
WO2016048331A1 (en) 2014-09-25 2016-03-31 Hewlett Packard Enterprise Development Lp Storage of a data chunk with a colliding fingerprint
FR3035239B1 (fr) * 2015-04-17 2017-03-31 Morpho Procede de gestion d'une memoire de carte electronique
US10417202B2 (en) 2016-12-21 2019-09-17 Hewlett Packard Enterprise Development Lp Storage system deduplication
JPWO2022038873A1 (de) * 2020-08-21 2022-02-24

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3878384A (en) 1971-09-03 1975-04-15 John Kent Bowker General purpose designator for designating the class to which an unknown event belongs among a plurality of possible classes of events
US5479654A (en) 1990-04-26 1995-12-26 Squibb Data Systems, Inc. Apparatus and method for reconstructing a file from a difference signature and an original file
US5473691A (en) * 1993-11-05 1995-12-05 Microsoft Corporation System and method for computer data transmission
US5684990A (en) 1995-01-11 1997-11-04 Puma Technology, Inc. Synchronization of disparate databases
US6141664A (en) 1996-11-13 2000-10-31 Puma Technology, Inc. Synchronization of databases with date range
US6044381A (en) 1997-09-11 2000-03-28 Puma Technology, Inc. Using distributed history files in synchronizing databases
AU6151598A (en) * 1997-02-11 1998-08-26 Connected Corporation File comparison for data backup and file synchronization
US6125369A (en) 1997-10-02 2000-09-26 Microsoft Corporation Continuous object sychronization between object stores on different computers
US6052735A (en) * 1997-10-24 2000-04-18 Microsoft Corporation Electronic mail object synchronization between a desktop computer and mobile device
US6263362B1 (en) * 1998-09-01 2001-07-17 Bigfix, Inc. Inspector for computed relevance messaging

Also Published As

Publication number Publication date
DE60004211D1 (de) 2003-09-04
WO2000057275A1 (en) 2000-09-28
EP1181641B1 (de) 2003-07-30
US6901413B1 (en) 2005-05-31
EP1181641A1 (de) 2002-02-27
ATE246375T1 (de) 2003-08-15

Similar Documents

Publication Publication Date Title
DE60004211T2 (de) Entfernung von duplizierten objekten aus einem objektspeicher
DE60211489T2 (de) System und Verfahren zur Bearbeitung von in mehreren Nachrichtenspeichern gespeicherten Nachrichten
DE3885451T2 (de) Elektronisches Post-Folgesystem.
DE10064627B4 (de) Verfahren und System für die Verarbeitung von E-Mail-Nachrichten in einem Datenübertragungssystem
DE602005005312T2 (de) Verfahren und System zur Verwaltung elektronischer Nachrichten
DE102008015662B4 (de) Beseitigung von Daten
DE3889173T2 (de) Verfahren und Vorrichtung zur Zirkulation von elektronischer Post.
DE60026244T2 (de) Thread-basierte Email bei dem eine Kopie und serverspezifische Verteilerlisten versendet werden
DE3908459C2 (de) Netzwerkserver
DE10346897B4 (de) System und Verfahren zum Zuordnen einer Anhangsdatei einer E-Mail zu einer separaten Speicherposition
EP1605649A1 (de) Verfahren und Vorrichtung zum Verwalten von elektronischen Nachrichten
DE68921715T2 (de) Konferenzverbindungssystem.
DE19607149A1 (de) Verfahren zum rechnergestützten Abgleich mehrerer, in mindestens einem Rechner gespeicherten Dateikopien einer gespeicherten Datei
DE10311082B4 (de) Elektronikdokumentmanagementverfahren
DE19919146A1 (de) Hochleistungs-Nachrichtenspeicher
DE10255128A1 (de) Computer-implementierte PDF-Dokumentenverwaltung
DE69027524T2 (de) Verfahren und System zur automatischen Steuerung der Verteilung von Datenobjekten
DE60132537T2 (de) System und Verfahren zur Verwaltung von Nachrichten
DE10337144A1 (de) Verfahren zur Aufzeichnung von Ereignis-Logs
DE102005051843A1 (de) System und Verfahren zum Verwalten von Fähigkeiten in einem Netzwerk
DE602004002777T2 (de) Vorrichtung zur Behandlung von E-Mails in einer Mehrbenutzer-Umgebung
DE60114949T2 (de) Leitweglenkung
US8145647B2 (en) System, method and computer program product for electronically responding to requests for product related data
DE19741238C2 (de) System und Verfahren zur Filterung elektronischer Post
EP1414591B1 (de) Verfahren zum automatischen erzeugen von aktuellen verteilreihenfolgedaten

Legal Events

Date Code Title Description
8364 No opposition during term of opposition