-
Gebiet der Erfindung
-
Die
vorliegende Erfindung bezieht sich allgemein auf elektronische Datenverarbeitung
und bezieht sich insbesondere auf ein Verfahren, ein Computerprogrammprodukt
und ein System für
die Datenbankverwaltung.
-
Hintergrund der Erfindung
-
Die
Leute lernen immer noch, wie die im Internet und in Intranets verfügbare Informationsflut
effizient verwendet werden soll. Gegenwärtige Suchmaschinen bringen
sehr umfangreiche Ergebnisse, welche die benötigten Informationen von Stellen
auf der ganzen Welt enthalten können.
Es gibt mehrere Hauptfunktionen in einer Suchmaschine: Sammeln von
Informationen, Indexieren, Klassifizieren und Suchen. Das Sammeln
von Informationen verwendet normalerweise Webcrawler bzw. Netzdurchforstungsprogramme,
um besuchte Seiten an die Indexmaschine zu schicken. Der Indexmechanismus
verwendet normalerweise eine Art invertierter Dateien und gibt,
wenn ihm ein Wort gegebne wird, eine Liste mit Referenzen zurück, die
das Wort enthalten. Die Klassifizierung oder Eingruppierung versucht,
die Seiten gemäß einigen
Attributen, wie etwa Inhalten bzw. Themen, zu klassifizieren. Die
Suchfunktion erlaubt dem Benutzer, inhaltsbasierte Abfragen zu machen
und geordnete Ergebnissätze
zu erhalten.
-
XML
ist eine Metasprache, die dem Benutzer erlaubt, eine Sprache zum
Verfassen strukturierter Dokumente zu definieren. Mit XML kann der
Benutzer alle gewünschten
Tags bzw. Markierungen zum Strukturieren von Dokumenten definieren.
-
Strukturierte
Dokumente beziehen sich auf Dokumente, die verschachtelte Strukturen
haben können. Unter
der Annahme, dass strukturierte Dokumente, insbesondere in Intranets
und Extranets (zwischen Betrieben), wo es wahrscheinlicher ist,
dass Dokumente regelmäßig strukturiert
sind, in Hülle
und Fülle
vorhanden sein werden, besteht ein Bedarf an einer Suchmaschine,
die Dokumentstrukturen versteht und einem Benutzer erlaubt, strukturierte
Abfragen zu machen.
-
US-A-6 240 407 beschreibt
eine Suchmaschine des Stands der Technik für eine große Ablage strukturierter Dokumente
unter Verwendung von Indexierungsmodellen, die strukturierte Abfragen
unterstützen
und die Abfragen ausführen,
ohne auf die strukturierten Dokumente zurückzugreifen. Um den strukturierten
Index zu erzeugen, wird ein strukturiertes Dokument in einem Datenbanksystem
in zumindest ein entsprechendes Element geparst bzw. analysiert,
dann unter Verwendung eines entsprechenden Abstraktionsverfahrens
abstrahiert, um einen Satz abstrahierter Werte zu erhalten. Der
Satz abstrahierter Werte wird zum Ausführen strukturierter Abfragen
in den Index gespeichert.
-
In
dem Artikel „Ich
bin wichtig", veröffentlichet
im „C'T Magazin für Computertechnik", Nr. 23, 11. November
1999, S. 180–186,
beschreibt S. Lennartz ein Indexierungsverfahren, das einem erlaubt,
ein strukturiertes Dokument als ein Ganzes basierend auf Metatags
zu indexieren, wenn eine Indexierungsmaschine auf ein Metatag reagiert,
was nicht für
alle Indexierungsmaschinen der Fall ist.
-
Der
Artikel „A
new method for maintaining semi-structured date described in XML", Kasukawa T. et
al., Comm. Corp. and Signal Proc., 1999 IEEE Pacific Rim Conf. On
Victoria, BC, Kanada, 22.–24.
August, Piscataway, NJ, USA, IEEE, US, 22. August 1999, S. 258–261, offenbart
ein Verfahren zum Pflegen einer Datenbank mit XML-Dokumenten, die
zur Auffindung basierend auf Struktur und Inhalt abgefragt werden
kann.
-
Es
besteht ein anhaltender Bedarf, das intelligente Indexieren strukturierter
Dokumente zu verbessern, um skalierbare Suchmaschinen in einer Web-based-Distributed-Authoring-and-Versioning-Umgebung bereitzustellen.
-
Zusammenfassung der Erfindung
-
Folglich
wird das technische Problem des Indexierens strukturierter Dokumente
in einem Web-based-Distributed-Authoring-and-Versioning-(WebDAV-)Dateisystem
durch ein Verfahren gemäß Anspruch
1 gelöst.
Weitere Ausführungsformen
der Erfindung sind ein Computersystem gemäß Anspruch 11 und ein Computerprogrammprodukt
gemäß Anspruch
7.
-
Wenn
eine Ausführungsform
der Erfindung verwendet wird, in der das WebDAV-Dateisystem in einem relationalen
Datenbankverwaltungssystem (RDBMS) implementiert ist, kann die Ausführungsform
der Erfindung verwendet werden, um strukturierte Dokumente in einem
RDBMS zu indexieren. Ferner führt
eine Ausführungsform
der Erfindung automatisch versioniertes Indexieren (= Indexieren
mehrerer Versionen eines strukturierten Dokuments) durch.
-
Durch
Verwenden verschiedener Prozessoren zum Betreiben des WebDAV-Dateisystems
und zum Indexieren der strukturierten Dokumente werden negative
Effekte, wie etwa eine lange Antwortzeit des WebDAV-Dateisystems auf
eine Benutzeranfrage, verringert.
-
Durch
gleichzeitiges Verwenden mehrerer Indexierungsprozesse zum Indexieren
einer Vielzahl strukturierter Dokumente in dem WebDAV-Dateisystem
wird das Indexieren beschleunigt.
-
Die
Aspekte der Erfindung werden mittels der Elemente und Kombinationen,
auf die in den beigefügten Patentansprüchen besonders
hingewiesen wird, realisiert und erreicht. Es versteht sich, dass
beide, die vorangehende allgemeine Beschreibung und die folgende
detaillierte Beschreibung lediglich beispielhaft und erläuternd sind
und nicht einschränkend
für die
Erfindung, wie beschrieben, sind.
-
Kurze Beschreibung der Zeichnungen
-
1 stellt
ein vereinfachtes Blockdiagramm eines Computernetzwerksystems dar,
das mit einer Ausführungsform
der vorliegenden Erfindung verwendet werden kann;
-
2 stellt
einen Abschnitt eines Speichers eines Computers dar, der Softwarekomponenten
speichert, die in einer Ausführungsform
der Erfindung verwendet werden können;
-
3 stellt
einen Computer zum Indexieren strukturierter Dokumente gemäß einer
alternativen Ausführungsform
der Erfindung dar;
-
4 einen
Sperrmechanismus für
asynchrones Indexieren strukturierter Dokumente gemäß einer Ausführungsform
der Erfindung; und
-
5 stellt
ein vereinfachtes Flussdiagramm eines Verfahrens dar, das mit einer
Ausführungsform
der Erfindung implementiert werden kann.
-
Detaillierte Beschreibung der Erfindung
-
Wo
immer möglich,
werden über
die Zeichnungen hinweg die gleichen Bezugsnummern verwendet, um
auf gleiche oder ähnliche
Teile Bezug zu nehmen. Der einfacheren Erklärung halber wird vor den Patentansprüchen eine
Liste mit Bezügen
bzw. Referenzen bereitgestellt.
-
1 stellt
ein vereinfachtes Blockdiagramm eines beispielhaften Computersystems
dar, das Ausführungsformen
der vorliegenden Erfindung implementiert. Das Computersystem 999 umfasst
den Computer 900 und hat eine Vielzahl weiterer Computer 901, 902 (oder 90q mit
q = 0 ... Q-1, Q beliebige Zahl).
-
Der
Computer 900 kann über
ein Computernetzwerk 990 mit weiteren Computern 901, 902 verbunden werden.
Der Computer 900 umfasst den Prozessor 910, den
Speicher 920, den Bus 930 und wahlweise die Eingabevorrichtung 940 und
die Ausgabevorrichtung 950 (E/A-Vorrichtungen, Benutzerschnittstelle 960).
Wie dargestellt, ist die Erfindung als Computerprogrammprodukt 100 (CPP),
Programmträger 970 und
Programmsignal 980, gemeinschaftlich „Programm", vorhanden.
-
In
Bezug auf den Computer 900 wird auf den Computer 901/902 manchmal
als „entfernter
Computer" Bezug
genommen, der Computer 901/902 ist zum Beispiel
ein Server, ein Router eine Peer-Vorrichtung oder ein anderer üblichen
Netzknoten und umfasst typischerweise viele oder alle der in Bezug
auf den Computer 900 beschriebenen Elemente. Folglich stellen
die Elemente 100 und 910–980 in dem Computer 900 zusammen
auch entsprechende Elemente 10q und 91q–98q (gezeigt
für q =
0) in Computern 90q dar.
-
Der
Computer 900 ist zum Beispiel ein herkömmlicher Personalcomputer (PC),
eine Tischvorrichtung oder eine tragbare Vorrichtung, ein Multiprozessor-Computer,
ein Stiftcomputer, eine Mikroprozessor-basierte oder programmierbare
Unterhaltungs- oder Haushaltselektronik, ein Minicomputer, ein Großrechner,
eine persönliche
mobile Computervorrichtung, ein Mobiltelefon, ein tragbarer oder
ortsfester Personalcomputer, ein Palmtopcomputer oder ähnliches.
-
Der
Prozessor 910 ist zum Beispiel eine zentrale Verarbeitungseinheit
(CPU), eine Mikrocontrollereinheit (MCU), ein digitaler Signalprozessor
(DSP) oder ähnliches.
-
Der
Speicher 920 symbolisiert Elemente, die vorübergehend
oder permanent Daten und Anweisungen speichern. Wenngleich der Speicher 920 in
geeigneter Weise als Teil des Computers 900 dargestellt
ist, kann die Speicherfunktion auch in dem Netzwerk 990,
den Computern 901/902 und in dem Prozessor 910 selbst
(z. B. Cache, Register) oder sonst wo implementiert werden. Der
Speicher 920 kann ein Nur-Lese-Speicher (ROM), ein Direktzugriffspeicher
(RAM) oder ein Speicher mit anderen Zugriffsoptionen sein. Der Speicher 920 ist
physikalisch durch computerlesbare Medien, wie etwa zum Beispiel
(a) magnetische Medien, wie etwa eine Festplatte, eine Diskette
oder eine andere Magnetplatte, ein Band, ein Kassettenband; (b)
optische Medien, wie etwa eine optische Platte (CD-ROM, digitale
Mehrzweckplatte – DVD);
(c) Halbleitermedien, wie etwa DRAM, SRAM, EPROM, EEPROM, Speicherstift
oder durch beliebige andere Medien, wie etwa Papier, implementiert.
-
Wahlweise
ist der Speicher 920 über
verschiedene Medien verteilt. Abschnitte des Speichers 920 können entfernbar
oder nicht entfernbar sein. Zum Lesen von Medien und Schreiben auf
Medien verwendet der Computer 900 Vorrichtungen, die in
der Technik wohlbekannt sind, wie etwa zum Beispiel Plattenlaufwerke, Bandlaufwerke.
-
Der
Speicher 920 speichert Unterstützungsmodule, wie etwa zum
Beispiel ein grundlegendes Eingabe-Ausgabesystem (BIOS), ein Betriebssystem
(BS), eine Programmbibliothek, einen Compiler, einen Interpretierer
und ein Textverarbeitungswerkzeug. Unterstützungsmodule sind kommerziell
erhältlich
und können von
Leuten mit Kenntnissen der Technik auf dem Computer 900 installiert
werden. Der Einfachheit halber sind diese Module nicht dargestellt.
-
Das
CPP 100 umfasst Programmanweisungen – und wahlweise – Daten,
die den Prozessor 910 dazu bringen, Verfahrensschritte
der vorliegenden Erfindung auszuführen. Verfahrensschritte sind
nachstehend detaillierter erklärt.
Mit anderen Worten definiert das CPP 100 den Betrieb des
Computers 900 und seine Interaktion in dem Netzwerksystem 999.
Zum Beispiel und ohne die Absicht, einzuschränken, kann das CPP 100 als
ein Quellcode in einer beliebigen Programmiersprache und als ein
Objektcode („Binärcode") in einer komplilierten
verfügbar
sein. Leute mit Kenntnissen der Technik können das CPP 100 in
Verbindung mit jedem der vorstehenden Unterstützungsmodule (z. B. Compiler,
Interpretierer, Betriebssystem) verwenden.
-
Wenngleich
das CPP 100 als in dem Speicher 920 gespeichert
gezeigt ist, kann das CPP 100 sich woanders befinden. Das
CPP 100 kann auch in dem Träger 970 ausgeführt werden.
-
Der
Träger 970 ist
außerhalb
des Computers 900 dargestellt. Für die Kommunikation des CPP 100 mit dem
Computer 900 wird der Träger 970 in geeigneter
Weise in die Eingabevorrichtung 940 eingesetzt. Der Träger ist
als beliebiges computerlesbares Medium, wie etwa ein Medium, das
vorstehend im Wesentlichen erklärt ist,
implementiert (siehe Speicher 920). Im Allgemeinen ist
der Träger 970 ein
Herstellungsartikel, der ein computerlesbares Medium mit einem computerlesbaren
Programmcodemittel umfasst, das darin ausgeführt ist, um das Verfahren der
vorliegenden Erfindung auszuführen.
Ferner kann das Programmsignal 980 auch das Computerprogramm 100 ausführen. Das
Signal 980 wandert auf dem Netzwerk 990 zu dem
Computer 900.
-
Die
Beschreibung des CPP 100, des Programmträgers 970 und
des Programmsignals 980 in Verbindung mit dem Computer 900 ist
zweckmäßig. Wahlweise
verkörpern
der (nicht gezeigte) Programmträger 971/972 und
das Programmsignal 981/982 das Computerprogrammprodukt
(CPP) 101/102, das durch den (nicht gezeigten)
Prozessor 911/912 jeweils in den Computern 901/902 ausgeführt werden
soll.
-
Die
Eingabevorrichtung 940 symbolisiert eine Vorrichtung, die
Daten und Anweisungen zur Verarbeitung durch den Computer 900 bereitstellt.
Zum Beispiel ist die Vorrichtung 940 eine Tastatur, eine
Zeigervorrichtung (z. B. eine Maus, ein Trackball bzw. eine Rollkugel,
eine Cursor- bzw. Eingabezeiger-Lenktasten),
ein Mikrofon, ein Joystick, ein Gamepad, einen Scanner, ein Plattenlaufwerk.
Wenngleich die Beispiele Vorrichtungen mit menschlicher Interaktion
sind, kann die Vorrichtung 940 auch ohne menschliche Interaktion
arbeiten, wie zum Beispiel ein drahtloser Empfänger (z. B. mit Satellitenschüssel oder
terrestrischer Antenne), ein Sensor (z. B. ein Thermometer), ein
Zähler
(z. B. Warenzähler
in einer Fabrik). Die Eingabevorrichtung 940 kann auch
dazu dienen, einen Träger 970 zu
lesen.
-
Die
Ausgabevorrichtung 950 symbolisiert eine Vorrichtung, die
Anweisungen und Daten darstellt, die verarbeitet wurden. Zum Beispiel
einen Monitor oder eine Anzeige (Kathodenstrahlröhre (CRT)), eine Flachbildschirmanzeige,
eine Flüssigkristallanzeige
(LCD), einen Lautsprecher, einen Drucker, einen Kurvenschreiber,
eine Vibrationsalarmvorrichtung. Ähnlich wie vorstehend kommuniziert
die Ausgabevorrichtung 950 mit dem Benutzer, aber sie kann
auch mit weiteren Computern kommunizieren.
-
Die
Eingabevorrichtung 940 und die Ausgabevorrichtung 950 können zu
einer einzigen Vorrichtung kombiniert werden; jede Vorrichtung 940 und 950 kann
wahlweise bereitgestellt werden.
-
Der
Bus 930 und das Netzwerk 990 stellen durch Beförderung
von Anweisungs- und Datensignalen logische und physikalische Verbindungen
bereit. Während
auf Verbindungen innerhalb des Computers 900 zweckmäßigerweise
als „Bus 930" Bezug genommen wird,
wird auf Verbindungen zwischen Computern 900–902 als „Netzwerk 990" Bezug genommen.
Wahlweise umfasst das Netzwerk 990 Gateways, die Computer
sind, die auf Datenübertragung
und Protokollumsetzung spezialisiert sind.
-
Die
Vorrichtungen 940 und 950 sind durch den Bus 930 (wie
dargestellt) oder durch das Netzwerk 990 (wahlweise) mit
dem Computer 900 gekoppelt. Während die Signale innerhalb
des Computers 900 meistens elektrische Signale sind, sind
die Signale in dem Netzwerk elektrische, magnetische, optische oder
drahtlose (Funk-)Signale.
-
Vernetzungsumgebungen
(wie das Netzwerk 990) sind in Büros, unternehmensweiten Computernetzwerken,
Intranets und dem Internet (d. h. weltweites Netz) alltäglich. Die
physikalische Entfernung zwischen einem entfernten Computer und
einem Computer 900 ist nicht wichtig. Das Netzwerk 990 kann
verdrahtet oder ein drahtloses Netzwerk sein. Um ein paar Netzwerkimplementierungen
zu nennen, ist das Netzwerk 990 zum Beispiel ein lokales
Netzwerk (LAN), ein Weitverkehrsnetz (WAN), ein öffentliches Telefonnetz (PSTN),
ein dienstintegrierendes digitales Netzwerk (ISDN), eine Infrarot-(IR-)Verbindung,
eine Funkverbindung, wie etwa das universelle mobile Telekommunikationssystem
(UMTS), das globale System zur Mobilkommunikation (GSM), Codemultiplex-Vielfachzugriff
(CDMA) oder eine Satellitenverbindung.
-
Übertragungsprotokolle
und Datenformate sind zum Beispiel bekannt als Übertragungssteuerungsprotokoll/Internetprotokoll
(TCP/IP), Hypertext-Transferprotokoll
(HTTP), sicheres HTTP, drahtloses Anwendungsprotokoll, Unique Resource
Locator (URL), Unique Resource Identifier (URI), Hypertext-Markup-Language HTML,
Extensible Markup-Language (XML), Extensible Hypertext-Markup-Language
(XHTML), Wireless Application-Markup-Language (WML), Standard Generalized
Markup Language (SGML) etc.
-
Zwischen
die Elemente gekoppelte Schnittstellen sind in der Technik ebenfalls
wohlbekannt. Der Einfachheit halber sind Schnittstellen nicht dargestellt.
Eine Schnittstelle kann zum Beispiel eine serielle Anschlussschnittstelle,
eine parallele Anschlussschnittstelle, ein Spielanschluss, eine
universelle serielle Bus (USB-)Schnittstelle, ein internes oder
externes Modem, ein Videoadapter oder ein Soundkarte sein.
-
Computer
und Programm sind eng verknüpft.
Wie hier nachstehend verwendet, sind Formulierungen, wie etwa „der Computer
stellt bereit" und „das Programm
stellt bereit" geeignete
Abkürzungen,
um Aktionen eines Computers auszudrücken, der von einem Programm
gesteuert wird.
-
2 stellt
einen Abschnitt eines Speichers 921 des Computers 901 dar
(siehe 1), der Softwarekomponenten speichert, die in
einer Ausführungsform
der Erfindung verwendet werden können.
In einer anderen Ausführungsform
sind einige oder alle der Softwarekomponenten in einer anderen Speichervorrichtung des
Computersystems 999 (siehe 1) oder
in einer Speichervorrichtung, die über ein Netzwerk (z. B. LAN, WAN,
Internet) mit dem Computersystem 999 verbunden ist, gespeichert.
Die Softwarekomponenten werden nun detailliert beschrieben.
-
Strukturierte
Dokumente können
unter Verwendung von Web-based-Distributed-and-Versioning (WebDAV)
verwaltet werden. WebDAV ist eine Erweiterung des HTTP-Protokolls.
Das HTTP-Protokoll, das Fachleuten der Technik bekannt ist, stellt
PUT- und GET-Funktionen zum Hochladen/Herunterladen strukturierter
Dokumente auf/von einem Web-Server bereit. WebDAV stellt weitere
Funktionen bereit, wie etwa
- • MKCOL zum
Erstellen von Sammlungen (Verzeichnissen)
- • COPY
und MOVE zum Kopieren, Verschieben und Umbenennen von Dateien und
- • DELETE
zum Löschen
von Dateien oder Sammlungen.
-
Diese
weiteren Verfahren erlauben, einen Server zu verwenden, der WebDAV
als ein Dateisystem unterstützt,
wobei WebDAV als ein Zugriffsprotokoll auf das Dateisystem betrachtet
werden kann. Die Implementierung des Dateisystems ist unabhängig von
dem Zugriffsprotokoll. Auf Sammlungen und Dateien wird hier nachstehend
als Ressourcen Bezug genommen. Zum Beispiel können in einer Implementierung
Ressourcen in dem Dateisystem gespeichert werden und weitere Informationen,
wie etwa Eigenschaften, können
in einem relationalen Datenbankverwaltungssystem (RDBMS) gespeichert
werden. In einer anderen Implementierung können alle Eigenschaften und
Ressourcen in einem RDBMS gespeichert werden.
-
WebDAV
stellt weitere Funktionen bereit, wie etwa
- • PROPFIND
zum Auflisten der Eigenschaften einer Ressource und
- • PROPPATCH
zum Festlegen und Ändern
von Eigenschaften von Ressourcen durch Anwendungen, die die Ressourcen
nutzen. Bevorzugt speichert der Speicher 921 ein Web-based-Distributed-
-
Authoring-and-Versioning-(WebDAV-)Dateisystem 200 (auf
das hier nachstehend als Dateisystem 200 Bezug genommen
wird). Zum Beispiel wird das Dateisystem 200 in einem Abschnitt
des Speichers 921 gespeichert, der als ein relationales
Datenbankverwaltungssystem (RDBMS) organisiert ist. Das Dateisystem 200 speichert
Dokumente, wie etwa das strukturierte Dokument 210.
-
Das
strukturierte Dokument 210 kann ein Markup-Language-Dokument,
wie etwa ein XML-, XHTML- oder WML-Dokument, sein. Das strukturierte
Dokument 210 hat zumindest eine Indexierungseigenschaft,
wie etwa IP-1 und/oder IP-2 und hat ferner einen Identifikator bzw.
eine Kennung ID-1.
-
Bevorzugt
speichert der Speicher 921 auch das CPP 101 (nicht
gezeigt; siehe 1). Das CPP 101 umfasst
die folgenden Komponenten: eine Identifizierungseinrichtung 110,
eine Extraktionseinrichtung 120, einen vordefinierten Extraktionsregelsatz 130,
eine Indexwertdatenstruktur 140 und Schnittstellen 101-1 bis 101-6.
-
In
dem Beispiel identifiziert die Identifizierungseinrichtung 110 das
strukturierte Dokument 210 in dem Dateisystem 200 zum
Indexieren. Zum Beispiel hat das strukturierte Dokument 210 zumindest
eine Indexierungseigenschaft IP-1 und/oder IP-2. Eine Indexierungseigenschaft
kann eine Dokumentart, eine URL und/oder eine Dokumentversion sein.
Die Identifizierungseinrichtung 110 kann über die
Schnittstelle 101-1 auf Indexierungseigenschaften IP-1,
IP-2 des strukturierten Dokuments 210 zugreifen. In einer
Ausführungsform der
Erfindung ist der Zugriff auf Indexierungseigenschaften unter Verwendung
der Funktion PROPFIND implementiert. In einem anderen Beispiel,
das von den Patentansprüchen
nicht abgedeckt ist, kann das Zugreifen auf die Indexierungseigenschaften
mit einer entsprechenden SQL-Anweisung implementiert werden. Die
Identifizierungseinrichtung 110 vergleicht die Indexierungseigenschaften
des strukturierten Dokuments 210 mit Referenz-Indexierungseigenschaften.
Zum Beispiel können
die Referenz-Indexierungseigenschaften in einer (nicht gezeigten)
entsprechenden Tabelle eines relationalen Datenbanksystems gespeichert
werden. Bevorzugt greift die Identifizierungseinrichtung 110 über die
Schnittstelle 101-2 auf die Referenz-Indexierungseigenschaften
zu. In einer anderen Ausführungsform
der Erfindung werden Referenz-Indexierungseigenschaften zum
Beispiel in eine spezifische Eigenschaftsdatenstruktur gespeichert.
Wie Fachleuten der Technik bekannt ist, kann die Indexwert-Datenstruktur 140 oder
die spezifische Eigenschaftsdatenstruktur als Datenbanktabellen
in einem RDBMS oder als ein weiteres strukturiertes Dokument, wie
etwa eine XML-Datei, die zum Beispiel in das Dateisystem 220 gespeichert
werden kann, implementiert werden. Wenn die Identifizierungseinrichtung 110 die
Indexierungseigenschaft IP-1 und/oder IP-2 als entsprechenden Referenz-Indexierungseigenschaften entsprechend
identifiziert, wird das strukturierte Dokument 210 der
Indexierung unterzogen.
-
Die
Extraktionseinrichtung 120 extrahiert entsprechend dem
vordefinierten Extraktionsregelsatz 130 zumindest einen
Indexwert IV-1 aus dem strukturierten Dokument 210. Bevorzugt
ist die Extraktionseinrichtung 120 über die Schnittstelle 101-4 mit
dem vordefinierten Extraktionsregelsatz 130 und über die
Schnittstelle 101-5 mit dem strukturierten Dokument 210 verbunden.
Der vordefinierte Extraktionsregelsatz 130 umfasst eine
Vielzahl von Extraktionsregeln 130-1, 130-2, 130-3.
Die Extraktionsregeln 130-1, 130-2, 130-3 sind XPath-Ausdrücke. Die
Xpath-Spezifikation des W3C-Konsortiums ist Fachleuten der Technik
bekannt. Wahlweise kann der Extraktionsregelsatz 130 in
einer beliebigen Speichervorrichtung des Computersystems 999 oder
in jeder Speichervorrichtung gespeichert werden, die über ein
Netzwerk mit dem Computersystem 999 verbunden ist. Durch
Anwenden des Extraktionsregelsatzes 130 auf das strukturierte
Dokument 210 wird der zumindest eine Indexwert IV-1 extrahiert.
Die Extraktionseinrichtung 120 verwendet dann die Schnittstelle 101-6,
um den extrahierten Indexwert TV-1 in der Indexwertdatenstruktur 140 zusammen
mit dem Identifikator ID-1 des strukturierten Dokuments 210 zu
speichern.
-
Fachleute
der Technik können
weitere Ausführungsformen
der Erfindung mit anderen Komponenten (z. B. nur eine einzige Komponente
für die
Identifizierungseinrichtung 110 und die Extraktionseinrichtung 120 oder
das Aufnehmen des Extraktionsregelsatzes 130 in die Extraktionseinrichtung 120)
und entsprechenden Schnittstellen konstruieren, um zu einem äquivalenten
Indexierungssystem für
strukturierte Dokumente in einem WebDAV-Dateisystem zu kommen. Diese
weiteren Ausführungsformen
werden als innerhalb des Bereichs der vorliegenden Erfindung betrachtet.
-
Wenn
das Indexieren des strukturierten Dokuments 210 einmal
abgeschlossen ist, kann wahlweise ein Indexierungsstatus des strukturierten
Dokuments 210 auf einen Wert festgelegt werden, der anzeigt,
dass das strukturierte Dokument bereits indexiert wurde. Zum Beispiel
kann der Indexstatus als eine Eigenschaft des strukturierten Dokuments 210 implementiert
werden, die unter Verwendung der Funktion PROPPATCH festgelegt wird.
-
In
einem Beispiel, das von den Patentansprüchen nicht abgedeckt ist, arbeiten
die Identifizierungseinrichtung 110 und die Extraktionseinrichtung 120,
wie unter 2 beschrieben, synchron, wenn
ein strukturiertes Dokument in einem Dateisystem 200 zum
Beispiel unter Verwendung der Funktion PUT erzeugt wird. Zum Beispiel
erzeugt eine Dokumenten-Eincheck-Anwendung das strukturierte Dokument 210,
und eine Identifizierungseinrichtung 110 prüft im Wesentlichen
gleichzeitig, ob das strukturierte Dokument 210 einer Indexierung unterzogen
ist. Wenn ja, extrahiert die Extraktionseinrichtung 120 entsprechend
dem Extraktionsregelsatz 130 Indexwerte (z. B. IV-1), und
die extrahierten Indexwerte werden zusammen mit dem Identifikator
ID-1 des strukturierten Dokuments 210 in die Indexwertdatenstruktur 140 gespeichert.
-
Gemäß der Erfindung
arbeiten die Identifizierungseinrichtung 110 und die Extraktionseinrichtung 120, wie
unter 2 beschrieben, asynchron. Mit anderen Worten ist
das strukturierte Dokument 210 bereits in dem Dateisystem 200 vorhanden.
Es ist jedoch noch nicht indexiert (was zum Beispiel durch den Indexstatus
angezeigt wird). Die Identifizierungseinrichtung 110 und
die Extraktionseinrichtung 120 werden durch ein spezifisches
Ereignis ausgelöst,
um entsprechend der Beschreibung von 2 zu arbeiten.
Das spezifische Ereignis kann ein Steuersignal sein, das von einem
Benutzer geschickt wird oder von dem Computersystem 999 automatisch
erzeugt wird, zum Beispiel zu einem spezifischen Zeitpunkt oder
auf regelmäßiger Basis,
um das Dateisystem 200 kontinuierlich nach neuen strukturierten
Dokumenten abzutasten, die indexiert werden sollen. Wenn zum Beispiel
ein Auslöser
bei Nacht auftritt, wenn nur ein paar Benutzer mit dem Computersystem 999 interagieren,
kann eine große
Anzahl von strukturierten Dokumenten (z. B. in einem Batch-Betrieb,
der Fachleuten der Technik bekannt ist) verarbeitet werden, ohne
CPU-Zeit zu verwenden, die von den Systemprozessen für die Benutzerinteraktion
benötigt
wird.
-
Ein
spezifisches Implementierungsbeispiel für das Extrahieren eines spezifischen
Indexwerts aus dem strukturierten Dokument 210 wird nun
ohne die Absicht, den Bereich der Erfindung zu beschränken, erklärt.
-
Der
Programmierungsabschnitt 1 zeigt ein vereinfachtes XML-Beispiel
des strukturierten Dokuments
210 mit dem Identifikator
ID-1 = "1111", der von Fachleuten
der Technik zu verstehen ist. Programmierungsabschnitt
1:
-
Die
Extraktionsregel 130-1 entspricht dem folgenden XPath-Ausdruck:
XPath_Index_Name="/departmentiemployeelist/name/text()"
-
Mit
anderen Worten extrahiert die Extraktionseinrichtung
120 Indexwerte
(z. B. Peter, Michael, etc.), die unter dem Inexierungseigenschaftsnamen
XPath_Index_Name in dem Programmierungsabschnitt 1 gespeichert sind.
Die Tabelle 1 zeigt Einträge,
die in der Indexwertdatenstruktur
140 gespeichert sind,
wenn der XPath-Ausdruck
130-1 auf den Programmierungsabschnitt
1 des strukturierten Dokuments
210 angewendet wird.
Identifikator
von strukturiertem Dokument | Name
der Indexierungseigenschaft | Wert
der Indexierungseigenschaft |
... | ... | ... |
1111 | XPath_Index_Name | Peter |
1111 | XPath_Index_Name | Michael |
1111 | XPath_Index_Name | Ralf |
1111 | XPath_Index_Name | Carolin |
... | ... | ... |
Tabelle
1: RDBMS-Beispiel für
Indexwertdatenstruktur 140 nach dem Anwenden der Extraktionsregel
130-1.
-
Ein
Beispiel für
eine weitere Extraktionsregel 130-2 ist:
XPath_Index_employeenumber="/department/employeelist/name/text0"
-
Das
Anwenden der weiteren Extraktionsregel
130-2 auf den Programmierungsabschnitt
1 fügt
einen anderen Eintrag für
die Indexierungseigenschaft XPath_Index_employeenumber zu der Indexwertdatenstruktur
140 hinzu,
wie in Tabelle 2 gezeigt.
Identifikator
von strukturiertem Dokument | Name
der Indexierungseigenschaft | Wert
der Indexierungseigenschaft |
... | ... | |
1111 | XPath_Index_Name | Peter |
1111 | XPath_Index_Name | Michael |
1111 | XPath_Index_Name | Ralf |
1111 | XPath_Index_Name | Carolin |
1111 | XPath_Index_employeenumber | 4 |
... | ... | |
Tabelle
2: RDBMS-Beispiel der Indexwertdatenstruktur 140 nach dem Anwenden
der Extraktionsregel 130-2.
-
Die
Indexwertdatenstruktur 140 kann Indexwerte einer großen Anzahl
strukturierter Dokumente speichern. Durch Verwenden der Indexwertdatenstruktur 140 können strukturierte
Dokumente über
eine entsprechende Abfrage identifiziert werden. Zum Beispiel kann
eine Abfrage alle strukturierten Dokumente abfragen, die ein Department
bzw. eine Abteilung mit mehr als 3 Angestellten beschreiben. In
dem Beispiel identifiziert die Abfrage zumindest das strukturierte
Dokument 210 mit dem Identifikator "1111".
-
Durch
Verwenden eines eindeutigen Identifikators für jede Version eines strukturierten
Dokuments oder durch Verwenden einer Versionseigenschaft des strukturierten
Dokuments wird automatisch das versionierte Indexieren (= Indexieren
von mehreren Versionen eines strukturierten Dokuments) bereitgestellt,
wenn ein System verwendet wird, das das Indexieren gemäß einer
Ausführungsform
der Erfindung durchführt.
-
3 stellt
einen Computer 901 zum Indexieren strukturierter Dokumente
gemäß einer
alternativen Ausführungsform
der Erfindung dar. Softwarekomponenten, wie etwa das Dateisystem 200 und
das CPP 101 sind durch durchgezogene Rahmen dargestellt.
Hardwarekomponenten, wie etwa der Speicher 921, der erste Prozessor 911 und
der zweite Prozessor 921-2 sind durch gestrichelte Rahmen
dargestellt.
-
In
der alternativen Ausführungsform
wird das Dateisystem 200 zumindest von dem ersten Prozessor 911 betrieben.
Mit anderen Worten werden Programmanweisungen zum Betreiben des
Dateisystems 200 von dem ersten Prozessor 911 ausgeführt. Das
CPP 100 wird zumindest von dem zweiten Prozessor 911-2 ausgeführt.
-
Wie
Fachleuten der Technik bekannt ist, kann jeder Prozessor den entsprechenden
Systemprozessor zugewiesen werden. Gemeinsam genutzte Speicherprozessoren
können
verwendet werden, um die Leistung des Indexierungscomputers 901 zu
verbessern.
-
Durch
Verwenden verschiedener Prozessoren zum Betreiben des Dateisystems
und zum Durchführen des
Indexierens strukturierter Dokumente in dem Dateisystem hat das
Indexieren keinen Einfluss auf die Leistung des Dateisystems (z.
B. die Systemantwortzeit, wenn ein Benutzer ein Dokument in das
Dateisystem einchecken möchte).
-
4 stellt
einen Sperrmechanismus für
asynchrones Indexieren strukturierter Dokumente gemäß einer
Ausführungsform
der Erfindung dar.
-
Um
das Indexieren des strukturierten Dokuments 210 und einer
Vielzahl weiterer strukturierter Dokumente 220–250,
die in dem Dateisystem 200 gespeichert sind, zu beschleunigen,
werden mehrere Indexierungsprozesse verwendet. In dem Beispiel werden
der erste Indexierungsprozess 301 und der zweite Indexierungsprozess 302 (durch
Pfeile dargestellt) verwendet. Das Symbol 310 stellt dar,
dass ein strukturiertes Dokument gegenwärtig von einem anderen Indexierungsprozess
gesperrt ist. Das Symbol 320 stellt dar, dass ein Indexierungsprozess
bei einem strukturierten Dokument ankommt, das Gegenstand des Indexierens
ist, aber noch nicht indexiert ist und nicht von einem anderen Indexierungsprozess
gesperrt ist, und dass das strukturierte Dokument im Wesentlichen
gleichzeitig mit dem Auswählen
gesperrt wird.
-
In
dem Beispiel erkennt der erste Indexierungsprozess 301,
dass das strukturierte Dokument 250 bereits von einem anderen
Indexierungsprozess gesperrt ist (nicht gezeigt). Daher überspringt
der erste Indexierungsprozess 301 das gesperrte strukturierte
Dokument und wählt
das nächste
ungesperrte strukturierte Dokument 210 in dem Dateisystem 200 aus.
Im Wesentlichen gleichzeitig mit dem Auswählen des strukturierten Dokuments 210 sperrt
der erste Indexierungsprozess 301 das strukturierte Dokument 210,
während
er das Dokument indexiert. Der zweite Indexierungsprozess 302 erkennt,
dass die strukturierten Dokumente 210 und 250 bereits
von anderen Indexierungsprozessen gesperrt sind, und wählt das
nächste
ungesperrte strukturierte Dokument 220 aus. Im Wesentlichen
gleichzeitig mit dem Auswählen
des strukturierten Dokuments 220 sperrt der zweite Indexierungsprozess 302 das
strukturierte Dokument 220, während er das Dokument 220 indexiert.
-
Durch
Verwenden des Auswahl- und Sperrmerkmals wie beschrieben, können Wartezeiten
für Indexierungsprozesse
(bis ein gesperrtes strukturiertes Dokument wieder entsperrt wird)
beseitigt werden.
-
5 stellt
ein vereinfachtes Flussdiagramm eines Verfahrens 400 zum
Indexieren strukturierter Dokumente in einem Computer dar, der ein
Web-based-Distributed-Authoring-and-Versioning-(WebDAV-)Dateisystem 200 speichert.
Zum Beispiel kann das Verfahren 400 von dem Computer 901 (siehe 1)
des Computersystems 999 (siehe 1) ausgeführt werden.
Das Computerprogrammprodukt 101 (siehe 1)
umfasst Anweisungen, die zumindest einen Prozessor (z. B. 911, 911-2)
des Computers 901 veranlassen, die Schritte des Verfahrens 400 auszuführen. Das
Computerprogrammprodukt 101 kann auf dem Datenträger 971 gespeichert
sein oder von dem Signal 981 befördert werden. Bevorzugt wird
das Computerprogrammprodukt 101 in den Speicher 921 des
Computers 901 geladen.
-
Das
Verfahren 400 umfasst die Schritte Identifizieren 410,
Extrahieren 420 und Speichern 430. Die Schritte
werden nun im Detail beschrieben.
-
In
dem Identifizierungsschritt 410 identifiziert das CPP 101 das
strukturierte Dokument 210 in dem WebDAV-Dateisystem 200 zum
Indexieren. Das strukturierte Dokument 210 hat zumindest
eine Indexierungseigenschaft IP-1,
IP-2 und hat einen Identifikator bzw. eine Kennung ID-1. Zum Beispiel
kann die zumindest eine Indexierungseigenschaft IP-1 und/oder IP-2
eine Dokumentart, eine URL, eine Dokumentversion, etc. sein. Das
strukturierte Dokument 210 kann ein Markup-Language-Dokument,
wie etwa ein XML-, XHTML- und WML-Dokument sein. In einer Ausführungsform
der Erfindung ist das WebDAV-Dateisystem 200 in
einem relationalen Datenbankverwaltungssystem gespeichert.
-
In
dem Extraktionsschritt 420 extrahiert das CPP 101 zumindest
einen Indexwert IV-1 aus dem strukturierten Dokument 210 gemäß dem vordefinierten
Extraktionsregelsatz 130. Der vordefinierte Extraktionsregelsatz 130 umfasst
eine Vielzahl von XPath-Ausdrücken 130-1, 130-2, 130-3.
-
In
dem Speicherschritt 430 speichert das CPP 101 den
zumindest einen Indexwert IV-1 zusammen mit dem Identifikator ID-1
in eine Indexwertdatenstruktur 140. Zum Beispiel kann die
Indexwertdatenstruktur 140 als eine relationale Datenbanktabelle
gespeichert werden.
-
In
einer bevorzugten Ausführungsform
der Erfindung wird das WebDAV-Dateisystem 200 zumindest von
dem ersten Prozessor 911 betrieben, und die Identifizierungs- 410,
Extraktions- 420 und Speicherschritte 430 werden
zumindest von dem zweiten Prozessor 911-2 ausgeführt.
-
Die
Identifizierungs-
410, Extraktions-
420 und Speicherschritte
430 werden
asynchron nach dem Erzeugen des strukturierten Dokuments
210 in
dem WebDAV-Dateisystem
200 ausgeführt. In diesem Fall können die
Identifizierungs-
410,
Extraktions-
420 und Speicherschritte
430 für das strukturierte
Dokument
210 durch den ersten Indexierungsprozess
301 ausgeführt werden
und können
für eine
Vielzahl weiterer strukturierter Dokumente
220,
230,
240,
250 des
WebDAV-Dateisystems
200 zumindest von dem zweiten Indexierungsprozess
302 ausgeführt werden.
Durch Verwenden mehrerer Indexierungsprozesse können mehrere strukturierte
Dokumente im Wesentlichen gleichzeitig indexiert werden. Bevorzugt überspringt
der zweite Indexierungsprozess
302 das strukturierte Dokument
210,
wenn es von dem ersten Indexierungsprozess
301 gesperrt
ist, und wählt
ein nicht gesperrtes strukturiertes Dokument
220 aus der
Vielzahl weiterer strukturierter Dokumente
220,
230,
240,
250 aus.
Durch im Wesentlichen gleichzeitiges Sperren des ungesperrten strukturierten
Dokuments
220 verhindert der zweite Indexierungsprozess
302,
dass weitere Indexierungsprozesse weiter auf das strukturierte Dokument
220 zugreifen.
Bevorzugt setzt das CPP
101 nach dem Indexieren eines strukturierten
Dokuments einen entsprechenden Indexierungsstatus des Dokuments.
Referenz | Beschreibung |
101 | Computerprogrammprodukt |
101-1 bis 101-6 | Schnittstellen |
110 | Identifizierungseinrichtung |
120 | Extraktionseinrichtung |
130 | Extraktionsregeisatz |
130-1 bis 130-3 | Extraktionsregeln |
140 | Indexwertdatenstruktur |
200 | WebDAV-Dateisystem |
210–250 | Strukturierte
Dokumente |
301, 302 | Indexierungsprozesse |
400 | Verfahren |
4xx | Verfahrensschritte |
999 | Computersystem |
900, 901, 902 | Computer |
910, 911, 911-2, 912 | Prozessoren |
920, 921, 922 | Speicher |
940 | Eingabevorrichtung |
950 | Ausgabevorrichtung |
960 | Benutzerschnittstelle |
970 | Programmträger (computerlesbare
Vorrichtung) |
980 | Programmsignal |
Bezugsnummern