DE60132243T2 - Verfahren zum indizieren von entitäten - Google Patents

Verfahren zum indizieren von entitäten Download PDF

Info

Publication number
DE60132243T2
DE60132243T2 DE60132243T DE60132243T DE60132243T2 DE 60132243 T2 DE60132243 T2 DE 60132243T2 DE 60132243 T DE60132243 T DE 60132243T DE 60132243 T DE60132243 T DE 60132243T DE 60132243 T2 DE60132243 T2 DE 60132243T2
Authority
DE
Germany
Prior art keywords
sub
points
region
quad
entities
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
DE60132243T
Other languages
English (en)
Other versions
DE60132243D1 (de
Inventor
Ian Barry Ipswich CRABTREE
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.)
British Telecommunications PLC
Original Assignee
British Telecommunications PLC
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
Priority claimed from GB0123154A external-priority patent/GB0123154D0/en
Application filed by British Telecommunications PLC filed Critical British Telecommunications PLC
Application granted granted Critical
Publication of DE60132243D1 publication Critical patent/DE60132243D1/de
Publication of DE60132243T2 publication Critical patent/DE60132243T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • 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/99931Database or file accessing
    • Y10S707/99932Access augmentation or optimizing
    • 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/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • 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/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99935Query augmenting and refining, e.g. inexact access
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Processing Or Creating Images (AREA)
  • Organic Low-Molecular-Weight Compounds And Preparation Thereof (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

  • Die vorliegende Erfindung bezieht sich auf ein Verfahren zum Indexieren für die Verwendung mit in einer Datenbank gespeicherten Entitäten.
  • Es kann leicht gesehen werden, dass, wenn es eine riesengroße Anzahl von Entitäten in einer Datenbank gibt, das Identifizieren der Entitäten in Übereinstimmung mit einer Abfrage in Bezug auf die Daten in der Datenbank innerhalb einer angemessenen Zeitdauer eine nichttriviale Aufgabe ist. Um den Wiedergewinnungsprozess zu erleichtern, sind im Allgemeinen die Daten in der Datenbank in irgendeiner Weise indexiert, wobei die Abfragen dann am Index ausgeführt werden. Es kann erwartet werden, dass die Art, in der die Entitäten indexiert sind, eine signifikante Bedeutung für die Qualität und die Geschwindigkeit der Wiedergewinnung besitzt, und da Informationen zunehmend in Datenbanken gespeichert werden, gibt es ein signifikantes Interesse daran, verbesserte Arten zum Indexieren von Daten zu finden.
  • Es ist bekannt, Ortsdaten basierend auf Ortsnamen zu indexieren. Es ist außerdem bekannt, eine Menge geographischer Koordinaten aus den Ortsnamen wiederzugewinnen und einen Index basierend auf den aus den Koordinaten extrahierten topologischen Informationen anzubringen (z. B. "GIPSY": entwickelt in U. C. Berkeley im Zusammenhang mit einer gemeinsamen NSF/NASA/ARPA-Initiative (Wilensky u. a., 1994)). Außerdem ist bekannt, einen Index basierend auf den geographischen Koordinaten selbst anzubringen: die Verkäufer von Datenbanken, wie z. B. OracleTM, haben Systeme zum Speichern und Indexieren geometrischer Daten entwickelt – z. B. die räumliche Datenkassette von Oracle, die erlaubt, dass unter Verwendung eines erweiterten (Nichtstandard-)Formulars von SQL ein räumliches Abfragen ausgeführt wird. Andere Verkäufer, wie MapInfoTM, SpatialWareTM, InnogisticTM und InformixTM besitzen ähnliche proprietäre Arten, um mit räumlichen Daten umzugehen. Insbesondere hat InnogisticTM ein Produkt entwickelt, das als Cartology DSI bekannt ist, das geometrische Vektordaten als Blobs (große binäre Objekte – die durch die zugrunde liegende Datenbank nicht in intrinsisch erkennbar sind) speichert. Es erzeugt außerdem Indizes außerhalb der Datenbank basierend auf der wohlbekannten 'Viereckbaum'-Idee ("quad tree"-Idee). Die Indexdaten sind in Binärbaum-Strukturen gespeichert, wobei auf sie durch Middleware-Dienste eines verteilten Komponentenobjektmodells (DCOM) zugegriffen wird.
  • Sowohl die OracleTM- als auch die InnogisticTM-Systeme machen vom Viereckbaum-Verfahren Gebrauch, bei dem ein ganzer Bereich einer Schicht in eine Folge von vier verschachtelten Quadraten geteilt und unterteilt wird. Der ganze Bereich wird einem von vier Quadraten zugeordnet, die als 0, 1, 2 und 3 bezeichnet werden. Jedes dieser Quadrate wird in vier kleinere Quadrate unterteilt. Der Bereich des Quadrates 1 wird 10, 11, 12 und 13. Jedes von diesen wird weiter unterteilt, was bedeutet, dass z. B. den Unterteilungen des Quadrates 11 die Indexwerte von 110, 111, 112 und 113 zugeordnet werden würden. Im Ergebnis kann auf irgendeinen Ort auf der Karte durch eine einzige Indexzahl Bezug genommen werden. Der Nachteil bei diesem Viereckbaum-Verfahren ist, dass Verarbeitungszeit verschwendet wird, wenn es keine Punkte in den unterteilten Quadraten gibt; falls die Indexierung über einen großen Bereich ausgeführt wird, ist diese verschwendete Verarbeitungszeit nichttrivial und teuer.
  • US-Patent US 6.161.105 beschreibt ein System, durch das mehrdimensionale Daten durch binären hyperräumlichen Code (BH-Code) dargestellt werden und das erlaubt, dass sie unter Verwendung des Viereckbaum-Verfahrens indexiert werden.
  • Ein alternatives Indexierungsverfahren ist das Verfahren des k-dimensionalen binären Suchbaums, das durch J. L. Bentley in "Multidimensional binary search trees for associative searching", Commun. ACM 18 (9), 1975, 509–517, beschrieben wird. Bei diesem Verfahren werden die vertikalen und horizontalen Seiten einer Region, die zu indexierende Punkte enthält, verglichen, wobei die Region durch eine gerade Linie, die zur längeren Seite senkrecht ist, in zwei Teile zerteilt wird. Die Position der Teilungs- oder Partitionierungslinie wird so bestimmt, dass jeder resultierende Teil die gleiche Datenmenge enthält. Dieses Verfahren wird rekursiv auf jeden der zwei Teile angewendet, bis ein vorgegebenes Kriterium erfüllt ist. Typischerweise steht dieses Kriterium mit der Kapazität einer Seite in einer relationalen Datenbank (d. h. den Speichereinschränkungen der Datenbank) in Beziehung. Die partitionierten Teile werden als Knoten in einem binären Baum dargestellt, wobei die Positionen der Teilungslinien zwischen den Teilen die Position eines Knotens bezüglich der anderen Knoten in dem Baum bestimmen. Dieses Verfahren ist für das Wiedergewinnen von Punkten bezüglich eines Bereichs von Interesse besonders effizient, weil Abschnitte des Suchraums (des binären Baums) durch einen einfachen Vergleich zwischen dem Bereich von Interesse und den Teilungslinien der Teile eliminiert werden können.
  • Die Anwendung des k-dimensionalen Verfahrens auf geographische Daten wird in "A file Organisation for geographic information systems based an spatial proximity" von Matsuyama u. a., Computer Vision, Graphics and image processing, 26, 303–318, (1984), beschrieben.
  • Insbesondere vergleichen Matsuyama u. a. den Wirkungsgrad des k-dimensionalen Baumverfahrens mit dem Viereckbaum-Verfahren, wobei sie feststellen, dass das k-dimensionale Verfahren sowohl hinsichtlich der Verwendung der Speicherraums (weil das Viereckbaum-Verfahren typischerweise Vierecke und folglich Speicher Regionen zuordnet, in denen sich keine Punkte befinden) als auch hinsichtlich der Datenwiedergewinnung (weil der Suchraum effizient unter Verwendung des k-dimensionalen Baumverfahrens reduziert werden kann, wie oben beschrieben worden ist) ein weit effizienteres Verfahren ist.
  • Ungeachtet der Tatsache, dass das k-dimensionale Baumverfahren effizienter als das Standard-Viereckbaum-Verfahren ist, weist es immer noch mehr Bereichen Speicher zu, als tatsächlich erforderlich ist – wie oben beschrieben worden ist, wobei, wenn eine Region partitioniert wird (Knoten im binären Baum erzeugt werden), die Partitionierungslinie so bestimmt wird, dass jeder resultierende Teil die gleiche Datenmenge enthält; folglich besitzen die Teile eine größere Größe, als sie besitzen müssten, wobei schließlich der binäre Baum mehr Knoten besitzt, als notwendig sind.
  • OOI, B. C. u. a. in Spatial KD-Tree: An Indexing Mechanism for Spatial Database, Proceedings of the Annual International Computer Software and Applications Conference (COMPSAC), Tokio, 7.–9. Oktober 1987, Washington, IEEE Corp. Soc. Press., USA, Bd. conf. 11, Seiten 433–438, offenbaren die Verwendung eines so genannten räumlichen kd-Baums, um die Verarbeitung der Abfragen räumlicher Datenbanken zu erleichtern. Der räumliche kd-Baum partitioniert einen Satz von Datensätzen im k-dimensionalen Raum basierend auf ihrer räumlichen Nähe in kleine Gruppen.
  • Gemäß einem ersten Aspekt der vorliegenden Erfindung wird ein Verfahren zum Anbringen eines Indexes an mehreren Entitäten geschaffen, das die im Anspruch 1 des beigefügten Satzes der Ansprüche definierten Merkmale besitzt.
  • Folglich "schrumpft" das vorliegende Verfahren im Vergleich zu bekannten Indexierungsverfahren zuerst den Indexierungsraum, so dass es nur über Bereiche indexiert, die Punkte enthalten. Folglich sind die Speicherbereiche entsprechend kompakt, was hinsichtlich des Minimierens der Verwendung von Speicherraum Vorteile besitzt.
  • In der Tat identifizieren im oben erwähnten Aufsatz mit dem Titel "A file Organisation for geographic information systems based an spatial proximity" Matsuyama u. a. das dem Viereckbaum-Verfahren zugeordnete Problem – nämlich das Indexieren von leeren Seiten der Datenbank (siehe S. 312) – wobei sie aber das Problem lösen, indem sie ein Verfahren anwenden, das von jenem der vorliegenden Erfindung vollständig verschieden ist, (das k-dimensionale Baumverfahren).
  • Vorteilhaft umfasst der Schritt des Verkleinerns der Region das Berechnen der Abstände zwischen den Entitäten in jeder von zwei Dimensionen; und für jede der Dimensionen das Identifizieren, welche der Entitäten den größten Abstand zwischen sich besitzen, so dass, wenn die zwei Dimensionen senkrecht zueinander sind, die in dem Schritt ii erzeugte Region ein Rechteck ist, das durch wenigstens zwei Punkte definiert ist.
  • Die Unterregionen können über eine so genannte "verknüpfte Liste" der Punkte verknüpft werden, was ein im Stand der Technik bekannter effektiver Verknüpfungsmechanismus ist.
  • Vorzugsweise wird die Region in vier Unterregionen unterteilt, wobei die Schritte ii und iii für jeden der zweiten Bereiche rekursiv wiederholt werden.
  • Zweckmäßig enthält das Verfahren das Speichern der Verknüpfungsdaten in einer Datenbank, das Halten einer Aufzeichnung der Anzahl von Entitäten, die in der Datenbank gespeichert sind, und für jede Unterregion das Schreiben der momentan aufgezeichneten Anzahl in den ihr entsprechenden Speicherbereich.
  • Vorteilhaft können die Entitäten, die in Übereinstimmung mit dem ersten Aspekt der Erfindung indexiert worden sind, wiedergewonnen werden. Insbesondere und hinsichtlich der Punkte, die den Entitäten entsprechen, können die Punkte, die in einem vorgegebenen Bereich enthalten sind, durch das Ausführen der folgenden Schritte wiedergewonnen werden:
    • (a) Identifizieren einer oder mehrerer Regionen, die in dem vorgegebenen Bereich enthalten sind, wobei jede Region einen oder mehrerer Punkte umschließt und wobei jeder Region Verknüpfungsdaten zugeordnet sind, die für jede Region den Punkt oder die Punkte, die von dieser Region umschlossen sind, identifizieren; und
    • (b) Zugreifen auf Verknüpfungsdaten, die den identifizierten Regionen entsprechen, um so Punkte, die von den identifizierten Regionen umschlossen werden, wiederzugewinnen.
  • Die Regionen entsprechen den Speicherbereichen, die in Übereinstimmung mit dem ersten Aspekt der Erfindung indexiert sind. Folglich ist, da die Speicherbereiche kompakt sind, weil, wie oben beschrieben worden ist, sie um die Punkte "schrumpfverpackt" sind, die Identifikation der Punkte im Index ein effizienter Prozess.
  • Vorzugsweise umfasst der Identifizierungsschritt (a) die Schritte des Wiedergewinnens einer Region und des Ausführens eines Prozesses in Bezug auf die Region, wobei der Prozess die folgenden Schritte umfasst: Vergleichen der Ausmaße der Region mit Ausmaßen des vorgegebenen Bereichs, um festzustellen, ob die erste Region mit dem vorgegebenen Bereich überlappt; und falls eine Überlappung besteht, Wiedergewinnen von Unterregionen der Region und Identifizieren irgendwelcher derartiger Unterregionen, deren Ausmaße vollständig innerhalb des vorgegebenen Bereichs liegen. Dieser Prozess kann für jede Unterregion wiederholt werden, bis alle Unterregionen hiervon, die vollständig in den vorgegebenen Bereich fallen, identifiziert sind.
  • Zweckmäßig werden die mehreren Punkte im Voraus als eine Liste von Punkten in Übereinstimmung mit Beziehungen zwischen den jeweiligen Regionen und Unterregionen hiervon gespeichert und enthalten die Verknüpfungsdaten einen Wert, der die Position eines ersten der entsprechenden umschlossenen Punkte in der Liste von Punkten angibt. Der Zugriffsschritt (b) umfasst dann für jede der identifizierten Regionen und Unterregionen: Wiedergewinnen eines Identifizierers, der die Anzahl der umschlossenen Punkte repräsentiert, und Wiedergewinnen eines Positionswertes, der der identifizierten Unterregion zugeordnet ist; und Zugreifen auf die Liste von Punkten und Wiedergewinnen der Anzahl umschlossener Punkte ausgehend von einer Position in der Liste, die durch den Positionswert gegeben ist.
  • Vorzugsweise entspricht der in den Verknüpfungsdaten enthaltene Wert der in den Speicherbereich geschriebenen aufgezeichneten Anzahl.
  • Die Verfahrenschritte sind vorzugsweise in einem oder mehreren Computer-Programmen verkörpert, die ganz oder teilweise als ein Signal in einer Trägerwelle für die Übertragung über ein Kommunikationsnetz und/oder in einem computerlesbaren Medium als ein Computerprogrammprodukt verkörpert sein können.
  • Zweckmäßig entsprechen die Punkte Daten, die in zwei Dimensionen ausgedrückt werden können, z. B. Ortsdaten (Länge und Breite) oder Reichweitendaten. Die Reichweitendaten können Betriebsstunden (z. B. Öffnungs- und Schließzeiten), Preismargen (z. B. maximale und minimale Preise) und/oder medizinische Daten (z. B. maximaler und minimaler Blutdruck) sein. Folglich könnte ein vorgegebener Bereich eine Preisspanne sein – wie z. B. ein maximaler Hauspreis und minimaler Hauspreis. In Übereinstimmung mit dem oben beschriebenen Wiedergewinnungsverfahren werden die Ausmaße eines vorgegebenen Bereichs (d. h. eine Preisklasse) mit einer vom Index wiedergewonnenen Region verglichen. Alle Regionen, die mit der Preisklasse überlappen, werden dann der Reihe nach wiedergewonnen, bis eine Region identifiziert ist, die vollständig in die spezifizierte Preisklasse fällt. Alle Punkte, die in diese identifizierte Region fallen, repräsentieren folglich Waren, die einen Preis besitzen, der in die spezifizierte maximale und minimale Preisklasse fällt.
  • Weitere Aspekte, Merkmale und Vorteile der vorliegenden Erfindung werden aus der folgenden Beschreibung der bevorzugten Ausführungsformen der Erfindung offensichtlich, die auf die beigefügte Zeichnung Bezug nimmt, worin:
  • 1 eine schematische graphische Darstellung ist, die Aspekte eines durch die Erfindung verwendeten Kommunikationssystems veranschaulicht;
  • 2 eine schematische graphische Darstellung ist, die ein Beispiel der Punkte zeigt, die gemäß der Erfindung zu indexieren sind;
  • 3 eine schematische graphische Darstellung ist, die eine erweiterte Ansicht nach 2 zeigt;
  • 4a u. 4b in Kombination einen Ablaufplan umfassen, der eine Ausführungsform eines Indexierungsprozesses gemäß der vorliegenden Erfindung zeigt, wenn die in 2 gezeigten Punkte indexiert werden;
  • 5 eine schematische graphische Darstellung ist, die die Anwendung des Prozesses nach den 4a u. 4b zeigt, um ein Viereck um die in 2 gezeigten Punkte zu erzeugen;
  • 6 eine schematische graphische Darstellung ist, die die Anwendung des Prozesses nach den 4a u. 4b zeigt, um ein Unterviereck des gemäß 5 erzeugten Vierecks zu erzeugen;
  • 7 eine schematische graphische Darstellung ist, die die Anwendung des Prozesses nach den 4a u. 4b zeigt, um ein Unterviereck von einem der Untervierecke nach 6 zu erzeugen;
  • 8 eine erweiterte Ansicht nach 7 ist;
  • 9 eine erweiterte Ansicht nach 8 ist, die die Anwendung des Prozesses nach den 4a u. 4b zeigt, um ein weiteres der in 7 gezeigten Untervierecke zu erzeugen;
  • 10 eine erweiterte Ansicht nach 8 ist, die die Anwendung des Prozesses nach den 4a u. 4b zeigt, um ein weiteres der in 7 gezeigten Untervierecke zu erzeugen;
  • 11 eine schematische graphische Darstellung ist, die die Anwendung des Prozesses nach den 4a und 4b zeigt, um ein weiteres Unterviereck von einem der Untervierecke nach 6 zu erzeugen;
  • 12 eine schematische graphische Darstellung ist, die einen Prozess des Speicherns von Punkten gemäß der Erfindung veranschaulicht;
  • 13a u. 13b in Kombination einen Ablaufplan umfassen, der eine Ausführungsform eines Wiedergewinnungsprozesses gemäß der vorliegenden Erfindung zeigt, wenn die Punkte in Übereinstimmung mit einem Bereich von Interesse wiedergewonnen werden;
  • 14 eine schematische graphische Darstellung ist, die ein Beispiel eines Bereichs von Interesse zeigt, für den Punkte wiederzugewinnen sind;
  • 15 eine schematische graphische Darstellung ist, die die Anwendung des Prozesses nach den 13a u. 13b auf eines der Untervierecke nach 6 zeigt;
  • 16 und 17 eine vergrößerte Ansicht nach 15 und schematische graphische Darstellungen sind, die die Anwendung des Prozesses nach den 13a u. 13b auf ein erstes der Untervierecke nach 7 zeigen;
  • 18 eine vergrößerte Ansicht nach 15 ist und den Bereich von Interesse und ein zweites der Untervierecke nach 7 zeigt;
  • 19 eine schematische graphische Darstellung ist, die 18 entspricht und die Anwendung des Prozesses nach den 13a u. 13b auf das zweite der Untervierecke nach 7 zeigt;
  • 20a u. 20b schematische graphische Darstellungen sind, die die Anwendung des Prozesses nach den 13a u. 13b auf ein (erstes) Unterviereck des in 18 gezeigten Untervierecks zeigen;
  • 21a u. 21b schematische graphische Darstellungen sind, die die Anwendung des Prozesses nach den 13a u. 13b auf ein weiteres (ein zweites) Unterviereck des in 18 gezeigten Untervierecks zeigen;
  • 22a u. 22b schematische graphische Darstellungen sind, die die Anwendung des Prozesses nach den 13a u. 13b auf ein weiteres Unterviereck (ein drittes) des in 18 gezeigten Untervierecks zeigen;
  • 23a u. 23b schematische graphische Darstellungen sind, die die Anwendung des Prozesses nach den 13a u. 13b auf ein weiteres Unterviereck (ein viertes) des in 18 gezeigten Untervierecks zeigen;
  • 24 eine vergrößerte Ansicht nach 15 ist und den Bereich von Interesse und ein drittes der Untervierecke nach 7 zeigt;
  • 25 eine schematische graphische Darstellung ist, die 24 entspricht und die Anwendung des Prozesses nach den 13a u. 13b auf das dritte der Untervierecke nach 7 zeigt;
  • 26a u. 26b schematische graphische Darstellungen sind, die die Anwendung des Prozesses nach den 13a u. 13b auf ein (erstes) Unterviereck des in 24 gezeigten Untervierecks zeigen;
  • 27a u. 27b schematische graphische Darstellungen sind, die die Anwendung des Prozesses nach den 13a u. 13b auf ein weiteres (ein zweites) Unterviereck des in 24 gezeigten Untervierecks zeigen;
  • 28a u. 28b schematische graphische Darstellungen sind, die die Anwendung des Prozesses nach den 13a u. 13b auf ein weiteres Unterviereck (ein drittes) des in 24 gezeigten Untervierecks zeigen;
  • 29a u. 29b schematische graphische Darstellungen sind, die die Anwendung des Prozesses nach den 13a u. 13b auf ein weiteres Unterviereck (ein viertes) des in 24 gezeigten Untervierecks zeigen;
  • 30 eine vergrößerte Ansicht nach 15 ist und den Bereich von Interesse und ein viertes der Untervierecke nach 7 zeigt; und
  • 31 eine schematische graphische Darstellung ist, die 30 entspricht und die Anwendung des Prozesses nach den 13a u. 13b auf das vierte der Untervierecke nach 7 zeigt;
  • 32 ein Ablaufplan ist, der weitere Schritte zeigt, die im Wiedergewinnungsprozess nach den 13a u. 13b enthalten sind; und jede der
  • 33a33e eine schematische Veranschaulichung einer Region von Interesse ist, für die Punkte gemäß der Erfindung wiederzugewinnen sind.
  • Überblick
  • Die Datenbank-Server DB1, DB2, wie z. B. jene, die in 1 gezeigt sind, speichern typischerweise Informationen für die Wiedergewinnung durch die Anwender. Auf der physikalischen Ebene enthält die Kommunikationsumgebung, in der sich die Datenbank-Server DB1, DB2 befinden, wenigstens eine Anwenderschnittstelle, die im Allgemeinen durch ein Computer-Endgerät oder einen Arbeitsplatzrechner T3 bereitgestellt wird.
  • Die Ausführungsformen der Erfindung können im Arbeitsplatzrechner T3 ausgeführt werden, der mit den Datenbank-Servern DB1, DB2 verbunden ist. Obwohl die Datenbank-Server DB1, DB2 im selben LAN N1 wie das Endgerät T3 gezeigt sind, ist es selbstverständlich, dass die Datenbank-Server DB1, DB2 mit anderen Netzen verbunden sein könnten, die wiederum über eine oder mehrere (nicht gezeigte) Vermittlungen und/oder Router mit dem LAN N1 verbunden sind. Die Ausführungsformen empfangen Daten als Eingabe, z. B. als eine Datei, und bringen einen Index an den Daten an, wie im Folgenden ausführlicher beschrieben wird. Der angebrachte Index wird dann in einer der Datenbanken DB1, DB2 gesichert, wobei die indexieren Daten außerdem in einer durch die Struktur des angebrachten Indexes gegebenen Reihenfolge in einer der Datenbanken DB1, DB2 gesichert werden. Der angebrachte Index kann in derselben oder in einer anderen Datenbank wie der Datenbank, in der die Daten gespeichert sind, gesichert werden.
  • Die Ausführungsformen der vorliegenden Erfindung betreffen das Indexieren von Entitäten, die durch 2 Dimensionen definiert sind. Offensichtliche Beispiele der Entitäten, die gemäß den Ausführungsformen indexiert werden können, enthalten den Ort von Objekten, wie z. B. Tankstellen, Geldautomaten usw., da die Position der Objekte im Allgemeinen in Form von Breite und Länge definiert ist. Viele andere Entitäten können in 2 Dimensionen dargestellt werden – z. B. die Beschleunigung eines Motorrads als eine Funktion von Zeit und Geschwindigkeit, die Leitfähigkeit eines Materials als eine Funktion der Materialeigenschaften und der Temperatur, die Deformation eines Gegenstandes als eine Funktion der Materialeigenschaften und der auf den Gegenstand ausgeübten Kraft usw. Außerdem können Transformationen auf n-dimensionale Parameter angewendet werden, um sie auf 2-dimensionale Parameter zu verringern, die in einem 2-dimensionalen Raum gezeigt werden können.
  • Ein weiteres Beispiel von Entitäten, die unter Verwendung der Ausführungsformen der vorliegenden Erfindung indexiert werden können, enthält Reichweiteninformationen, z. B. Zeitinformationen, Preisinformationen und Informationen über medizinische Zustande.
  • Ein Beispiel der Zeitspanneninformationen sind die Öffnungs- und Schließzeiten von Geschäfts- und Freizeiteinrichtungen – diese Zeiten können in zwei Dimensionen ausgedrückt werden, z. B. mit den Schließ- und Öffnungszeiten auf den Ordinaten- bzw. Abszissenachsen. Ähnlich können Lieferzeiten (früheste und späteste) in zwei Dimensionen ausgedrückt werden.
  • Ein Beispiel der Preisinformationen enthält die Preise von Waren, so dass z. B. maximale und minimale Preise von Waren jeweils in einer von zwei Dimensionen ausgedrückt und auf diese Weise unter Verwendung der Ausführungsformen der Erfindung indexiert werden können. Die Preisinformationen enthalten außerdem Handelsinformationen, wie sie verwendet werden, um Wertpapiere, Aktien, Anleihen usw. zu kaufen und zu verkaufen.
  • Ein Beispiel der Informationen über medizinische Zustände enthält Statistiken bezüglich messbarer Zustände, wie z. B. Körpertemperatur und Blutdruck, und Zustande, die in numerische Darstellungen übersetzt werden können, wie z. B. die Stellen von Karzinomen.
  • In der folgenden Beschreibung werden die Entitäten im Allgemeinen als "Punkte" bezeichnet, um den Kontext der Entitäten (z. B. Tankstelle, Geldautomat usw.) von den Mechaniken der Ausführungsform zu trennen.
  • Im Überblick wird eine Ausführungsform eines Verfahrens zum Indexieren von Punkten unter Bezugnahme auf 2 beschrieben. 2 zeigt einen Bereich R1, in dem sich mehrere Punkte 200 befinden. Jeder der Punkte ist in einem Raum der x, y-Koordinaten definiert. Der Bereich R1, der zu indexierende Punkte umfasst, wird im Wesentlichen untersucht und in die Bereiche R3, R4, die Punkte enthalten, und den Bereich R2, der keine Punkte enthält, zerteilt (die Bereiche könnten in jede Form, wie z. B. Rechteck, Dreieck oder Streifen, zerteilt werden; 2 zeigt die Bereiche, die in Streifen zerteilt sind, um das erfinderische Konzept dieser Erfindung zu beschreiben). Die Ausführungsform untersucht dann die Verteilung der Punkte in den Bereichen R3 und R4, wobei sie dann in einem Maßstab, der kleiner als der ist, der für die Region R1 betrachtet worden ist, die Bereiche in R3 und R4 identifiziert, die Punkte umfassen. In 3 wird R4 im wesentlichen R11, wobei die Verteilung der Punkte in R11 untersucht wird. Indem die Verteilung der Punkte in dieser Weise konzentriert wird, werden die Bereiche, die keine Punkte enthalten, die Region R2 in 2 und die Region R12 in 3, implizit verworfen. Der Prozess wird kontinuierlich wiederholt, wobei er sich effektiv durch eine Folge von Bereichen mit abnehmender Größe "nach unten vertieft", bis die Größe eines Bereichs so ist, dass sie auf die Größe eines einzigen Punktes kollabiert. Wie sich die Ausführungsform "nach unten vertieft", ist jeder Bereich mit dem Bereich über ihm verknüpft, so dass jeder Punkt durch eine Folge von Bereichen verknüpft ist. Ein Index für diese Punkte umfasst die Folge der Bereiche, wobei diese Bereiche und Punkte verwendet werden, um einen Index zu erzeugen (was im Folgenden ausführlicher beschrieben wird), der in der Datenbank DB1 gesichert wird. Die Beziehung zwischen den Punkten und den Bereichen ermöglicht es, dass die Punkte durch die Identifikation eines Bereichs im Index identifiziert werden.
  • Einer der Vorteile des Erzeugens eines Indexes, wie oben beschrieben worden ist, ist, dass der Abfrage-Suchbereich auf Bereiche begrenzt ist, von denen bekannt ist, dass sie Punkte enthalten – d. h. die Abfragen werden nur an den in der Datenbank DB1 gesicherten Bereichen ausgeführt, und da diese Bereiche per definitionem Punkte enthalten, ist der Suchbereich relativ kompakt. Zurück in 2 ist der Prozess des Identifizierens von Punkten in Bezug auf eine Abfrage gemäß der oben beschriebenen Ausführungsform schneller, als wenn der Index Informationen bezüglich des ganzen Bereichs R1 umfasst.
  • In einer besonderen Form einer Ausführungsform, die im Folgenden unter Bezugnahme auf die 411 dargestellt wird, sind die Punkte 2-dimensionale Koordinaten im x, y-Raum. Falls die zu indexierenden Entitäten Beschleunigungswerte sind, die durch eine entsprechende Menge von Zeit- und Geschwindigkeitswerten definiert sind, werden die Zeit- und Geschwindigkeitswerte direkt auf den Raum der x, y-Koordinaten abgebildet, so dass (t1, v1), (t2, v2), ..., (tn, vn) Koordinaten von Punkten sind, die den Beschleunigungswerten entsprechen. Falls die zu indexierenden Entitäten Ortswerte sind, die durch eine entsprechende Menge von Breiten- und Längenwerten definiert sind, werden die Breiten- und Längewerte direkt auf einem Raum der x, y-Koordinaten abgebildet, so dass (lat_1, long_1), ..., (lat_n, long_n) die Koordinaten von Punkten sind, die den Ortswerten entsprechen. Es wird angenommen, dass die Punkte gespeichert worden sind (z. B. in eine Datei geschrieben worden sind), so dass die Ausführungsformen der Erfindung die Punkte in Form einer Datei lesen. In alternati ven Ausführungsformen kann ein Anwender die Punkte eingeben, wenn der Index für diese Punkte angebracht wird.
  • Außerdem sind in der im Folgenden dargestellten Ausführungsform die Bereiche Quadrate, die in der folgenden Beschreibung als "Viereck" und "Unterviereck" bezeichnet werden, wobei jedes Viereck der Reihe nach in vier Untervierecke zerteilt wird. Jedes Unterviereck wird nach dem Vorhandensein von Punkten untersucht. Jene ohne Punkte werden verworfen, was ein äquivalenter Prozess zum Verwerfen des Bereichs R2 ist, der oben unter Bezugnahme auf die 2 und 3 beschrieben worden ist, wobei jedes neue Unterviereck, das Punkte enthält, um den kleinsten Bereich "schrumpfverpackt" wird, der in diesem Unterviereck Punkte enthält. (Die Ausführungsform analysiert die Bereiche in Übereinstimmung mit Quadraten, es könnten aber viele andere Formen verwendet werden, um die "Schrumpfverpackung" um die Punkte auszuführen.) Jedes Unterviereck wird dann abermals in vier Untervierecke unterteilt, wobei leere Untervierecke abermals verworfen werden und jedes verbleibende Unterviereck um seinen kleinsten Bereich, der Punkte enthält, "schrumpfverpackt" wird. Schließlich ist jedes verbleibende Unterviereck auf einen einzigen Punkt "schrumpfverpackt", wobei seine Koordinaten jene des betroffenen Punkts sind. Sobald das Viereck und alle Untervierecke, einschließlich sowohl der dazwischenliegenden Untervierecke, die nicht verworfen worden sind, als auch der Untervierecke, die mit einzelnen Punkten zusammenfallen, identifiziert worden sind, wird ein Index für die Punkte, der das Viereck und die Untervierecke umfasst, die für jeden relevant sind, erzeugt. Dies ist nach der Erörterung der 510 ausführlich beschrieben.
  • Im Folgenden sind die Schritte S4.1 bis S4.9 der Reihe nach in dem Ablaufplan nach den 4a und 4b gezeigt und durch die Operationen mit den gleichen Bezugszeichen, wie sie in den 511 gezeigt sind, veranschaulicht.
  • 5
    • • Schritt S4.1 Lese die x, y-Koordinaten aller zu indexierender Punkte ein (wie oben dargelegt worden ist, können die Punkte von irgendeiner Speicherstelle, wie z. B. einer Datei, oder direkt von einem Anwender gelesen werden);
    • • Schritt S4.2 Erstelle einen Begrenzungsrahmen für alle Punkte, identifiziere und führe die "Schrumpfverpackung" um die Koordinaten der äußersten Punkte aus (der Begrenzungsrahmen ist durch die Differenz zwischen den Koordinaten der äußersten Punkte sowohl in der x- als auch der y-Dimension gegeben: dx bzw. dy). Der Begrenzungsrahmen ist das äußerste Viereck 501;
    • • Schritt S4.3 u. Schritt 4.4 Sichere die Ausmaße des Vierecks 501 – d. h. dx, dy – und die Koordinaten der Punkte in ihm;
    • • Schritt S4.5 Prüfe, ob das äußerste Viereck 501 eine positive Größe besitzt (d. h., sind dy, dy des Vierecks 501 gleich null?). In dem in 5 gezeigten Beispiel gibt es ein äußerstes Viereck 501, weil sich in dem Viereck mehrere Punkte befinden, sind dx, dy von null verschieden, wobei folglich das Viereck 501 eine positive Größe besitzt;
    • • Schritt S4.6 Zerteile das äußerste Viereck 501 in vier Untervierecke 503a, 503b, 503c, 503d;
    • • Schritt S4.6.1 Etikettiere jeden Punkt mit seinem relevanten Unterviereck und zeichne die Anzahl der Punkte in jedem Unterviereck auf;
    • • Schritt S4.7 Prüfe beginnend mit dem Unterviereck 0 (503a), ob es irgendwelche Punkte im Unterviereck 503a gibt.
  • Wenn es Punkte gibt, gebe die Punkte in diesem Unterviereck 0 (503a) in den Schritt S4.1 ein und laufe für das Unterviereck 0 (503a) weiter durch die Schritte Schritt S4.1, wie im Folgenden unter Bezugnahme auf 6 beschrieben ist.
  • 6
    • • Schritt S4.1 Lese die x, y-Koordinaten der Punkte ein, die dem Unterviereck 503a entsprechen;
    • • Schritt S4.2 Erstelle einen Begrenzungsrahmen für alle Punkte in 503a, erzeuge ein "schrumpfverpacktes" Unterviereck 0 601. Dies veranschaulicht das oben beschriebene Prinzip – die Ausführungsform identifiziert einen Bereich im Unterviereck 0, in dem es keine Punkte gibt, wobei dieser Bereich dann verworfen wird;
    • • Schritt S4.3 u. Schritt S4.4 Sichere die Ausmaße des Untervierecks 0 (601) – d. h. dy, dy – und die Koordinaten der Punkte in ihm;
    • • Schritt S4.5 Prüfe, ob das Unterviereck 601 eine positive Größe besitzt? (Das heißt sind dx, dy des Vierecks 601 gleich null?) Wie in 6 zu sehen ist, befinden sich im Viereck 601 mehrere Punkte, sind dx, dy für das Viereck 601 von null verschieden und besitzt folglich das Unterviereck 601 eine positive Größe;
    • • Schritt S4.6 Zerteile das Unterviereck 0 601 in 4 Untervierecke; 0,0 (603a), 0,1 (603b), 0,2 (603c), 0,3 (603d);
    • • Schritt S4.6.1 Etikettiere jeden Punkt mit seinem relevanten Unterviereck und zeichne die Anzahl der Punkte in jedem Unterviereck auf;
    • • Schritt S4.7 Prüfe beginnend mit dem Unterviereck 0,0 (603a), ob es im Unterviereck 0,0 (603a) irgendwelche Punkte gibt: Da es Punkte gibt, gebe diese Punkte in diesem Unterviereck 0,0 (603a) in den Schritt S4.1 ein und laufe für das Unterviereck 0,0 (603a) weiter durch die Schritte Schritt S4.1, wie im Folgenden unter Bezugnahme auf 7 beschrieben ist.
  • 7
    • • Schritt S4.1 Lese die x, y-Koordinaten der Punkte ein, die dem Unterviereck 603a entsprechen;
    • • Schritt S4.2 Erstelle einen Begrenzungsrahmen für alle Punkte im Unterviereck 0,0 (603a), erzeuge ein "schrumpfverpacktes" Unterviereck 0,0 701. Wie für das Unterviereck 0 wird der Bereich ohne Punkte im Unterviereck 603a ignoriert;
    • • Schritt S4.3 u. Schritt S4.4 Sichere die Ausmaße des Untervierecks 0,0 (701) – d. h. dy, dy – und die Koordinaten der Punkte in ihm;
    • • Schritt S4.5 Prüfe, ob das Unterviereck 701 eine positive Größe besitzt? (Das heißt sind dx, dy des Vierecks 701 gleich null?) Wie in 7 zu sehen ist, befinden sich im Viereck 701 mehrere Punkte, sind dx, dy für das Viereck 701 von null verschieden und besitzt dieses Unterviereck 701 eine positive Größe;
    • • Schritt S4.6 Zerteile das Unterviereck 0,0 701 in 4 Untervierecke; 0,0,0 (703a), 0,0,1 (703b), 0,0,2 (703c), 0,0,3 (703d);
    • • Schritt S4.6.1 Etikettiere jeden Punkt mit seinem relevanten Unterviereck und zeichne die Anzahl der Punkte in jedem Unterviereck auf;
    • • Schritt S4.7 Prüfe beginnend mit dem Unterviereck 0,0,0 (703a), ob es im Unterviereck 0,0,0 (703a) irgendwelche Punkte gibt: es gibt einen Punkt im Unterviereck 0,0,0 (703a), gebe daher diese Punkte in diesem Unterviereck 0,0,0 in den Schritt S4.1 ein und laufe für das Unterviereck 0,0,0 (703a) weiter durch die Schritte Schritt S4.1, wie im Folgenden unter weiterer Bezugnahme auf 7 beschrieben ist.
  • Außerdem in 7
    • • Schritt S4.1 Lese die x, y-Koordinaten der Punkte ein, die dem Unterviereck 703a entsprechen;
    • • Schritt S4.2 Erstelle einen Begrenzungsrahmen für alle Punkte im Unterviereck 0,0,0 (703a), erzeuge ein "schrumpfverpacktes" Unterviereck 0,0,0: hier um einen einzigen Punkt;
    • • Schritt S4.3 u. Schritt S4.4 Sichere die Ausmaße des "schrumpfverpackten" Untervierecks 0,0,0, die nun auf einen einzigen Punkt herunter sind, so dass dy, dy = 0 gilt, und sichere die Koordinaten des Punkts;
    • • Schritt S4.5 Prüfe, ob das Unterviereck eine positive Größe besitzt? (Das heißt sind dx, dy des Punkts gleich null?) In der Tat sind dx und dy beide null, weil das Unterviereck 703a in einen einzigen Punkt kollabiert ist. Daher zum Schritt S4.8;
    • • Schritt S4.8 Inkrementiere den Unterviereck-Zähler i auf dieser Ebene (0,0,i), gebe die Punkte (Schritt S4.7) im Unterviereck 0,0,1 (703b) in den Schritt S4.1 ein und laufe für das Untervier eck 0,0,1 (703b) weiter durch die Schritte Schritt S4.1, wie im Folgenden unter Bezugnahme auf 8 beschrieben ist.
  • 8
    • • Schritt S4.1 Lese die x, y-Koordinaten der Punkte ein, die dem Unterviereck 703b entsprechen;
    • • Schritt S4.2 Erstelle einen Begrenzungsrahmen für alle Punkte im Unterviereck 0,0,1 (703b), erzeuge ein "schrumpfverpacktes" Unterviereck 0,0,1 801. Wie für das Unterviereck 0 wird der Bereich ohne Punkte im Unterviereck 703b ignoriert;
    • • Schritt S4.3 u. Schritt S4.4 Sichere die Ausmaße des Untervierecks 801 – d. h. dy, dy – und die Koordinaten der Punkte in ihm;
    • • Schritt S4.5 Prüfe, ob das Unterviereck 801 eine positive Größe besitzt? (Das heißt sind dx, dy des Vierecks 703a gleich null?) In dem Unterviereck 801 befinden sich mehrere Punkte, sind dx, dy für das Viereck 801 von null verschieden und besitzt folglich dieses Unterviereck 801 eine positive Größe;
    • • Schritt S4.6 Zerteile das Unterviereck 0,0,1 801 in 4 Untervierecke; 0,0,1,0 (803a), 0,0,1,1 (803b), 0,0,1,2 (803c), 0,0,1,3 (803d);
    • • Schritt S4.6.1 Etikettiere jeden Punkt mit seinem relevanten Unterviereck und zeichne die Anzahl der Punkte in jedem Unterviereck auf;
    • • Schritt S4.7 Prüfe beginnend mit dem Unterviereck 0,0,1,0 (803a), ob es im Unterviereck 0,0,1,0 (803a) irgendwelche Punkte gibt: Es gibt keine Punkte im Unterviereck 0,0,1,0 (803a);
    • • Schritt S4.8 Inkrementiere den Unterviereck-Zähler i auf dieser Ebene (0,0,1,i) und gebe die Punkte (Schritt S4.7) im Unterviereck 0,0,1,1 (803b) in den Schritt S4.1 ein und laufe für das Un terviereck 0,0,1,1 (803b) weiter durch die Schritte Schritt S4.1, wie im Folgenden unter Bezugnahme auf 9 beschrieben ist.
  • 9
    • • Schritt S4.1 Lese die x, y-Koordinaten der Punkte ein, die dem Unterviereck 803b entsprechen;
    • • Schritt S4.2 Erstelle einen Begrenzungsrahmen für alle Punkte im Unterviereck 0,0,1,1 (803b), erzeuge ein "schrumpfverpacktes" Unterviereck 0,0,1,1, das ein einziger Punkt ist;
    • • Schritt S4.3 u. Schritt S4.4 Sichere die Ausmaße des einzigen Punkts – d. h. dy, dy – und die Koordinaten des Punkts;
    • • Schritt S4.5 Prüfe, ob der Punkt eine positive Größe besitzt? (Das heißt sind dx, dy des Punkts gleich null?) In der Tat sind dx und dy beide null, weil das Unterviereck 803b in einen einzigen Punkt kollabiert ist. Daher zum Schritt 4.8;
    • • Schritt S4.8 Inkrementiere den Unterviereck-Zähler i auf dieser Ebene (0,0,1,i) und gebe die Punkte im Unterviereck 0,0,1,2 (803b) in den Schritt S4.1 ein und laufe für das Unterviereck 0,0,1,2 (803b) weiter durch die Schritte Schritt S4.1, wie im Folgenden unter weiterer Bezugnahme auf 9 beschrieben ist.
  • Außerdem in 9
    • • Schritt S4.1 Lese die x, y-Koordinaten der Punkte ein, die dem Unterviereck 803c entsprechen;
    • • Schritt S4.2 Erstelle einen Begrenzungsrahmen für alle Punkte im Unterviereck 0,0,1,2 (803c), erzeuge ein "schrumpfverpacktes" Unterviereck 0,0,1,2, das ein einziger Punkt ist;
    • • Schritt S4.3 u. Schritt S4.4 Sichere die Ausmaße des einzigen Punkts – d. h. dy, dy – und die Koordinaten des Punkts;
    • • Schritt S4.5 Prüfe, ob der Punkt eine positive Größe besitzt? (Das heißt sind dx, dy des Punkts gleich null?) In der Tat sind dx und dy beide null, weil das Unterviereck 803c in einen einzigen Punkt kollabiert ist. Daher zum Schritt S4.8;
    • • Schritt S4.8 Inkrementiere den Unterviereck-Zähler i auf dieser Ebene (0,0,1,i). Es gibt keine Punkte (Schritt S4.7) im Unterviereck 0,0,1,3 (803b), daher zurück zum Schritt S4.8: inkrementiere den Unterviereck-Zähler i auf dieser Ebene (0,0,1,i): aber i > 3, daher
    • • Schritt S4.9 Kehre zur Unterviereck-Ebene 0,0,i zurück und inkrementiere den Unterviereck-Zähler von 1 zu 2 und betrachte folglich das Unterviereck 0,0,2 (703c): Es gibt einen Punkt im Unterviereck 0,0,2 (703c), daher gebe die Punkte (Schritt S4.7) im Unterviereck 0,0,2 (703c) in den Schritt S4.1 ein und laufe für das Unterviereck 0,0,2 (703c) weiter durch die Schritte Schritt S4.1, wie im Folgenden unter Bezugnahme auf 10 beschrieben ist.
  • 10
    • • Schritt S4.1 Lese die x, y-Koordinaten der Punkte ein, die dem Unterviereck 703c entsprechen;
    • • Schritt S4.2 Erstelle einen Begrenzungsrahmen für alle Punkte im Unterviereck 0,0,2 (703c), erzeuge ein "schrumpfverpacktes" Unterviereck 0,0,2, das ein einziger Punkt ist;
    • • Schritt S4.3 u. Schritt S4.4 Sichere die Ausmaße des einzigen Punkts – d. h. dy, dy – und die Koordinaten des Punkts;
    • • Schritt S4.5 Prüfe, ob der Punkt eine positive Größe besitzt? (Das heißt sind dx, dy des Punkts gleich null?) In der Tat sind dx und dy beide null, weil das Unterviereck 703c in einen einzigen Punkt kollabiert ist. Daher zum Schritt 4.8;
    • • Schritt S4.8 Inkrementiere den Unterviereck-Zähler i auf dieser Ebene (0,0,i). Es gibt keine Punkte (Schritt S4.7) im Unterviereck 0,0,3 (703d), daher zurück zum Schritt S4.8: inkrementiere den Unterviereck-Zähler i auf dieser Ebene (0,0,i): aber i > 3, daher
    • • Schritt S4.9 Kehre zur Unterviereck-Ebene 0,i zurück und inkrementiere den Unterviereck-Zähler i von 0 zu 1 und betrachte folglich das Unterviereck 0,1 (603b), wie unter Bezugnahme auf 11 beschrieben ist.
  • 11
  • Der in den 810 beschriebene Prozess wird wiederholt, aber für das Unterviereck 0,1, wobei, sobald alle Punkte innerhalb des Untervierecks O,n Untervierecken zugeordnet worden sind, der Prozess zum Unterviereck 1 geht.
  • Wie früher beschrieben worden ist, ist das Anbringen eines Indexes an diesen Punkten dann eine Sache des Sicherns der Unterviereck-Informationen. Dies kann in vielen Arten bewerkstelligt werden, aber vorzugsweise umfasst der Index die in den Schritten S4.3 und S4.4 gesicherten Unterviereck-Informationen, nämlich die Ausmaße des Untervierecks (in den x, y-Koordinaten) und die Koordinaten der in dieses fallenden Punkte und eine Verknüpfung zu den 4 Unterquadranten in dem Unterviereck. Folglich umfasst der Index im Wesentlichen eine Hierarchie von Unterviereck-Strukturen, wobei die Hierarchie durch die Beziehung zwischen jedem aufeinander folgenden Unterviereck und seinen 4 Untervierecken gegeben ist. Die Untervierecke werden in Übereinstimmung mit der Unterviereck-Hierarchie vom größten Unterviereck (hier 501 in 5) hinunter zum kleinsten Unterviereck in den Index geschrieben.
  • Zusätzlich zum Sichern der Unterviereck-Strukturen in der Datenbank DB1 werden die Punkte in einer durch das Inverse der Unterviereck-Hierarchie gegebenen Reihenfolge in die Datenbank (entweder in dieselbe Datenbank oder eine andere Datenbank), z. B. in eine Datei, geschrieben. Folglich werden in diesem Fall die Punkte in den Untervierecken am unteren Ende der Hierarchie zuerst in die Datei geschrieben. Da die Punkte in eine Datei geschrieben werden, wird eine laufende Rechnung der Gesamtzahl der Punkte (Aufzeichnung der Anzahl der Punkte) aufrechterhalten, so dass ein Zähler, der momentane Anzahl der Punkte, der bisher begegnet worden ist, + 1 repräsentiert, in die entsprechende Unterviereck-Struktur geschrieben wird, wie jeder Punkt in die Datei geschrieben wird. Die Rechnung arbeitet vom kleinsten Unterviereck aufwärts, wobei sie für jedes Unterviereck im Wesentlichen die Position des ersten von allen Punkten in diesem Unterviereck im Vergleich zu allen indexierten Punkten (Possub_quad) angibt, z. B. unter Bezugnahme auf 12.
    Unterviereck Punkte im Unterviereck (N) Nummer des ersten in das Unterviereck geschriebenen Punkts (Possub_quad) hervorgehobener Punkt in der Punktedatei
    0,0,1,1 n (N = 1) 1 n, m, p, o, ...
    0,0,1,2 m (N = 1) 2 n, m, p, o, ...
    0,0,0 p (N = 1) 3 n, m, p, o, ...
    0,0,1 n, m (N = 2) 1 n, m, p, o, ...
    0,0,2 o (N = 1) 4 n, m, p, o, ...
    0,0 n, m, p, o (N = 4) 1 n, m, p, o, ...
    0,1,c,d einige Punkte 5 n, m, p, o, nächster ...
  • Folglich lautet die Punktedatei für das Unterviereck 501 (das äußerste Viereck, siehe 5) n, m, p, o, ... (beginnend vom kleinsten Unterviereck 0,0,1,1). Da sowohl die Anzahl der Punkte (N) als auch die Nummer in der laufenden Rechnung der Punkte (Possub_quad), die dem ersten Punkt in einem Unterviereck entspricht, in das Unterviereck geschrieben sind, können dann, sobald ein Unterviereck von Interesse identifiziert worden ist, die Punkte, die in dem identifizierten Unterviereck liegen, extrahiert werden, indem in der Punktedatei zu (Possub_quad) gegangen wird und N Punkte von dieser Position extrahiert werden. Dies ist in einer Ausführungsform demonstriert, die die Wiedergewinnung von Punkten demonstriert.
  • Das Wiedergewinnen von Informationen
  • Die zweite Erfindung bezieht sich auf ein Verfahren zum Wiedergewinnen von Entitäten mittels eines Indexes von Elementen, der mit den Entitäten in Beziehung steht, wenn die Beziehung zwischen jedem Element und den anderen Elementen im Index und die Beziehung zwischen den Elementen im Index und den indexierten Entitäten bekannt sind. Das Verfahren ist leicht auf einen in Übereinstimmung mit dem oben dargestellten Verfahren zum Indexieren erzeugten Index anwendbar, weil der Index eine Hierarchie von Unterviereck-Strukturen umfasst und die Hierarchie (durch die Viereck- > Unterviereck-Beziehungen) gut definiert ist. Es sollte jedoch daran gedacht werden, dass das Verfahren in gleicher Weise auf irgendeinen Indextyp anwendbar ist, der diese Bedingungen erfüllt.
  • In der folgenden Beschreibung wird eine Ausführungsform des Wiedergewinnungsprozesses beschrieben, bei der ein Index für die Punkte mit einer Abfrage, die eine "Region von Interesse" spezifiziert, abgefragt wird. Es wird angenommen, dass:
    • • die Elemente im Index mehrere Bereiche in einem vorgegebenen Bereich sind,
    • • die indexierten Entitäten Punkte sind, die durch zwei Dimensionen definiert sind;
    • • es eine vorgegebene Beziehung zwischen den Bereichen gibt; und
    • • es eine vorgegebene Beziehung zwischen den Bereichen und den Punkten gibt.
  • Im Wesentlichen identifiziert die Ausführungsform, welcher der Bereiche
    • a) mit der Region von Interesse überlappt und
    • b) in diesen Bereichen Punkte enthält, die mit der Region von Interesse überlappen.
  • Die vorgegebene Beziehung zwischen den Bereichen und den Punkten wird dann verwendet, um die Punkte zu extrahieren, die in die identifizierten Bereiche fallen.
  • Eine Region von Interesse bezieht sich auf eine Region in der zweidimensionalen Darstellung der Entität. Folglich würde für die oben beschriebene Zeitspanne (die Schließ- und Öffnungszeiten von Geschäfts- und Freizeiteinrichtungen) eine Region von Interesse eine Zeitdauer von Interesse sein – wie z. B. "die Geschäfte öffnen zwischen 10.00 und 13.00 Uhr". Die Region von Interesse wird dann durch eine Region (vorzugsweise ein Quadrat) definiert sein, das innerhalb im Voraus spezifizierter Punkte begrenzt ist. In den 33a–e könnte die Region von Interesse irgendeine der folgenden sein:
    (0, 10), (13, 24) = die Einrichtungen, die irgendwann zwischen 10.00 u. 13.00 offen sind (33a)
    (0, 13), (10, 24) = die Einrichtungen, die durchgehend zwischen 10.00 u. 13.00 offen sind (33b)
    (0, 10), (10, 13) = die Einrichtungen, die vor 10.00 offen sind, aber vor 13.00 schließen (33c)
    (10, 13), (13, 24) = die Einrichtungen, die nach 10.00 öffnen, aber nach 13.00 schließen (33d)
    (10, 10), (13, 13) = die Einrichtungen, die nach 10.00 öffnen u. vor 13.00 schließen (33e)
  • Ähnlich würde für die oben beschriebene Preisklasse eine Region von Interesse eine Preisspanne sein, so dass für eine Wiedergewinnungsanforderung von "allen Elementen, die irgendwo in die Spanne von £50,00 und £80,00 fallen", die Region von Interesse durch eine Region definiert sein könnte, die in den Punkten (0, 50) und (80, 80) begrenzt ist.
  • Für die oben beschriebenen Ortsinformationen würde eine Region von Interesse ein Gebiet von Positionen sein, wie z. B. "alle Elemente, die sich zwischen einer ersten Position ((lat, long)1) und einer zweiten Position ((lat, long)2) befinden".
  • Ein Ablaufplan, der die Schritte eines Verfahrens zum Identifizieren von Bereichen zeigt, die mit der Region von Interesse überlappen, wenn sich die Region von Interesse auf Ortsinformationen bezieht, ist in den 13a und 13b gezeigt. Die Schritte sind dann für die in 14 gezeigte Region von Interesse in den 1431 veranschaulicht. In dieser Ausführungsform werden spezifische Beispiele der Bereiche in einer vorgegebenen Region als Vierecke und Untervierecke bezeichnet. Die in 13 gezeigten Verfahrensschritte werden im Folgenden unter Bezugnahme auf jede der 1431 beschrieben.
  • 14
    • • S13.1.1 Lese die x, y-Koordinaten einer Region von Interesse (x1, y1), (x2, y2) ein. Als ein Beispiel könnten diese, falls ein Anwender wünscht, die Kfz-Werkstätten in einem bestimmten Bereich zu lokalisieren, als Breiten-/Längenpaare indexiert sein, die Punkte in einem zweidimensionalen Raum definieren, wobei der geographische Bereich, an dem der Anwender interessiert ist, als eine "Region von Interesse" in dem zweidimensionalen Raum ausgedrückt werden kann;
    • • S13.1.2 Gewinne die Koordinaten der Punkte und die Größe des Vierecks für das äußerste Viereck wieder und setze (X1_Q, Y1_Q), (X2_Q, Y2_Q) auf die Größe des äußersten Vierecks;
    • • S13.2 Beurteile, ob die Region von Interesse das Beschneiden erfordert: falls x1 < X1_Q, setze x1 = X1_Q; falls y1 < Y1_Q, setze y1 = Y1_Q; falls x2 > X2_Q, setze x2 = X2_Q; falls y2 > Y2_Q, setze y2 = Y2_Q. Für die in 14 gezeigte Beispielregion von Interesse ist keine dieser Bedingungen erfüllt;
    • • S13.3 Beurteile, ob x1 > x2 oder y1 > y2 gilt. In diesem Fall sind keine Bedingungen erfüllt;
  • Die Schritte S13.2 und S13.3 sind nur Beispiele von Bedingungen, die angewendet werden können, um festzustellen, ob das in S13.1.2 wiedergewonnene Unterviereck mit der Region von Interesse überlappt, und ob es, wenn es eine Überlappung gibt, irgendwelche Punkte in der überlappenden Region gibt; es wird in Betracht gezogen, dass alternative Verfahren angewendet werden könnten, um dies festzustellen.
    • • S13.4 Beurteile, ob die Region von Interesse exakt mit dem Viereck überlappt. Nein:
    • • S13.5 Gewinne ein Unterviereck (503a) des aktuellen Vierecks (501) in Übereinstimmung mit S13.1.2 wieder, wie unter Bezugnahme auf 15 beschrieben ist.
  • 15
    • • S13.1.2 Gewinne die Koordinaten der Punkte und die Größe des Untervierecks aus dem "schrumpfverpackten" Unterviereck 0 601 wieder: setze (X1_Q, Y1_Q), (X2_Q, Y2_Q) auf die Größe des "schrumpfverpackten" Untervierecks 601;
    • • S13.2 Beurteile, ob die Region von Interesse das Beschneiden erfordert: falls x1 < X1_Q, setze x1 = X1_Q; falls y1 < Y1_Q, setze y1 = Y1_Q; falls x2 > X2_Q, setze x2 = X2_Q; falls y2 > Y2_Q, setze y2 = Y2_Q. In diesem Fall sind keine dieser Bedingungen erfüllt;
    • • S13.3 Beurteile, ob x1 > x2 oder y1 > y2 gilt. In diesem Fall sind keine Bedingungen erfüllt;
    • • S13.4 Beurteile, ob die Region von Interesse exakt mit dem Unterviereck überlappt. Nein:
    • • S13.5 Gewinne ein Unterviereck des aktuellen Untervierecks in Übereinstimmung mit S13.1.2 wieder, wie unter Bezugnahme auf die 16 und 17 beschrieben ist.
  • 16 u. 17
    • • S13.1.2 Gewinne die Koordinaten der Punkte und die Größe des Untervierecks aus dem "schrumpfverpackten" Unterviereck 0,0 701 wieder: setze (X1_Q, Y1_Q), (X2_Q, Y2_Q) auf die Größe des "schrumpfverpackten" Untervierecks 701;
    • • S13.2 Beurteile, ob die Region von Interesse das Beschneiden erfordert: x2 > X2_Q, daher setze x2 = X2_Q, und y2 > Y2_Q, daher setze y2 = Y2_Q;
    • • S13.3 Beurteile, ob x1 > x2 oder y1 > y2 gilt. In diesem Fall (17) sind beide Bedingungen erfüllt, was bedeutet, dass es keine Punkte im Unterviereck 0,0 (701) gibt, die in die Region von Interesse fallen;
    • • S13.6 Inkrementiere den Unterviereck-Zähler i auf dieser Ebene (0,i) und gewinne das Unterviereck (0,1) in Übereinstimmung mit S13.1.2 wieder, wie unter Bezugnahme auf die 18 und 19 beschrieben ist.
  • 18 u. 19
    • • S13.1.2 Gewinne die Koordinaten der Punkte und die Größe des Untervierecks aus dem "schrumpfverpackten" Unterviereck 0,1 wieder: setze (X1_Q, Y1_Q), (X2_Q, Y2_Q) auf die Größe des "schrumpfverpackten" Untervierecks 0,1;
    • • S13.2 Beurteile, ob die Region von Interesse das Beschneiden erfordert: x1 < X1_Q, daher setze x1 = X1_Q, und y2 > Y2_Q, daher setze y2 = Y2_Q;
    • • S13.3 Beurteile, ob x1 > x2 oder y1 > y2 gilt. In diesem Fall sind keine Bedingungen erfüllt;
    • • S13.4 Beurteile, ob die (nun beschnittene) Region von Interesse exakt mit dem Unterviereck überlappt. Nein:
    • • S13.5 Gewinne ein Unterviereck 0,1,0 des aktuellen Untervierecks 0,1 in Übereinstimmung mit S13.1.2 wieder, wie unter Bezugnahme auf die 20a und 20b beschrieben ist.
  • 20a u. 20b
    • • S13.1.2 Gewinne die Koordinaten der Punkte und die Größe des Untervierecks aus dem "schrumpfverpackten" Unterviereck 0,1,0 wieder: setze (X1_Q, Y1_Q), (X2_Q, Y2_Q) auf die Größe des "schrumpfverpackten" Untervierecks 0,1,0;
    • • S13.2 Beurteile, ob die Region von Interesse das Beschneiden erfordert: x2 > X2_Q, daher setze x2 = X2_Q, und y2 > Y2_Q, daher setze y2 = Y2_Q;
    • • S13.3 Beurteile, ob x1 > x2 oder y1 > y2 gilt. In diesem Fall (20b) sind beide Bedingungen erfüllt, was bedeutet, dass es keine Punkte im Unterviereck 0,1,0 gibt, die in die Region von Interesse fallen;
    • • S13.6 Inkrementiere den Unterviereck-Zähler i auf dieser Ebene (0,1,i) und (S13.6.1) gewinne das Unterviereck (0,1,1) in Übereinstimmung mit S13.1.2 wieder, wie unter Bezugnahme auf die 21a und 21b beschrieben ist.
  • 21a u. 21b
    • • S13.1.2 Gewinne die Koordinaten der Punkte und die Größe des Untervierecks aus dem "schrumpfverpackten" Unterviereck 0,1,1 wieder: setze (X1_Q, Y1_Q), (X2_Q, Y2_Q) auf die Größe des "schrumpfverpackten" Untervierecks 0,1,1 – d. h. eines einzigen Punkts;
    • • S13.2 Beurteile, ob die Region von Interesse das Beschneiden erfordert: x1 < X1_Q, daher setze x1 = X1_Q, und y2 > Y2_Q, daher setze y2 = Y2_Q;
    • • S13.3 Beurteile, ob x1 > x2 oder y1 > y2 gilt. In diesem Fall (21b) sind beide Bedingungen erfüllt, was bedeutet, dass es keine Punkte im Unterviereck 0,1,1 gibt, die in die Region von Interesse fallen;
    • • S13.6 Inkrementiere den Unterviereck-Zähler i auf dieser Ebene (0,1,i) und (S13.6.1) gewinne das Unterviereck (0,1,2) in Übereinstimmung mit S13.1.2 wieder, wie unter Bezugnahme auf die 22a und 22b beschrieben ist.
  • 22a u. 22b
    • • S13.1.2 Gewinne die Koordinaten der Punkte und die Größe des Untervierecks aus dem "schrumpfverpackten" Unterviereck 0,1,2 wieder: setze (X1_Q, Y1_Q), (X2_Q, Y2_Q) auf die Größe des "schrumpfverpackten" Untervierecks 0,1,2 – d. h. eines einzigen Punkts;
    • • S13.2 Beurteile, ob die Region von Interesse das Beschneiden erfordert: x1 < X1_Q, daher setze x1 = X1_Q, y1 < Y1_Q, x2 > X2_Q und y2 > Y2_Q, daher setze x1 = X1_Q, y1 = Y1_Q, x2 = X2_Q, y2 = Y2_Q;
    • • S13.3 Beurteile, ob x1 > x2 oder y1 > y2 gilt. Nein;
    • • S13.4 Beurteile, ob die (nun beschnittene) Region von Interesse exakt mit dem Unterviereck überlappt: Ja;
    • • S13.4.2 Zeichne das Unterviereck und die Anzahl der Punkte im Unterviereck (hier 1) auf;
    • • S13.6 Inkrementiere den Unterviereck-Zähler i auf dieser Ebene (0,1,i) und (S13.6.1) gewinne das Unterviereck (0,1,3) in Übereinstimmung mit S13.1.2 wieder, wie unter Bezugnahme auf die 23a und 23b beschrieben ist.
  • 23a u. 23b
    • • S13.1.2 Gewinne die Koordinaten der Punkte und die Größe des Untervierecks aus dem "schrumpfverpackten" Unterviereck 0,1,3 wieder: setze (X1_Q, Y1_Q), (X2_Q, Y2_Q) auf die Größe des "schrumpfverpackten" Untervierecks 0,1,3 – d. h. eines einzigen Punkts;
    • • S13.2 Beurteile, ob die Region von Interesse das Beschneiden erfordert: x1 < X1_Q, daher setze x1 = X1_Q, y1 < Y1_Q, x2 > X2_Q und y2 > Y2_Q, daher setze x1 = X1_Q, y1 = Y1_Q, x2 = X2_Q, y2 = Y2_Q;
    • • S13.3 Beurteile, ob x1 > x2 oder y1 > y2 gilt. Nein;
    • • S13.4 Beurteile, ob die (nun beschnittene) Region von Interesse exakt mit dem Unterviereck überlappt: Ja;
    • • S13.4.2 Zeichne das Unterviereck und die Anzahl der Punkte im Unterviereck (hier 1) auf;
    • • S13.6 Inkrementiere den Unterviereck-Zähler i auf dieser Ebene (0,1,i) ... i > 3, daher (S13.6.2) gewinne das Unterviereck (0,2) in Übereinstimmung mit S13.1.2 wieder, wie unter Bezugnahme auf die 24 und 25 beschrieben ist.
  • 24 u. 25
    • • S13.1.2 Gewinne die Koordinaten der Punkte und die Größe des Untervierecks aus dem "schrumpfverpackten" Unterviereck 0,2 wieder: setze (X1_Q, Y1_Q), (X2_Q, Y2_Q) auf die Größe des "schrumpfverpackten" Untervierecks 0,2;
    • • S13.2 Beurteile, ob die Region von Interesse das Beschneiden erfordert: y1 < Y1_Q, daher setze y1 = Y1_Q, und x2 > X2_Q, daher setze x2 = X2_Q;
    • • S13.3 Beurteile, ob x1 > x2 oder y1 > y2 gilt. In diesem Fall sind keine Bedingungen erfüllt;
    • • S13.4 Beurteile, ob die (nun beschnittene) Region von Interesse exakt mit dem Unterviereck überlappt. Nein:
    • • S13.5 Gewinne ein Unterviereck 0,2,0 des aktuellen Untervierecks 0,2 in Übereinstimmung mit S13.1.2 wieder, wie unter Bezugnahme auf die 26a und 26b beschrieben ist.
  • 26a u. 26b
    • • S13.1.2 Gewinne die Koordinaten der Punkte und die Größe des Untervierecks aus dem "schrumpfverpackten" Unterviereck 0,2,0 wieder: setze (X1_Q, Y1_Q), (X2_Q, Y2_Q) auf die Größe des "schrumpfverpackten" Untervierecks 0,2,0;
    • • S13.2 Beurteile, ob die Region von Interesse das Beschneiden erfordert: x2 > X2_Q, daher setze x2 = X2_Q, und y2 > Y2_Q, daher setze y2 = Y2_Q;
    • • S13.3 Beurteile, ob x1 > x2 oder y1 > y2 gilt. In diesem Fall (26b) sind beide Bedingungen erfüllt, was bedeutet, dass es keine Punkte im Unterviereck 0,2,0 gibt, die in die Region von Interesse fallen;
    • • S13.6 Inkrementiere den Unterviereck-Zähler i auf dieser Ebene (0,2,i) und (S13.6.1) gewinne das Unterviereck (0,2,1) in Übereinstimmung mit S13.1.2 wieder, wie unter Bezugnahme auf die 27a und 27b beschrieben ist.
  • 27a u. 27b
    • • S13.1.2 Gewinne die Koordinaten der Punkte und die Größe des Untervierecks aus dem "schrumpfverpackten" Unterviereck 0,2,1 wieder: setze (X1_Q, Y1_Q), (X2_Q, Y2_Q) auf die Größe des "schrumpfverpackten" Untervierecks 0,2,1 – d. h. eines einzigen Punkts;
    • • S13.2 Beurteile, ob die Region von Interesse das Beschneiden erfordert: x1 < X1_Q, daher setze x1 = X1_Q, y1 < Y1_Q, x2 > X2_Q und y2 > Y2_Q, daher setze x1 = X1_Q, y1 = Y1_Q, x2 = X2_Q, y2 = Y2_Q;
    • • S13.3 Beurteile, ob x1 > x2 oder y1 > y2 gilt. Nein;
    • • S13.4 Beurteile, ob die (nun beschnittene) Region von Interesse exakt mit dem Unterviereck überlappt: Ja;
    • • S13.4.2 Zeichne das Unterviereck und die Anzahl der Punkte im Unterviereck (hier 1) auf;
    • • S13.6 Inkrementiere den Unterviereck-Zähler i auf dieser Ebene (0,1,i) ... i < 3, daher (S13.6.1) gewinne das Unterviereck (0,2,2) in Übereinstimmung mit S13.1.2 wieder, wie unter Bezugnahme auf die 28a und 28b beschrieben ist.
  • 28a u. 28b
    • • S13.1.2 Gewinne die Koordinaten der Punkte und die Größe des Untervierecks aus dem "schrumpfverpackten" Unterviereck 0,2,2 wieder: setze (X1_Q, Y1_Q), (X2_Q, Y2_Q) auf die Größe des "schrumpfverpackten" Untervierecks 0,2,2;
    • • S13.2 Beurteile, ob die Region von Interesse das Beschneiden erfordert: x2 > X2_Q, daher setze x2 = X2_Q, und y1 < Y1_Q, daher setze y1 = Y1_Q;
    • • S13.3 Beurteile, ob x1 > x2 oder y1 > y2 gilt. In diesem Fall (28b) sind beide Bedingungen erfüllt, was bedeutet, dass es keine Punkte im Unterviereck 0,2,2 gibt, die in die Region von Interesse fallen;
    • • S13.6 Inkrementiere den Unterviereck-Zähler i auf dieser Ebene (0,2,i) und (S13.6.1) gewinne das Unterviereck (0,2,3) in Übereinstimmung mit S13.1.2 wieder, wie unter Bezugnahme auf 29 beschrieben ist.
  • 29
    • • S13.1.2 Gewinne die Koordinaten der Punkte und die Größe des Untervierecks aus dem "schrumpfverpackten" Unterviereck 0,2,3 wieder: es gibt kein Unterviereck, das 0,2,3 entspricht, weil es keine Punkte in dem Bereich gibt, der diesem Unterviereck entspricht, daher springe zu S13.6;
    • • S13.6.2 Inkrementiere den Unterviereck-Zähler i auf dieser Ebene (0,2,i): i > 3, daher (S13.6.2) gewinne das Unterviereck (0,3) in Übereinstimmung mit S13.1.2 wieder, wie unter Bezugnahme auf die 30 und 31 beschrieben ist.
  • 30 u. 31
    • • S13.2 Beurteile, ob die Region von Interesse das Beschneiden erfordert: x1 < X1_Q, daher setze x1 = X1_Q, y1 < Y1_Q, x2 > X2_Q und y2 > Y2_Q, daher setze x1 = X1_Q, y1 = Y1_Q, x2 = X2_Q, y2 = Y2_Q;
    • • S13.3 Beurteile, ob x1 > x2 oder y1 > y2 gilt. Nein;
    • • S13.4 Beurteile, ob die (nun beschnittene) Region von Interesse exakt mit dem Unterviereck überlappt: Ja;
    • • S13.4.2 Zeichne das Unterviereck und die Anzahl der Punkte im Unterviereck (hier 2) auf;
    • • S13.6 Inkrementiere den Unterviereck-Zähler i auf dieser Ebene (0,i) ... i > 3, daher (S13.6.2) gewinne das Unterviereck 1 in Übereinstimmung mit S13.1.2 wieder.
  • Wie aus 14 ersichtlich ist, fällt die Region von Interesse ausschließlich in das Unterviereck 0 und die Untervierecke darin, so dass, wenn der in den 13a und 13b beschriebene Prozess auf die Untervierecke 1, 2 und 3 angewendet wird, die in den Schritten S13.2 und S13.3 angewendeten Bedingungen verursachen, dass der Prozess innerhalb einiger Schritte endet.
  • Am Ende des Prozesses des Identifizierens der Untervierecke, die mit der Region von Interesse überlappen, werden die Untervierecke und die Anzahl der Punkte in diesen Untervierecken, die in den Schritten S13.4.2 aufgezeichnet worden sind, zurückgeschickt – für dieses Beispiel:
    Unterviereck 0,1,2, Anzahl der Punkte: 1 Punkt;
    Unterviereck 0,1,3, Anzahl der Punkte: 1 Punkt;
    Unterviereck 0,2,1, Anzahl der Punkte: 1 Punkt;
    Unterviereck 0,3, Anzahl der Punkte: 2 Punkte.
  • Sobald die Untervierecke identifiziert worden sind, werden die tatsächlichen Punkte wiedergewonnen. In dieser Ausführungsform, und wie oben beschrieben worden ist, sind die Punkte in einer flachen Datei gespeichert. Außerdem speichert jede Unterviereck-Struktur eine Zahl, die die Position des ersten Punkts in einem jeweiligen Unterviereck bezüglich der Gesamtzahl der indexierten Punkte (siehe z. B. 4, alle Punkte im Viereck 501) angibt.
  • Der Prozess für das tatsächliche Wiedergewinnen der Punkte ist in 32 gezeigt:
    Für jedes Viereck, das im Schritt S13.4.2 aufgezeichnet worden ist:
    • • S32.1 Gewinne für dieses Unterviereck die Anzahl der Punkte wieder, die in das Unterviereck fallen, (N);
    • • S32.2 Gewinne die Position des ersten Punkts von der entsprechenden Unterviereck-Struktur (Possub_quad) wieder;
    • • S32.3 Bewege einen Dateizeiger in eine durch Possub_quad gegebene Position in der Punktedatei;
    • • S32.4 Extrahiere aus dieser Position N Punkte aus der Datei.
  • Implementierung
  • Die in den 4a und 4b, den 13a und 13b und 32 beschriebenen Prozesse sind in Software implementiert und werden in einem der Endgeräte T3, T4 ausgeführt oder sind zwischen den Endgeräten T3, T4 verteilt. Die Endgeräte T3, T4 repräsentieren folglich einen von mehreren Computern, wobei sie vorzugsweise Server-Computer sind.
  • Die zu indexierenden Punkte können über eine Datei oder ähnliches in die Endgeräte T3, T4 eingegeben werden, der Index, der erzeugt worden ist, wie oben beschrieben worden ist, kann in der Datenbank DB1 gespeichert werden und die Punktedatei kann außerdem in der Datenbank DB1 gespeichert werden. Ein Bereich von Interesse kann in der Form einer Datenbankabfrage eingegeben werden, die in einer bekannten Weise über ein (nicht gezeigtes) Client-Endgerät eingegeben und über das Netz N1 zu den Endgeräten T3, T4 übertragen wird.
  • Vorzugsweise sind die oben beschriebenen Prozesse in der Programmiersprache C implementiert und verwenden rekursive Programmierungsverfahren, um in den Untervierecken zu Untervierecken "nach unten zu vertiefen". Es ist selbstverständlich, dass ein derartiges Verfahren für die Erfindung unwesentlich ist.
  • Weitere Einzelheiten und Modifikationen
  • Wie oben dargelegt worden ist, kann die Erfindung verwendet werden, um Daten zu indexieren und wiederzugewinnen, die in 2 Dimensionen ausgedrückt sind. Die Erfindung kann außerdem verwendet werden, um Daten in mehr als 2 Dimensionen zu indexieren und wiederzugewinnen, vorausgesetzt, die Daten (n-dimensionalen Daten, wobei n > 2 gilt) können in 2 Dimensionen transformiert werden. In derartigen Fällen können die transformierten 2-dimensionalen Daten gemäß der Erfindung indexiert und wiedergewonnen werden. Objekte, die in einen 3-dimensionalen Raum definiert sind, können z. B. unter Verwendung eines Pakets, wie z. B. NCAR Graphics, was ein unix-gestütztes Graphikpaket ist, das einen ausgedehnten Bereich von Fähigkeiten für die Anzeige und die Manipulation numerischer Daten bietet und von der University Corporation for Atmospheric Research entwickelt worden ist, in 2 Dimensionen transformiert werden. (Siehe http://www.dkrz.de/ngdoc/ng4.0.1 für Informationen bezüglich NCAR Graphics und http://ngwww.ucar.edu/ngdoc/ng/fund/chp16–21/threed.html für Informationen bezüglich der Aspekte der 3-zu-2-dimensional-Transformation.)
  • Es könnten andere Variationen ausgeführt werden. Es könnte z. B. einfach ein Unterteilen der Vierecke und Untervierecke in eine andere Anzahl von Bereichen bei jeder Iteration, wie z. B. acht oder zehn anstelle von vier, verwendet werden.

Claims (15)

  1. Verfahren zum Anbringen eines Indexes an mehreren Entitäten, wobei jede Entität durch Daten repräsentiert wird, die einen in einem Raum definierten Punkt durch Erzeugen einer Hierarchie von Unterbereichs-Datenstrukturen identifizieren, wobei das Verfahren umfasst: i. Erzeugen einer minimalen Beschränkungsregion um die Punkte, die die Entitäten repräsentieren (S4.2); ii. Ausführen eines Prozesses in Bezug auf die erzeugte Region oder Unterregion, wobei der Prozess umfasst: Erzeugen einer Bereichs- oder Unterbereichs-Datenstruktur; Speichern von Daten, die das Ausmaß der jeweiligen Region oder Unterregion spezifizieren, in der Bereichs- oder Unterbereichs-Datenstruktur; Speichern von Verknüpfungen zu Punkten, die in die jeweilige Region oder Unterregion fallen, in der Bereichs- oder Unterbereichs-Datenstruktur (S4.3); Unterteilen der Region oder Unterregion, um mehrere Unterregionen (S4.6) zu erzeugen; und für jede der mehreren Unterregionen, die Punkte enthalten: Verkleinern der Unterregion, bis ihre weitere Verkleinerung zur Folge hätte, dass einer der Punkte außerhalb der Unterregion fällt; und iii. wiederholtes Ausführen des Prozesses in Bezug auf jede erzeugte Unterregion, die Punkte enthält, bis ein vorgegebenes Kriterium erfüllt ist (S4.5); wobei das Verfahren ferner das Speichern von Verknüpfungen zu Unterbereichs-Datenstrukturen, die ihren jeweiligen mehreren Unterregionen entsprechen, in jeder Bereichs- oder Unterbereichs- Datenstruktur umfasst; und wobei die Hierarchie der Unterbereichs-Datenstrukturen den Index an den Entitäten bereitstellt.
  2. Verfahren nach Anspruch 1, wobei das vorgegebene Kriterium ist, dass eine Unterregion einen einzigen Punkt enthält.
  3. Verfahren nach einem der vorhergehenden Ansprüche, wobei der Schritt des Verkleinerns der Region umfasst: Berechnen von Abständen zwischen Punkten, die Entitäten entsprechen, in jeder von zwei Dimensionen; und für jede der Dimensionen Identifizieren, welche der Punkte den größten Abstand zwischen sich haben, so dass dann, wenn die zwei Dimensionen zueinander senkrecht sind, die erzeugte Region ein Rechteck ist, das durch Punkte definiert ist, die wenigstens zwei Entitäten entsprechen.
  4. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Region in vier Unterregionen unterteilt wird.
  5. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Schritte ii. und iii. rekursiv wiederholt werden.
  6. Verfahren nach einem der vorhergehenden Ansprüche, das umfasst: Speichern der Entitäten in einer Datenbank, Halten einer Aufzeichnung der Anzahl von Entitäten, die in der Datenbank gespeichert sind, für jede Unterregion und Schreiben der momentan aufgezeichneten Anzahl in die ihr entsprechende Unterbereichs-Datenstruktur.
  7. Verfahren nach Anspruch 6, wobei Entitäten in die Datenbank in Übereinstimmung mit der Größe einer Unterregion geschrieben werden, so dass Entitäten, die in die kleinsten Unterregionen fallen, als Erstes in die Datenbank geschrieben werden.
  8. Verfahren nach einem der vorhergehenden Ansprüche, das das Empfangen eines Auslösesignals zum Aufrufen der Schritte i. bis iii. umfasst.
  9. Verfahren nach einem der vorhergehenden Ansprüche, das ferner das Wiedergewinnen einer oder mehrerer Entitäten, die in einem vorgegebenen Bereich enthalten sind, umfasst, wobei die oder jede Entität durch das Verfahren nach einem der vorhergehenden Ansprüche indexiert worden ist, das die folgenden Schritte umfasst: Identifizieren einer oder mehrerer Regionen, die in dem vorgegebenen Bereich enthalten sind, wobei jede Region einen oder mehrere Punkte umschließt und wobei jeder Region Verknüpfungsdaten zugeordnet sind, die für jede Region den Punkt oder die Punkte, die von dieser Region umschlossen sind, identifizieren; und Zugreifen auf Verknüpfungsdaten, die den identifizierten Regionen entsprechen, um so Punkte, die von den identifizierten Regionen umschlossen werden, wiederzugewinnen.
  10. Verfahren nach Anspruch 9, wobei der Identifizierungsschritt die folgenden Schritte umfasst: Wiedergewinnen von Daten, die eine Region identifizieren; Ausführen eines Prozesses in Bezug auf die Region, wobei der Prozess die folgenden Schritte umfasst: Vergleichen der Ausmaße der Region mit Ausmaßen des vorgegebenen Bereichs, um festzustellen, ob die Region mit dem vorgegebenen Bereich überlappt; und falls eine Überlappung besteht, Wiedergewinnen von Daten, die Unterregionen der Region identifizieren und irgendwelche derartigen Unterregionen, deren Ausmaße vollständig innerhalb des vorgegebenen Bereichs liegen, identifizieren; und für jede Unterregion Wiederholen des Prozesses, bis alle Unterregionen hiervon, die vollständig in den vorgegebenen Bereich fallen, identifiziert sind, wobei der Zugriffsschritt das Zugreifen auf Verknüpfungsdaten umfasst, die den identifizierten Unterregionen entsprechen, um so Punkte, die von den Unterregionen umschlossen werden, wiederzugewinnen.
  11. Verfahren nach Anspruch 10, wobei die mehreren Punkte im Voraus als eine Liste von Punkten in Übereinstimmung mit Beziehungen zwischen jeweiligen Regionen und Unterregionen hiervon gespeichert werden und die Verknüpfungsdaten einen Wert enthalten, der die Position eines Ersten der entsprechenden umschlossenen Punkte in der Liste von Punkten angibt, und wobei der Zugriffsschritt für jede der identifizierten Regionen umfasst: Wiedergewinnen eines Identifizierers, der die Anzahl umschlossener Punkte repräsentiert, und Wiedergewinnen eines Positionswertes, der der identifizierten Region zugeordnet ist; und Zugreifen auf die Liste von Punkten und Wiedergewinnen der Anzahl umschlossener Punkte ausgehend von einer Position in der Liste, die durch den Positionswert gegeben ist.
  12. Verfahren nach einem der Ansprüche 9 bis 11, wobei die Regionen und die entsprechenden Verknüpfungsdaten in einem Index gespeichert sind.
  13. Verfahren nach einem der vorhergehenden Ansprüche 9 bis 12, wobei der vorgegebene Bereich Reichweiteninformationen entspricht.
  14. Verfahren nach Anspruch 13, wobei die Reichweiteninformationen geographische Reichweiteninformationen, Betriebsstundeninformationen, Lieferzeitinformationen und/oder medizinische Informationen umfassen.
  15. Computerprogrammprodukt, das einen Satz von Befehlen enthält, um einen Computer dazu zu veranlassen, die Schritte des Verfahrens nach den Ansprüchen 1 bis 14 auszuführen.
DE60132243T 2000-12-15 2001-12-11 Verfahren zum indizieren von entitäten Expired - Lifetime DE60132243T2 (de)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
EP00311234 2000-12-15
EP00311234 2000-12-15
EP00311228 2000-12-15
EP00311228 2000-12-15
GB0123154A GB0123154D0 (en) 2001-09-26 2001-09-26 Method of indexing entities
GB0123154 2001-09-26
PCT/GB2001/005486 WO2002048909A1 (en) 2000-12-15 2001-12-11 Method of indexing entities

Publications (2)

Publication Number Publication Date
DE60132243D1 DE60132243D1 (de) 2008-02-14
DE60132243T2 true DE60132243T2 (de) 2008-12-11

Family

ID=27223583

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60132243T Expired - Lifetime DE60132243T2 (de) 2000-12-15 2001-12-11 Verfahren zum indizieren von entitäten

Country Status (6)

Country Link
US (2) US7277886B2 (de)
JP (2) JP4219165B2 (de)
AU (2) AU2002222178A1 (de)
CA (2) CA2430446C (de)
DE (1) DE60132243T2 (de)
WO (2) WO2002048908A1 (de)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080168002A1 (en) * 2007-01-05 2008-07-10 Kagarlis Marios A Price Indexing
US20090164300A1 (en) * 2007-12-21 2009-06-25 Yahoo! Inc. Application program interface and graphical user interface for providing a user interface for targeting mobile advertisements in a mobile marketing environment
US8676841B2 (en) * 2008-08-29 2014-03-18 Oracle International Corporation Detection of recurring non-occurrences of events using pattern matching
US8935293B2 (en) * 2009-03-02 2015-01-13 Oracle International Corporation Framework for dynamically generating tuple and page classes
US10789834B2 (en) * 2009-11-24 2020-09-29 Verizon Patent And Licensing Inc. Traffic data distribution in a navigational system
US9430494B2 (en) * 2009-12-28 2016-08-30 Oracle International Corporation Spatial data cartridge for event processing systems
US9305057B2 (en) * 2009-12-28 2016-04-05 Oracle International Corporation Extensible indexing framework using data cartridges
US8959106B2 (en) * 2009-12-28 2015-02-17 Oracle International Corporation Class loading using java data cartridges
US8713049B2 (en) 2010-09-17 2014-04-29 Oracle International Corporation Support for a parameterized query/view in complex event processing
US9189280B2 (en) 2010-11-18 2015-11-17 Oracle International Corporation Tracking large numbers of moving objects in an event processing system
US8990416B2 (en) 2011-05-06 2015-03-24 Oracle International Corporation Support for a new insert stream (ISTREAM) operation in complex event processing (CEP)
US9329975B2 (en) 2011-07-07 2016-05-03 Oracle International Corporation Continuous query language (CQL) debugger in complex event processing (CEP)
US8730264B1 (en) 2011-09-26 2014-05-20 Google Inc. Determining when image elements intersect
US9977789B2 (en) * 2011-11-29 2018-05-22 Oracle International Corporation Hierarchical grid for spatial querying
US9805095B2 (en) 2012-09-28 2017-10-31 Oracle International Corporation State initialization for continuous queries over archived views
US9563663B2 (en) 2012-09-28 2017-02-07 Oracle International Corporation Fast path evaluation of Boolean predicates
US10956422B2 (en) 2012-12-05 2021-03-23 Oracle International Corporation Integrating event processing with map-reduce
US9098587B2 (en) 2013-01-15 2015-08-04 Oracle International Corporation Variable duration non-event pattern matching
US10298444B2 (en) 2013-01-15 2019-05-21 Oracle International Corporation Variable duration windows on continuous data streams
US9390135B2 (en) 2013-02-19 2016-07-12 Oracle International Corporation Executing continuous event processing (CEP) queries in parallel
US9047249B2 (en) 2013-02-19 2015-06-02 Oracle International Corporation Handling faults in a continuous event processing (CEP) system
US9418113B2 (en) 2013-05-30 2016-08-16 Oracle International Corporation Value based windows on relations in continuous data streams
US9934279B2 (en) 2013-12-05 2018-04-03 Oracle International Corporation Pattern matching across multiple input data streams
US9244978B2 (en) 2014-06-11 2016-01-26 Oracle International Corporation Custom partitioning of a data stream
US9712645B2 (en) 2014-06-26 2017-07-18 Oracle International Corporation Embedded event processing
US9886486B2 (en) 2014-09-24 2018-02-06 Oracle International Corporation Enriching events with dynamically typed big data for event processing
US10120907B2 (en) 2014-09-24 2018-11-06 Oracle International Corporation Scaling event processing using distributed flows and map-reduce operations
WO2017018901A1 (en) 2015-07-24 2017-02-02 Oracle International Corporation Visually exploring and analyzing event streams

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4435752A (en) * 1973-11-07 1984-03-06 Texas Instruments Incorporated Allocation of rotating memory device storage locations
US5499360A (en) * 1994-02-28 1996-03-12 Panasonic Technolgies, Inc. Method for proximity searching with range testing and range adjustment
WO1996016375A1 (en) * 1994-11-21 1996-05-30 Oracle Corporation Method and apparatus for multidimensional database using binary hyperspatial code
JP3952518B2 (ja) * 1996-03-29 2007-08-01 株式会社日立製作所 多次元データ処理方法
US5963956A (en) * 1997-02-27 1999-10-05 Telcontar System and method of optimizing database queries in two or more dimensions
US5926820A (en) * 1997-02-27 1999-07-20 International Business Machines Corporation Method and system for performing range max/min queries on a data cube
US6073134A (en) * 1997-05-29 2000-06-06 Oracle Corporation Method article of manufacture, and apparatus for generating a multi-dimensional record management index
US6134541A (en) * 1997-10-31 2000-10-17 International Business Machines Corporation Searching multidimensional indexes using associated clustering and dimension reduction information
US6070164A (en) * 1998-05-09 2000-05-30 Information Systems Corporation Database method and apparatus using hierarchical bit vector index structure
US6223182B1 (en) * 1998-06-30 2001-04-24 Oracle Corporation Dynamic data organization
JP2000035965A (ja) * 1998-07-17 2000-02-02 Nippon Telegr & Teleph Corp <Ntt> 類似特徴量の検索方法及び装置及び類似特徴量の検索プログラムを格納した記憶媒体
US6366911B1 (en) * 1998-09-28 2002-04-02 International Business Machines Corporation Partitioning of sorted lists (containing duplicate entries) for multiprocessors sort and merge
JP3542732B2 (ja) * 1999-01-06 2004-07-14 日本電信電話株式会社 多次元空間データ構造および多次元空間データの更新および探索方法と前記多次元空間データ構造を記録した記録媒体および前記方法を実施するプログラムを記録した記録媒体
US6549907B1 (en) * 1999-04-22 2003-04-15 Microsoft Corporation Multi-dimensional database and data cube compression for aggregate query support on numeric dimensions
US6381605B1 (en) * 1999-05-29 2002-04-30 Oracle Corporation Heirarchical indexing of multi-attribute data by sorting, dividing and storing subsets
US6633882B1 (en) * 2000-06-29 2003-10-14 Microsoft Corporation Multi-dimensional database record compression utilizing optimized cluster models
US6879980B1 (en) * 2001-06-29 2005-04-12 Oracle International Corporation Nearest neighbor query processing in a linear quadtree spatial index
US6973457B1 (en) * 2002-05-10 2005-12-06 Oracle International Corporation Method and system for scrollable cursors

Also Published As

Publication number Publication date
CA2430446A1 (en) 2002-06-20
JP4219165B2 (ja) 2009-02-04
CA2430437A1 (en) 2002-06-20
WO2002048908A1 (en) 2002-06-20
CA2430446C (en) 2010-10-26
WO2002048909A1 (en) 2002-06-20
JP2004516553A (ja) 2004-06-03
US20040039725A1 (en) 2004-02-26
AU2002222178A1 (en) 2002-06-24
DE60132243D1 (de) 2008-02-14
JP4259864B2 (ja) 2009-04-30
US20040019592A1 (en) 2004-01-29
AU2002222172A1 (en) 2002-06-24
JP2004516552A (ja) 2004-06-03
US7277886B2 (en) 2007-10-02
CA2430437C (en) 2006-05-09
US7904486B2 (en) 2011-03-08

Similar Documents

Publication Publication Date Title
DE60132243T2 (de) Verfahren zum indizieren von entitäten
DE69401662T2 (de) Datenbankstrukturen
DE69636761T2 (de) Speichern und wiederauffinden von geordneten schlüsselmengen in einem kompakten 0-kompletten baum
DE19782227B4 (de) Verfahren zum Verteilen von Indexdaten unter einer Mehrzahl vernetzter Knoten und System zum Verwalten eines Index
DE10028688B4 (de) Methode, System und Programm für eine Verbindungsoperation in einer mehrspaltigen Tabelle sowie in Satellitentabellen mit doppelten Werten
DE68926849T2 (de) Struktur und Verfahren zur Anordnung rekursiv abgeleiteter Daten in einer Datenbank
DE3650673T2 (de) Aufzeichnen und Wiederauffinden einer Representation von topologischen Strukturen
DE3855213T2 (de) Datenbanksystem und Verfahren für den gleichzeitigen Satzzugriff mit Hilfe eines Baumstrukturindexes
DE60130475T2 (de) Durchführung von kalkulationen eines tabellenkalkulationstyps in einem datenbanksystem
DE60313371T2 (de) Verwendung von baumartigen &#34;Bitmap&#34; Datenstrukturen
DE69910219T2 (de) Transformation der perspektive auf tabellen von relationalen datenbanken
DE3855212T2 (de) Verfahren zur Berechnung eines transitiven Abschlusses
DE3856055T2 (de) Verfahren und Einrichtung, um gleichzeitigen Zugriff zu indizierten sequentiellen Dateien zu ermöglichen
DE19617381C2 (de) Objektumwandlungsvorrichtung von einem flachen Objektraum in einen Klassen-strukturierten Raum
DE69932344T2 (de) Zugriff zu hierarchischem datenspeicher via sql-eingabe
DE69024932T2 (de) Verfahren um Dokumente, die ein bestimmtes Attribut haben, mit Hilfe eines vektorrelationalen charakteristischen Objektes zu identifizieren
DE10035043A1 (de) Mehrdimensionale Indexierungsstruktur zur Verwendung mit linearen Optimierungsanfragen
WO2002001407A2 (de) Verfahren zur automatischen recherche
DE112017006106T5 (de) Erzeugen von, Zugreifen auf und Anzeigen von Abstammungsmetadaten
DE69127399T2 (de) Verfahren zur automatischen Löschung vorübergehender Dokumentverbindungen in einem Datenverarbeitungssystem
DE10251440A1 (de) Reproduzierbare Auswahl von Elementen in einer Hierarchie
DE112012004916T5 (de) Verbesserte Datenbankabfrage und Aufwandsschätzung
DE19924261A1 (de) Netzmanagementverfahren und System
DE60131796T2 (de) Objektgebietdatenerzeugungsmethode und -vorrichtung, Polygonannäherungsmethode und -vorrichtung
WO2000060497A2 (de) Verfahren zur nutzung von fraktalen semantischen netzen für alle arten von datenbank-anwendungen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition