Gebiet der Erfindung
[0001] Die Erfindung betrifft Verfahren zum Benachrichtigen von Benutzern über ein Eintreffen eines Dokumentes sowie ein computerlesbares Speichermedium mit Prozessoranweisungen, um Benutzer von einem Eintreffen eines Dokumentes zu benachrichtigen.
Stand der Technik
[0002] Unternehmen aus dem Bereich der Finanzforschung, wie etwa Maklerfirmen und Anlagebanken, geben für das Erstellen, Drucken und Versenden von Tausenden von aufwendig illustrierten Forschungsberichten für Anleger (zum Beispiel Kunden, überörtliche Verkaufsbüros, Anlageberater, Makler, Portfolioverwalter usw.) grosse Geldsummen aus. Zur Kostenreduzierung können Forschungsunternehmen das Versenden dieser Berichte auf elektronischem Wege vornehmen, also von Computer zu Computer. Der elektronische Vertrieb ist, verglichen mit Verfahren, bei denen ein Ausdruck verwendet wird, kostengünstiger. Kommunikationsnetze, wie etwa das Internet, ermöglichen eine weltweite Distribution an einen grossen Personenkreis.
[0003] Die US 5 802 518 von Karaev et al. und die US 5 819 271 von Mahoney et al., die an dieser Stelle ausdrücklich durch Bezugnahme mit einbezogen werden, beschreiben elektronische Informationsdistributionssysteme, die es Fernnutzern erlauben, Information, die in elektronischer Form in einem Zentralserver, einem sogenannten Quellen-Server, gespeichert ist, zu empfangen, auf diese zuzugreifen und abzufragen. Die Benutzer kommunizieren mit dem Quellen-Server zum Beispiel über das Internet. Der Quellen-Server ist über einen Webserver mit dem Internet gekoppelt und enthält eine Mehrzahl von Datenbanken mit Information, die in elektronischer Form gespeichert ist, oder ist mit einer Mehrzahl von Datenbanken gekoppelt.
[0004] Der Quellen-Server ist mit einem oder mit mehreren entfernt angeordneten Beitrags-Arbeitsstationen verbunden. Die in dem Quellen-Server gespeicherte Information wird von den Beitrags-Arbeitsstationen in elektronischer Form empfangen. Bei der von den Beitrags-Arbeitsstationen empfangenen Information handelt es sich um Dateien mit einem oder mehreren Dokumenten. Diese Dokumente enthalten typischerweise Text, Daten, Diagramme, Graphiken, Tabellen und dergleichen oder eine Kombination davon, und sie können viele Formate aufweisen. Jegliche Information, die in digitaler Form gespeichert werden kann, wie etwa Fotos, Videos, Tonaufnahmen usw., können in den Dateien, die von den Beitrags-Arbeitsstationen empfangen werden, gespeichert sein. Die Dateien, die von den Beitrags-Arbeitsstationen empfangen werden, werden an einer zentralen Stelle in ein vorbestimmtes Format umgesetzt, zum Beispiel in ein Format für ausdruckbare Dokumente, oder ein allgemein bekanntes Betrachtungsformat, wie etwa das PDF-Format, und anschliessend dem Quellen-Server bereitgestellt. Jedes Dokument, das dem Quellen-Server zur Verfügung gestellt wird, kann ein Dokumentenprofil beinhalten, das Information enthält, die gemäss vordefinierten Feldern, die sich auf das Dokument beziehen, organisiert ist.
[0005] Jeder Benutzer verfügt über einen Benutzercomputer, wie etwa einen Personal Computer mit einem Intel Pentium-Prozessor und einem Modem. Der Benutzercomputer kann mit einer lokalen Speichervorrichtung ausgestattet sein, obwohl dies nicht zwingend erforderlich ist. Ein Beispiel für einen Computer ohne eine lokale Speichervorrichtung kann zum Beispiel ein Netzcomputer, ein «thin client» usw. sein. Der Benutzer kann zum Beispiel über das Internet, das Intranet, das Extranet und/oder einen Einwahlzugang den Computer mit dem Quellen-Server verbinden.
[0006] Der Quellen-Server kann den Benutzer mit einer Liste von neuen Dokumenten beliefern, die in letzter Zeit von dem Quellen-Server empfangen wurden, und zu deren Zugang der Benutzer autorisiert ist. Der Benutzer kann ebenfalls eine Liste von Dokumenten anfordern, die bestimmten nutzerspezifischen Suchkriterien entsprechen. Eine Liste der Dokumente, die mit den Suchkriterien übereinstimmen, und für deren Zugang der Benutzer autorisiert ist, wird dem Benutzercomputer zur Verfügung gestellt. Der Benutzer kann dann Dokumente von dieser Liste auswählen, anfordern und einsehen.
[0007] Der Webserver ist mit mindestens zwei im Quellen-Server enthaltenen Datenbanksuchmaschinen gekoppelt. Mindestens eine Suchmaschine führt mindestens eine Volltextsuche in Textdokumenten durch. Mindestens eine andere Suchmaschine führt mindestens eine Suche in vordefinierten Feldern von Informationen durch. Wenn dem Webserver eine Suchabfrage von dem Benutzer vorliegt, wird bestimmt, was für eine Art von Suche angefordert ist, und eine entsprechend Abfrage (zum Beispiel Volltext, Suche in vordefinierten Feldern) wird formuliert und an die entsprechende Suchmaschine gegeben. Die Suchmaschine gibt einen Satz von Ergebnissen an den Webserver zurück. Typischerweise enthält der Satz von Ergebnissen eine Liste von Dokumenten, die die Abfrage erfüllen und zu deren Zugang der Benutzer autorisiert ist.
[0008] Wenn ein externes Ereignis auftritt, also ein «Nachrichten»-Ereignis, müssen die Benutzer (zum Beispiel Anleger) sofort darüber in Kenntnis gesetzt werden, um richtig auf die Nachrichten reagieren zu können. Die in dem Karaev-Patent ́518 und dem Mahoney Patent ́271 beschriebenen Systeme setzen die Benutzer von Ereignissen in Kenntnis, indem ein «gespeicherte Abfrage»-Verfahren verwendet wird. Das «gespeicherte Abfragen»-Verfahren speichert zuerst eine Benutzerabfrage und führt dann periodisch die «gespeicherte Abfrage» durch. Ein eingehendes Dokument wird mit jedem vorhandenen Benutzerprofil verglichen. Jedes Benutzerprofil ist kennzeichnend für zum Beispiel den Dokumententyp oder die Nachrichten, an denen der Benutzer interessiert ist. Dieser Lösungsansatz ist jedoch zeitaufwendig. Entsprechend sind neue Verfahren und Systeme gefragt, um einem Benutzer basierend auf einer Benutzerabfrage alternative Wege der Bereitstellung von Daten zu bieten.
Zusammenfassung der Erfindung
[0009] Die Erfindung betrifft ein Verfahren, um Benutzer über das Eintreffen eines Dokuments in Kenntnis zu setzen. Dabei wird von jedem jeweiligen Benutzer eine entsprechende Abfrage empfangen. Jede entsprechende Abfrage enthält mindestens einen Abfrageterm und mindestens eine Abfragebedingung. Für jede jeweilige Abfrage wird jeder mindestens ein Abfrageterm in einer Datenbank nur gespeichert, wenn ein Abfrageterm in Bezug zu anderen Abfragetermen, die in der Datenbank gespeichert sind, eindeutig ist. Das Dokument, welches einen Dokumententerm enthält, der mit dem Dokument assoziiert ist, wird empfangen. Der Dokumententerm wird mit den gespeicherten Abfragetermen verglichen, und für jede jeweilige Abfrage wird als Funktion des Vergleichs zwischen dem Dokumententerm (bzw. den Dokumententermen) und dem mindestens einen gespeicherten Abfrageterm bestimmt, ob die mindestens eine Abfragebedingung der jeweiligen Abfrage erfüllt ist. Wenn alle Abfragebedingungen der jeweiligen Abfrage erfüllt sind, wird der Benutzer über den Eingang des Dokuments in Kenntnis gesetzt.
[0010] Ferner betrifft die Erfindung ein computerlesbares Speichermedium, im Folgenden auch Speichervorrichtung genannt, das mindestens einen Satz von Anweisungen speichert, wobei der Satz von Anweisungen von einem Prozessor ausgeführt werden kann, um Benutzer von einem Eintreffen eines Dokuments zu benachrichtigen. Der Satz von Anweisungen führt folgende Schritte durch:
Empfangen einer jeweiligen Abfrage von jedem jeweiligen Benutzer, wobei die jeweilige Abfrage mindestens einen Abfrageterm und mindestens eine Abfragebedingung enthält;
Speichern jedes mindestens einen Abfrageterms für jede jeweilige Abfrage in einer Datenbank, wenn der eine Abfrageterm in Bezug zu anderen Abfragetermen, die in der Datenbank gespeichert sind, eindeutig ist;
Empfangen eines Dokuments, wobei ein Dokumententerm mit dem Dokument assoziiert ist;
Vergleichen des Dokumententerms mit den gespeicherten Abfragetermen;
Bestimmen, ob alle Abfragebedingungen der jeweiligen Abfrage als Funktion des Vergleichsschritts erfüllt sind, für jede jeweilige Abfrage; und
Benachrichtigen des jeweiligen Benutzers von dem Eintreffen des Dokuments für jede jeweilige Abfrage, wenn alle Abfragebedingungen der jeweiligen Abfrage erfüllt sind.
Figurenkurzbeschreibung
[0011]
<tb>Fig. 1<sep>zeigt ein Ausführungsbeispiel einer Anordnung mit einem computerlesbaren Speichermedium gemäss der Erfindung.
<tb>Fig. 2<sep>zeit ein alternatives Ausführungsbeispiel der Anordnung mit einem computerlesbaren Speichermedium gemäss der Erfindung.
<tb>Fig. 3A<sep>zeigt ein Ausführungsbeispiel einer Dokumentenmanagementdatenbank;
<tb>Fig. 3B<sep>zeigt einen Dokumententerm der in Fig. 3Agezeigten Dokumentenmanagementdatenbank.
<tb>Fig. 4A<sep>zeigt ein Ausführungsbeispiel einer Benutzerprofildatenbank.
<tb>Fig. 4B<sep>zeigt einen Abfrageterm der in Fig. 4Agezeigten Benutzerprofildatenbank.
<tb>Fig. 5A<sep>zeigt ein Ausführungsbeispiel einer endlichen Automatendatenbank.
<tb>Fig. 5B<sep>zeigt einen FAD-Term der in Fig. 5Agezeigten endlichen Automatendatenbank.
<tb>Fig. 6<sep>zeigt ein Ausführungsbeispiel eines Verfahrens gemäss der Erfindung.
<tb>Fig. 7<sep>zeigt ein Ausführungsbeispiel eines Verfahrens zur Erzeugung der endlichen Automatendatenbank gemäss der Erfindung.
<tb>Fig. 8<sep>zeigt ein Ausführungsbeispiel eines Verfahrens zur Optimierung der Leistungsfähigkeit des Systems.
<tb>Fig. 9<sep>zeigt ein alternatives Ausführungsbeispiel der Anordnung mit einem computerlesbaren Speichermedium gemäss der Erfindung.
Detaillierte Beschreibung
Gesamtübersicht
[0012] Fig. 1 zeigt eine Gesamtdarstellung einer Anordnung mit einem computerlesbaren Speichermedium gemäss einem Ausführungsbeispiel der Erfindung. Die Anordnung, welche im Folgenden mit System 1 bezeichnet wird, enthält einen Zentralserver 2, der mit einem Benutzercomputer 10 und einer Beitrags-Arbeitsstation 15 über ein Netz 12 verbunden ist. Das Kommunikationsnetz 12 kann zum Beispiel das Internet, das Intranet, das Extranet, ein herkömmliches Telefonnetz, ein drahtloses Netz, ein LAN oder ein WAN, ein virtuelles Netz usw. sein.
[0013] Über die Beitrags-Arbeitsstation werden Dokumente (zum Beispiel Daten, Forschungsberichte, etc.) dem Zentralserver 2 über das Netz 12 zur Verfügung gestellt (also verteilt). Der Zentralserver 2 empfängt und speichert die Dokumente. Falls ein neu empfangenes Dokument für den Benutzer am Benutzercomputer 10 von Interesse ist, (was durch vordefinierte Kriterien bestimmt wird) und der Benutzer Zugangsberechtigung hat, setzt gemäss der Erfindung der Zentralserver 2 den Benutzer von dem Vorhandensein des Dokuments auf dem Zentralserver 2 gemäss einer vorbestimmten Benachrichtigungsprozedur in Kenntnis. Sobald der Benutzer die Benachrichtigung erhalten hat, kann er auf den Zentralserver 2 über das Netz 12 zugreifen und das spezielle Dokument erhalten.
[0014] Der hier verwendete Begriff «Benutzer» umfasst alle Endbenutzer, die zum Empfang und zum Zugriff auf Information (und/oder zur Benachrichtigung) gemäss der Erfindung berechtigt sind, wie etwa Kunden von Makler- und Anlagebanken, Angestellte von Makler- und Anlagebanken, Anlageberater, Makler, Bankiers, Portfolio- und Fondsmanager, Journalisten, Analysten, Wirtschaftsfachleute, Universitätsprofessoren, MBA-Studenten usw. Natürlich ist die Erfindung nicht auf den Einsatz in Systemen für die Finanzforschung beschränkt. Folglich kann ein Benutzer irgendein beliebiger Endbenutzer mit Zugriffsberechtigung sein. Ebenso ist zu bemerken, dass das Dokument einer Rechenvorrichtung, einem Handelsprogramm, einer Nachrichtenagentur, einer Bank, einer Behördenstelle usw. zur Verfügung gestellt werden kann.
[0015] Der Zentralserver 2 des Systems 1 kann mindestens eine Speichervorrichtung 85, einen Prozessor 80 (einschliesslich einen Speicher und andere Peripherievorrichtungen) und eine Kommunikationsanordnung 87 (zum Beispiel ein Modem, eine Netzwerkkarte usw.) enthalten. Die Speichervorrichtung 85 kann eine Dokumentenmanagementdatenbank («DMD») 200, eine Benutzerprofildatenbank («UPD») 220 und eine endliche Automatendatenbank («FAD») 250 enthalten, die nachfolgend genauer beschrieben werden.
Dokumentenmanagementdatenbank
[0016] Die Dokumentendatenbank oder die DMD 200 speichert Dokumente und dokumentenbezogene Information, die von der Beitrags-Arbeitsstation 15 über das Netz 12 erhalten wird. Wie in Fig. 3A gezeigt, speichert die DMD 200 insbesondere eine Mehrzahl von Dokumentendatensätzen 201. Jeder Dokumentendatensatz 201 der DMD 200 kann zum Beispiel ein Referenzfeld 205, ein Dokumentenfeld 210 und einen strukturierten Datensatz 215 enthalten. Das Referenzfeld 205 enthält eine eindeutige Dokumentenreferenznummer, die jedem Dokument zugewiesen ist.
[0017] Das Dokumentenfeld 210 enthält das eigentliche Dokument. Das Dokument kann irgendwelche vordefinierten Daten enthalten, zum Beispiel Nachrichten, Meldungen, Forschungsberichte, Gesprächsnotizen usw. Das Dokument kann Text, Daten, Diagramme, Graphiken, Tabellen und dergleichen enthalten und Kombinationen davon, und es kann in irgendeinem Format vorliegen. Dabei kann jegliche Information, die in digitaler Form gespeichert werden kann, wie etwa Fotos, Videos, Tonaufzeichnungen, usw. an die Dokumente angehängt sein. Falls das Dokument nicht richtig formatiert ist, kann der Zentralserver 2 das Dokument in ein vorbestimmtes Format umsetzen, zum Beispiel in ein Format für ausdruckbare Dokumente, oder ein allgemein bekanntes Betrachtungsformat, wie etwa das PDF-Format.
[0018] Jedes Dokument, das dem Zentralserver 2 übermittelt wird, kann ein Dokumentenprofil enthalten, das in dem strukturierten Datensatz 215 gespeichert wird. Das Dokumentenprofil enthält Information, die gemäss mindestens einem der Dokumententerme 300 organisiert ist. Fig. 3Bzeigt ein Ausführungsbeispiel des Dokumententerms 300, der zum Beispiel zwei Felder enthalten kann, nämlich ein erstes Dokumentenfeld 305 und ein zweites Dokumentenfeld 310. Das erste Dokumentenfeld 305 kann ein vordefiniertes Feld enthalten, während das zweite Dokumentenfeld 310 ein Schlüsselwort enthalten kann, das aus dem Dokument gewonnen wird. Falls zum Beispiel das entsprechende Dokument IBM Corp. erwähnt, kann das vordefinierte Feld «Firma» enthalten, und das Schlüsselwort kann «IBM» lauten. Der Dokumententerm 300 kann z.B. wie folgt ausgedrückt werden: «(Firma(IBM))», «Firma=IBM», oder «Firma; IBM».
[0019] Das vordefinierte Feld kann zum Beispiel ein Aktiensymbol, ein Firmenname, eine bestimmte Industrie, ein geographischer Ort, ein Datum, ein Dokumententyp, ein Dokumententext, usw. sein. Einem Fachmann auf diesem Gebiet ist klar, dass die oben genannte Liste nur beispielhaft ist und dass andere Felder vorgesehen werden können. Die Verfügbarkeit der Felder kann zum Beispiel von dem Dokumententyp abhängen und sofort gemäss einer vorbestimmten Prozedur eingestellt werden.
[0020] Die Erfindung ist nicht auf die vordefinierten Felder beschränkt. Weitere vordefinierte Felder können für den Benutzer verfügbar sein. Die weiteren vordefinierten Felder können einen bestimmten Text in irgendeinem Bereich des Dokuments enthalten. Folglich kann der Zentralserver 2 das mitgelieferte Dokumentenprofil modifizieren, um weitere vordefinierte Felder zu enthalten, die nicht von der Beitrags-Arbeitsstation 15 verwendet werden, die das Dokumentenprofil bereitstellt. Falls darüber hinaus das an den Zentralserver 2 gelieferte Dokument überhaupt kein Dokumentenprofil aufweist, kann der Zentralserver 2 ein Dokumentenprofil durch Parsing des vordefinierten Feldes bzw. Felder und des weiteren vordefinierten Feldes bzw. Felder und des entsprechenden Schlüsselwortes bzw. Schlüsselwörter von dem Dokument erstellen.
[0021] Wie in Fig. 3A gezeigt, kann der Dokumentendatensatz 201 zum Beispiel
«101094; IBM. wpd; Symbol (IBM), Industrie(Hardware)» enthalten.
[0022] Der Dokumentendatensatz 201 zeigt an, dass die Dokumentenreferenznummer 101094 ist, und dass das Dokument in der Speichervorrichtung 85 als Datei IBM.wpd gespeichert ist. Ferner zeigt der Dokumentendatensatz 201 an, dass das Dokument die Dokumententerme 300 «Symbol(IBM), Industrie(Hardware)» enthält.
Benutzerprofildatenbank
[0023] Die Speichervorrichtung 85 speichert ebenfalls die Benutzerprofildatenbank oder UPD. Die UPD enthält spezielle Information hinsichtlich jedes Benutzers. Fig. 4Azeigt ein Ausführungsbeispiel der UPD 220, die eine Mehrzahl von Benutzerdatensätzen 221 enthält. Jeder Benutzerdatensatz 221 enthält zum Beispiel vier Felder, nämlich ein Benutzeridentifikationsfeld 225, ein Abfrageidentifikationsfeld 228, ein Abfragefeld 230 und ein Benachrichtigungsfeld 235.
[0024] Das Benutzeridentifikationsfeld 225 kann eine vorbestimmte Information zur Identifikation des Benutzers enthalten. Derartige Information kann zum Beispiel eine eindeutige Benutzeridentifikation und ein entsprechendes Passwort umfassen. Darüber hinaus kann es auch die Zugangsberechtigungen des Benutzers enthalten. Fig. 4Azeigt ein Beispiel von zwei Benutzerdatensätzen, wobei einer mit dem Benutzer «XYZ» und der andere mit dem Benutzer «ABS» assoziiert ist.
[0025] Jeder Benutzerdatensatz kann «Benutzerabfragen» enthalten, die in Form von logischen Ausdrücken gesetzt werden, zum Beispiel Kriterien für das Auswählen von Dokumenten, für die der Benutzer eine Benachrichtigung erhalten möchte. Zum Beispiel kann der Benutzer XYZ eine Benachrichtigung für alle neu eingegangenen Dokumente wünschen, die mit dem Tickersymbol IBM und Hardwareindustrie assoziiert sind. Entsprechend würde ein Abfragefeld 230, das mit dem Benutzerdatensatz des Benutzers XYZ verbunden ist, zum Beispiel einen Logikausdruck «Symbol(IBM) UND Industrie (Hardware)» enthalten.
[0026] In diesem Fall kann «Symbol» ein vordefinierter Dokumententerm sein. Zum Beispiel kann ein Verteiler eines Dokuments in einem Dokumentenprofil spezifizieren, dass das Tickersymbol «IBM» mit dem Dokument in Zusammenhang steht. Die Abfragen in den Benutzerdatensätzen sind jedoch nicht auf die vordefinierten Dokumententerme beschränkt. Zum Beispiel kann ein anderer Logikausdruck in dem Abfragefeld 230 «Text(IBM)» sein, der anzeigt, dass der Benutzer daran interessiert ist, eine Benachrichtigung über jedes Dokument zu erhalten, das «IBM» irgendwo in dem Dokument enthält.
[0027] Die Benutzerabfragen können mit einem eindeutigen Identifizierer markiert sein. Wie in Fig. 4Agezeigt, ist zum Beispiel die Abfrage des Benutzers XYZ mit «10191» markiert, was in einem Abfrageidentifikationsfeld 228 des Benutzerdatensatzes des Benutzers XYZ gespeichert sein kann.
[0028] Ein Benutzerdatensatz kann verschiedene Benutzerabfragen für jeden Benutzer enthalten. Wie in Fig. 4Agezeigt, enthält zum Beispiel der Benutzerdatensatz für den Benutzer ABS drei Abfragen, die jeweils eine eindeutige Identifikationsnummer aufweisen. Die Abfrage 67190 enthält den Ausdruck «Symbol(IBM)», die Abfrage 2698, den Ausdruck «Symbol(APPL)» und die Abfrage 110676 den Ausdruck «Symbol(ZSE)».
[0029] Das Benachrichtigungsfeld 235 enthält Daten, die es einem Benutzer ermöglichen ein bestimmtes Benachrichtigungsverfahren zu spezifizieren, das ausgeführt werden soll, um den Benutzer zu benachrichtigen, wenn das Dokument, das von Interesse ist, von dem Zentralserver 2 empfangen wird. Der Benutzer kann zum Beispiel über E-Mail, Fax, Telefon, drahtlose Kommunikation etc. benachrichtigt werden. Der Benutzer kann eine bestimmte Benachrichtigungsnachricht für eine bestimmte Abfrage spezifizieren. Die Benachrichtigungsnachricht kann zum Beispiel einen Dokumententitel, die Abfrageterme 320, das Datum, die Dokumentenreferenznummer etc. enthalten.
[0030] Das Benachrichtigungsverfahren kann bei Vorliegen einer bestimmten Bedingung geändert werden. Falls zum Beispiel das Dokument eine bestimmte dringende Information enthält, kann der Benutzer über ein Fax benachrichtigt werden, und im Übrigen durch eine E-Mail. Darüber hinaus kann der Benutzer in Echtzeit periodisch und/oder gemäss einem vorbestimmten Zeitplan benachrichtigt werden. Ausserdem kann die Form der Benachrichtigung so einfach sein wie die Bereitstellung einer Dokumentennummer und einer Ankunftszeit des Dokuments, oder durch Bereitstellen einer Kopie des Dokuments. Die «Timing»-Information der Benachrichtigung und die «Form»-Information der Benachrichtigung können z.B. in der UPD 220 im Zusammenhang mit jedem Benutzerdatensatz gespeichert sein, oder in einer separaten Datei oder Datenbank.
[0031] Wie in Fig. 4A gezeigt, möchte der Benutzer XYZ von den Dokumenten, die die Abfrage «10191» erfüllen, bevorzugt über eine E-Mail-Nachricht an die Adresse «Benutzerxyz@XYZ.com» benachrichtigt werden. Darüber hinaus zieht es der Benutzer ABS vor, von Dokumenten, die die Abfrage «67190» erfüllen, über einen Pager (Telefonnummer 917-209-8888) in Kenntnis gesetzt zu werden. Der Benutzer ABS möchte ebenfalls über Dokumente, die die Abfrage «2698» oder die Abfrage «110676» erfüllen, mittels Faxübertragung (Faxnummer 212-425-5288) benachrichtigt werden.
[0032] Die UPD 220 kann vom Benutzer aktualisiert werden. Der Benutzer kann über das Netz 12 auf den Zentralserver 2 zugreifen. Nach zum Beispiel einer entsprechenden Identifikation und einem Passwort kann der Zentralserver 2 dem Benutzer erlauben, den Benutzerdatensatz 221, der in Zusammenhang mit dem Benutzer steht (oder anderen Benutzern, falls der Benutzer zum Beispiel ein Systemadministrator ist), zu erzeugen und zu aktualisieren.
[0033] Wie oben erwähnt, liegen die Benutzerabfragen in der Form von Logikausdrücken vor. Fig. 4Bzeigt, dass der Abfrageterm 320 eigentlich zum Beispiel drei Teile enthalten kann, nämlich ein erstes Abfragefeld 325, ein zweites Abfragefeld 330 und ein drittes Abfragefeld 335. Das erste Abfragefeld 325 kann ein vordefiniertes Feld enthalten (oder zum Beispiel einen «nicht vordefiniertes Feld»-Term, wie etwa «Text»), wie oben beschrieben, und das zweite Abfragefeld 330 kann ein bestimmtes Schlüsselwort enthalten. Falls der Logikausdruck mehr als einen Abfrageterm 320 enthält, können die Abfrageterme 320 kombiniert werden, indem mindestens ein logischer Operator verwendet wird (zum Beispiel UND, ODER, NOT usw.).
[0034] Das dritte Abfragefeld 335 kann «1» oder «0» enthalten, wobei «1» gleichbedeutend mit «wahr» und «0» gleichbedeutend mit «falsch» ist. Als Vorgabe sind alle Abfrageterme 320 der UPD 230 auf «0» gesetzt. Zum Beispiel kann der Abfrageterm 320 «Symbol; IBM; 0» enthalten, was bedeutet, dass der Benutzer nach einem bestimmten Dokument sucht, welches ein Symbol IBM enthält, und dass dieser Abfrageterm nicht in dem durchsuchten Dokument gefunden wurde.
Endliche Automatendatenbank
[0035] Die Speichervorrichtung 85 enthält auch die endliche Automatendatenbank («FAD») 250. Die FAD 250 liefert ein Mittel, mit dem das System schnell und effizient bestimmen kann, welcher Benutzer von einem neu empfangenen Dokument benachrichtigt werden soll. Die FAD 250 kombiniert zum Beispiel Suchterme für alle Benutzer (oder eine Untermenge davon), so dass neu empfangene Dokumente schnell verarbeitet werden können.
[0036] Wie in Fig. 5A gezeigt, enthält die FAD 250 eine Mehrzahl von FAD-Datensätzen 251. Jeder Datensatz 251 enthält zum Beispiel ein Termfeld 255 und ein Zeigerfeld 260. Wie in Fig. 5Bgezeigt, enthält der FAD-Term 350 ein erstes Abfragefeld 325 (vorbestimmtes Feld) und das zweite Abfragefeld 330 (Schlüsselwort) einen Abfrageterm 320. Gemäss dem Ausführungsbeispiel sind keine FAD-Terme 350 doppelt vorhanden. Das Zeigerfeld 260 speichert einen Zeiger auf das Abfrageidentifikationsfeld 228 der entsprechenden Abfrage der UPD 220.
[0037] Fig. 7 zeigt ein Ausführungsbeispiel eines Verfahrens zum Erzeugen der FAD 250 gemäss der Erfindung. Der Benutzer kann die UPD 220 aktualisieren (Schritt 700), indem ein neuer Abfrageterm 320 zugefügt wird und/oder indem ein vorhandener Abfrageterm 320 gelöscht wird. Eine Benutzeränderung des vorhandenen Abfrageterms 320 kann als Löschen des vorhandenen Abfrageterms 320 und Hinzufügen eines neuen Abfrageterms 320 interpretiert werden.
[0038] Falls der Benutzer die vorhandene Abfrage 320 aus der UPD 220 löscht (Schritt 705) bestimmt gemäss dem Ausführungsbeispiel der Erfindung der Zentralserver 2, ob der entsprechende FAD Datensatz 251 der FAD 250 einen einzelnen Zeiger enthält, der in dem Zeigerfeld 260 gespeichert ist (Schritt 715). Falls das Zeigerfeld 260 nur einen Zeiger aufweist, bedeutet dies, dass der entsprechende FAD-Datensatz 251 nur auf den Abfrageterm 320 zeigt, der von dem Benutzer gelöscht wurde. Folglich wird der FAD-Datensatz 251, der zu dem gelöschtem Abfrageterm 320 korrespondiert, gelöscht (Schritt 720). Falls das Zeigerfeld 260 mehr als einen Zeiger enthält, dann wird der Zeiger des gelöschten Abfrageterms 320 von dem Zeigerfeld 260 entfernt (Schritt 725).
[0039] Falls der Benutzer einen neuen Abfrageterm 320 der UPD 220 hinzufügt (Schritt 710), vergleicht der Zentralserver 2 den neuen Abfrageterm 320 mit den Termen, die bereits in der FAD 250 enthalten sind (Schritt 735). Falls der neue Abfrageterm 320 nicht in der FAD 250 existiert, dann wird ein neuer FAD-Datensatz 251 erzeugt (Schritt 740). Der neue FAD-Datensatz 251 würde dann das erste Abfragefeld 325 und das zweite Abfragefeld 330 des neuen Abfrageterms 320 enthalten. Darüber hinaus wird die Abfrageidentifikation des neuen Abfrageterms 320 in dem Zeigerfeld 260 gespeichert.
[0040] Falls jedoch die FAD 250 einen existierenden FAD-Datensatz 251 aufweist, der bereits den neuen Abfrageterm 320 enthält, dann wird kein neuer FAD-Datensatz 251 erzeugt (Schritt 735). Stattdessen wird das Zeigerfeld 260 des bereits vorhandenen FAD-Datensatzes 251 aktualisiert. Speziell würde das Zeigerfeld 260 des vorhandenen FAD-Datensatzes 251 einen zusätzlichen Zeiger enthalten, der auf das Abfrageidentifikationsfeld 228 des neuen Abfrageterms 320 zeigt.
[0041] Die FAD 250 kann sofort aktualisiert werden (indem zum Beispiel der neue Abfrageterm 320 erzeugt wird, und/oder indem der vorhandene Abfrageterm 320 gelöscht wird). Die FAD 250 kann auch periodisch aktualisiert werden oder in einem Stapelverarbeitungsverfahren, das zum Beispiel einmal täglich durchgeführt wird.
Empfang eines neuen Dokuments
[0042] Figur 6 zeigt ein Ausführungsbeispiel eines Verfahrens, das von dem in Fig. 1 gezeigten System 1 durchgeführt wird, sobald ein neues Dokument von einer Beitrags-Arbeitsstation empfangen wird.
[0043] Ein bestimmtes Dokument (welches zum Beispiel bestimmte Information über IBM enthält), wird von der Beitrags-Arbeitsstation 15 durch den Zentralserver 2 (Schritt 600) empfangen. Das Dokument kann über das Netz 12 oder alternativ durch manuelle Lieferung an den Zentralserver 2 empfangen werden.
[0044] Sobald das Dokument empfangen ist, erzeugt der Zentralserver 2 einen neuen Dokumentendatensatz 201 in der DMD 200 (Schritt 605). Speziell wird das Dokument in dem Dokumentenfeld 210 des neuen Dokumentendatensatzes 201 gespeichert. Darüber hinaus wird eine Referenznummer dem Dokument zugewiesen und in dem Referenzfeld 205 des Dokumentendatensatzes 201 gespeichert. Ein Dokumentenprofil kann den Dokumententerm 300 enthalten (zum Beispiel «Symbol(IBM)»), der in dem strukturierten Datensatz 215 gespeichert wird.
[0045] Der Zentralserver 2 setzt als Vorgabe alle dritten Abfragefelder 335 der UPD 220 auf «0». Anschliessend vergleicht der Zentralserver 2 die Dokumententerme 300 (zum Beispiel «Symbol(IBM)») mit den FAD-Termen 350, die in der FAD 250 (wie in Fig. 5A gezeigt) gespeichert sind, um zu bestimmen, ob sie identisch sind (Schritt 615). Der Dokumententerm 300 ist mit dem FAD-Term 350 identisch, wenn der Inhalt des ersten Dokumentenfelds 305 des Dokumententerms 300 identisch mit dem vordefinierten Feld des FAD-Terms 350 ist und wenn der Inhalt des zweiten Dokumentenfelds 310 des Dokumententerms 300 identisch ist mit dem Schlüsselwort des FAD-Terms 350. Der Dokumententerm 300 («Symbol (IBM)») und der FAD-Term 350 («Symbol(IBM)») haben z.B. ein identisches vordefiniertes Feld «Symbol» und ein identisches Schlüsselwort «IBM». Folglich sind der Dokumententerm 300 und der FAD-Term 350 identisch.
[0046] Falls der Dokumententerm 300 mit dem FAD-Term 350 identisch ist, dann wird der Evaluierungsterm (der in dem dritten Abfragefeld 335 des Abfrageterms 320 gespeichert ist), der zu dem FAD-Term 350 korrespondiert, auf «1» gesetzt (Schritt 620). Anderenfalls bleibt der Evaluierungsterm auf «0» (Schritt 625). Speziell wird eine Verbindung zwischen dem Abfrageterm 320 und dem FAD-Term 350 gebildet, indem der Zeiger, der in dem Zeigerfeld 260 des FAD-Terms 350 gespeichert ist, verwendet wird. Dieses Zeigerfeld 260 zeigt an, welche spezielle Abfrage der UPD 220 den mit dem Dokument 300 identischen FAD-Term 350 enthält.
[0047] Sobald der Zentralserver 2 z.B. bestimmt, dass der FAD-Term 350 «Symbol(IBM)» mit dem Dokumententerm 300 «Symbol(IBM)» identisch ist, überprüft der Zentralserver 2 das Zeigerfeld 260 des FAD-Terms 350 «Symbol(IBM)». Das Zeigerfeld 260 (wie in Fig. 5A gezeigt) enthält den Zeiger auf die Abfrage 10191 und die Abfrage 67190 der UPD 200 (wie in Fig. 4Agezeigt). Die entsprechenden Evaluierungsterme «Symbol(IBM)» der Abfragen 10191 und 67190 werden auf «1» gesetzt.
[0048] Sobald alle Dokumententerme 300 überprüft sind, leitet der Zentralserver 2 ein Auswerteverfahren ein. Der Zentralserver 2 überprüft jede Dokumentenabfrage der UPD 220, um zu bestimmen, ob der Logikausdruck der Dokumentenabfrage gültig ist (Schritt 630). Der Zentralserver 2 überprüft zum Beispiel die Abfragen 10191, 67190, 2698 und 110676 der UPD 220 (wie in Fig. 4A gezeigt). In diesem Fall ist nur der Logikausdruck der Abfrage 67190 gültig, da sie nur den Term «Symbol(IBM)» enthält, die mit dem Dokumententerm 300 «Symbol(IBM)» identisch ist. Es wird darauf hingewiesen, dass die Abfrage 10191 nicht gültig ist, da das Dokument keinen Dokumententerm 300 enthält, der mit dem Abfrageterm «Industrie(Hardware)» identisch ist.
[0049] Falls der Logikausdruck der Dokumentenabfrage gültig ist, beginnt der Zentralserver 2 mit einer Benachrichtigungsprozedur (Schritt 635). Insbesondere kann der Zentralserver 2 die Benachrichtigungsprozedur für den Benutzer einleiten, der mit der Anfrage 67190 in Zusammenhang steht.
[0050] Die Benachrichtigungsprozedur benachrichtigt den Benutzer gemäss den Vorlieben des Benutzers, die in dem Benachrichtigungsfeld 235 gespeichert sind, darüber, dass das Dokument, das für den Benutzer von Interesse ist, von dem System 1 empfangen wurde. Der Zentralserver 2 kann eine Benachrichtigungsnachricht senden, die die Benutzeridentifikation, die Dokumentenreferenznummer usw. (oder das Dokument selbst) enthält. Sobald der Benutzer benachrichtigt ist, kann er zum Beispiel über das Netz 12 auf das Dokument zugreifen. Die Benachrichtigung an den Benutzer ABS, von dem die Abfrage 67190 ausgeht, kann über einen Pager 917-209-8888 übertragen werden.
[0051] Es sollte beachtet werden, dass das System 1 eine herkömmliche Warteschlange enthält (zum Beispiel wie sie durch Microsoft Message Queue (MSMQ) generiert wird), um das neue Dokument bzw. die neuen Dokumente, die Abfragen des Benutzers usw. vorübergehend zu speichern. Die Warteschlange(n) wird (werden) verwendet, wenn zum Beispiel die Menge der eingehenden neuen Dokumente grösser ist als ein vorbestimmter Wert. Die Warteschlange kann an irgendeiner vorbestimmten Stelle in dem System 1 verwendet werden, zum Beispiel zwischen dem Netz 12 und dem Zentralserver 2, um die neuen Dokumente zu speichern.
[0052] Ein Vorteil des Systems 1, das die Warteschlange verwendet, liegt darin, dass das System 1 ein optimales Gleichgewicht zwischen seinen Komponenten liefert. Darüber hinaus wird die Zuverlässigkeit und Verlässlichkeit des Systems 1 verbessert, wenn zum Beispiel einige seiner Komponenten zeitweise ausfallen. In dem Fall eines Ausfalls laufen eingehende Dokumente in der Warteschlange auf und können später, wenn die ausgefallene Komponente wieder normal arbeitet, verarbeitet werden.
Alternatives Ausführungsbeispiel
[0053] In einem alternativen Ausführungsbeispiel enthält die Anordnung mit dem computerlesbaren Speichermedium gemäss der Erfindung, welche im Folgenden mit System 1 ́ bezeichnet wird, eine Mehrzahl von Servern. Wie in Fig. 2gezeigt, enthält das System 1 ́ insbesondere einen Zentralserver 2 ́, der mit dem Benutzercomputer 10 und der Beitrags-Arbeitsstation 15 über das Kommunikationsnetz 12 kommuniziert. Der Zentralserver 2 ́ speichert die DMD 200.
[0054] Das System 1 ́ enthält ebenfalls einen Präferenzserver 7, der eine Benutzerbenachrichtigungspräferenzdatenbank («UNPD») speichert, in der Benachrichtigungsprozeduren für den Benutzer enthalten sind. Insbesondere enthält die UNPD das Abfrageidentifikationsfeld 228 und das Benachrichtigungsfeld 235.
[0055] Darüber hinaus enthält das System 1 ́ einen Profilserver 5, der eine Benutzerprofilabfragedatenbank («UPQD») speichert. Die UPQD enthält das Identifikationsfeld 225, das Abfrageidentifikationsfeld 228 und das Benachrichtigungsfeld 235. Der Profilserver 5 erzeugt ebenfalls die FAD 250 als Funktion der UPQD.
[0056] Ein Vergleichsserver 20 des Systems 1 ́ vergleicht die Dokumententerme der DMD 200 mit den FAD-Termen 350 der FAD 250, um Übereinstimmungen festzustellen. Der Vergleichsserver 20 bestimmt, welche logischen Ausdrücke der UPQD gültig sind. Der Benachrichtigungsserver 25 des Systems 1 ́ führt eine entsprechende Benachrichtigungsprozedur der UNPD für die Benutzerabfragen durch, deren logische Ausdrücke wahr sind. Der Benachrichtigungsserver 25 führt die Benachrichtigungsprozedur durch, indem ein E-Mail-Server 30, ein Faxserver 35, und/oder ein Pagerserver 45 verwendet werden.
Ein anderes alternatives Ausführungsbeispiel
[0057] Gemäss einem anderen alternativen Ausführungsbeispiel kann die Anordnung, bzw. das System 1 (und/oder das System 1 ́), ein Verfahren durchführen, das eine Selbstüberwachungsoperation enthält, um dessen Leistungsfähigkeit zu optimieren. Fig. 8 zeigt ein Ausführungsbeispiel des Optimierungsverfahrens. Das System 1 führt die Selbstüberwachungsoperation durch, um zu bestimmen, ob es eine vorbestimmte Lastschwelle erreicht hat (Schritt 800). Die vorbestimmte Lastschwelle kann z.B. als Funktion eines vorbestimmten Dokumentenvolumens, einer vorbestimmten Anzahl von Benutzerabfragen, einer vorbestimmten Menge an Übereinstimmung oder einer vorbestimmten Menge an Benachrichtigungsnachrichten bestimmt werden.
[0058] Falls die vorbestimmte Lastschwelle erreicht ist (Schritt 805), stellt sich das System 1 selbst gemäss einem vorbestimmten Verfahren ein (Schritt 810). Insbesondere kann das System 1 eine Mehrzahl von Spiegelbildsystemen erzeugen, wobei jedes Spiegelbildsystem die DMD 200, die UPD 220 und die FAD 250 enthält. Jedes der Mehrzahl von Spiegelbildsystemen enthält eine identische Kopie der Datenbanken 200, 220, 250 und ist in der Lage, Funktionen durchzuführen, die mit den Funktionen des Systems 1 identisch sind. Die Spiegelbildsysteme können gleichzeitig arbeiten (also parallel). Die Verwendung des Spiegelbildsystems erlaubt eine Optimierung der Übereinstimmungsprüfung in Echtzeit und der Benachrichtigung.
[0059] Falls die vorbestimmte Dokumentenmenge festgestellt wird, kann das System eine vorbestimmte Anzahl von Spiegelbildsystemen erzeugen. Jedes Spiegelbildsystem enthält eine identische Kopie der UPD 220 und FAD 250, jedoch kann die DMD 200 verschieden sein. Die DMD 200 des Systems 1 kann zum Beispiel von den Spiegelbildsystemen geteilt werden.
[0060] Falls die vorbestimmte Anzahl von Benutzeranfragen festgestellt ist, werden in ähnlicher Weise die Benutzerabfragen des Systems 1 auf die Spiegelbildsysteme aufgeteilt. Falls ausserdem die vorbestimmte Anzahl von Übereinstimmungen festgestellt wird, können die DMD 200, die UPD 220 und die FAD 250 des Systems 1 gemäss einem vorbestimmten Verfahren auf die Spiegelbildsysteme aufgeteilt werden. Falls die vorbestimmte Anzahl von Benachrichtigungsnachrichten festgestellt wird, kann die Benachrichtigungspräferenz und/oder die UPD 220 auf die Spiegelbildsysteme aufgeteilt werden.
[0061] Es zu beachten, dass es nicht erforderlich ist, eine bestimmte Datenbank des Systems 1 gleichmässig aufzuteilen. Vielmehr kann die spezielle Datenbank des Systems 1 gemäss einem vorbestimmten Verfahren geteilt werden. Ein Vorteil einer solchen Aufteilung der Datenbank bzw. der Datenbanken liegt in der Optimierung der Leistungsfähigkeit des Systems 1.
[0062] Fig. 9 zeigt ein weiteres Ausführungsbeispiel der Anordnung mit dem computerlesbaren Speichermedium gemäss der Erfindung, welche im Folgenden mit System 1 ́ ́ bezeichnet wird und welche eine einzelne DMD 200 und eine Mehrzahl von UPDs 220 und FADs 250 enthält. Die UPDs 220 und die FADs 250 sind in einem einzelnen Datenbanksatz kombiniert. Jeder Datenbanksatz und/oder ein bestimmter Datenbanksatz können in der Speichervorrichtung 85 des Zentralservers 2 gespeichert sein oder alternativ auf separaten Servern.
[0063] Wie oben bereits erwähnt, kann jeder Datenbanksatz des Systems 1 ́ ́ die UPD 220x und die entsprechende FAD 250x enthalten. Zum Beispiel kann das System 1 ́ ́ den Datenbanksatz A enthalten, der eine UPD 220A und eine entsprechende FAD 250A aufweist, einen Datenbanksatz B, der eine UPD 220B und eine entsprechende FAD 250B aufweist, und einen Datenbanksatz C, der eine UPD 220C und eine entsprechende FAD 250C aufweist. Eine Kombination der UPDs 220A, 220B, 220C kann zum Beispiel äquivalent zu der UPD 220 des Systems 1 sein.
[0064] Das System 1 ́ ́ kann die Mehrzahl von Datenbanksätzen erzeugen, wenn die vorbestimmte Lastschwelle (zum Beispiel wie oben beschrieben) erreicht wird. Wenn beispielsweise die vorher festgelegte Menge von Benutzerabfragen festgestellt wird, kann das System 1 ́ ́ die Datensätze A, B und C erzeugen. Das System 1 ́ ́ teilt/splittet gemäss einem vorbestimmten Verfahren die UPD 220 in die UPDs 220A, 220B und 220C. Die entsprechenden FADs 250A, 250B und 250C werden basierend auf den UPDs 220A, 220B und 220C erzeugt.
[0065] Wenn der Benutzer eine neue Abfrage vornimmt, wird die neue Abfrage einem bestimmten Datenbanksatz in Übereinstimmung mit vorbestimmten Bedingungen (oder einer Bedingung) zugewiesen. Falls die UPD 220A überlastet ist (wenn zum Beispiel ein bestimmter Parameter des Datenbanksatzes A überschritten wird, Benutzerabfragen, Benutzerprofile, gültige Logikausdrücke usw.), dann wird die neue Abfrage der UPD 220B zugewiesen. Anschliessend erzeugt das System 1 ́ ́ die FAD 250B, um die Abfrage gemäss dem oben beschriebenen Verfahren aufzunehmen.
[0066] Wenn alle bestehenden Datenbanksätze A, B und C überlastet sind, kann das System 1 ́ ́ einen zusätzlichen Datenbanksatz D erzeugen, der die gleiche Struktur wie die Datenbanksätze A, B und C aufweist. Der Datenbanksatz D, der eine UPD 220D und eine FAD 250D enthalten kann, kann die neue Abfrage speichern. Darüber hinaus kann eine vorbestimmte Anzahl von bestimmten Abfragen der UPDs 220A, 220B und 220C zur UPD 220D übertragen werden, um die Leistungsfähigkeit des Systems 1 ́ ́ zu optimieren. Das System 1 ́ ́ kann zum Beispiel Abfragen von einem bestimmten Benutzer oder Abfragen, die identische Ausdrücke aufweisen, in einem einzelnen Datenbanksatz speichern.
[0067] Das System 1 ́ ́ kann die Anzahl der Datenbanksätze gemäss der gegenwärtigen Last (zum Beispiel in Echtzeit) des Systems 1 ́ ́ erhöhen. In ähnlicher Weise kann das System 1 ́ ́ die Zahl der Datenbanksätze löschen oder einstellen, falls die Last des bestimmten Datenbanksatzes kleiner ist als eine weitere vorbestimmte Lastschwelle. Falls der Datenbanksatz A z.B. 1000 Abfragen aufweist, der Datenbanksatz B 8000 und der Datenbanksatz C 300, kann das System 1 ́ ́ zum Beispiel derart eingestellt werden, dass jeder der Datenbanksätze A, B, C 1100 Abfragen enthält. Alternativ kann das System 1 ́ ́ den Satz C entfernen und die Abfragen zwischen den Datenbanksätzen A und B aufteilen.
[0068] Ein Vorteil der Erfindung gegenüber herkömmlichen Systemen besteht darin, dass das System 1 Benutzerabfragen parallel anstatt sequentiell abwickeln kann. Die Erfindung erlaubt ein gleichzeitiges «Matching» von Benutzerabfragen. Es ist nützlich für Systeme, die mit einer grossen Menge von bestimmten Dokumenten und Benutzerabfragen umgehen.