DE60132243T2 - METHOD FOR INDICATING ENTITIES - Google Patents
METHOD FOR INDICATING ENTITIES Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99932—Access augmentation or optimizing
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
- Y10S707/99935—Query augmenting and refining, e.g. inexact access
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99944—Object-oriented database structure
- Y10S707/99945—Object-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.The The present invention relates to a method of indexing for the Use with entities stored in a database.
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.It can easily be seen that if there is a huge number of entities in a database, identifying the entities in accordance with a query regarding the data in the database within a reasonable period of time is a non-trivial task. Around The recovery process is generally easier indexed the data in the database in some way, where the queries will then be executed at the index. It can be expected be that the way in which the entities are indexed, a significant Meaning of the quality and the speed of recovery possesses, and there information increasingly stored in databases, there is a significant interest to find improved ways to index data.
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.It is known to index location data based on place names. It is also known to retrieve a lot of geographic coordinates from the place names and to index based on the topological information extracted from the coordinates (eg "GIPSY": developed in UC Berkeley in the context of a common NSF / NASA / ARPA). Initiative (Wilensky et al., 1994)). In addition, it is known to install an index based on the geographic coordinates itself: the vendors of databases such. Oracle ™ , have developed systems for storing and indexing geometric data - such as Oracle's spatial data cartridge, for example, which allows spatial querying to be performed using an extended (non-standard) form of SQL. Other vendors, such as MapInfo ™ , SpatialWare ™ , Innogistic ™ and Informix ™, have similar proprietary ways to handle spatial data. In particular, Innogistic ™ has developed a product known as Cartology DSI which stores geometric vector data as blobs (large binary objects - which are not intrinsically recognizable by the underlying database). It also generates indexes outside the database based on the well-known quad-tree idea. The index data is stored in binary tree structures, accessed through middleware services of a distributed component object model (DCOM).
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.Both the Oracle ™ and Innogistic ™ systems use the quadrilateral tree process, which splits and subdivides a whole area of a layer into a series of four interlaced squares. The whole area is assigned to one of four squares, called 0, 1, 2, and 3. Each of these squares is divided into four smaller squares. The area of the square 1 becomes 10, 11, 12 and 13. Each of them is further subdivided, which means that e.g. For example, the subdivisions of the square 11 would be assigned the index values of 110, 111, 112 and 113. As a result, any location on the map can be referenced by a single index number. The disadvantage with this quadrilateral method is that processing time is wasted when there are no points in the divided squares; if the indexing is done over a large area, this wasted processing time is nontrivial and expensive.
US-Patent
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.One alternative indexing method is the k-dimensional binary search tree method by J.L. Bentley in "Multidimensional binary search trees for associative searching ", Commun. ACM 18 (9), 1975, 509-517 becomes. In this procedure, the vertical and horizontal Pages of a region containing points to index compared, taking the region through a straight line leading to the longer side is vertical, is divided into two parts. The position of the division or partitioning line is determined so that each resulting Part contains the same amount of data. This procedure is applied recursively to each of the two parts, until a predetermined criterion is met. Typically it stands this criterion with the capacity a page in a relational database (that is, the storage restrictions the database). The partitioned parts are called Node in a binary Tree, with the positions of the dividing lines between the parts the position of a node with respect to the other nodes in determine the tree. This procedure is for recovering points in terms of a section of interest particularly efficient because sections search space (binary Baums) by a simple comparison between the range of Interest and the dividing lines of the parts can be eliminated.
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.The Application of the k-dimensional method to geographic data becomes in "A file Organization for geographic information systems based on spatial proximity "of Matsuyama u. a, Computer Vision, Graphics and image processing, 26, 303-318, (1984), described.
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.Especially compare Matsuyama u. a. the efficiency of the k-dimensional tree method with the quadrilateral method, where they find that the k-dimensional Method both regarding the use of memory space (because the quadrilateral tree process typically quadrilaterals and thus memory Allocates regions where there are no points) as well in terms of data recovery (because the search space is efficient be reduced using the k-dimensional tree method can, as described above) a far more efficient method is.
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.regardless the fact that the k-dimensional tree method more efficient as the standard quad-tree method, it still rejects more areas to store than is actually required - as above wherein when a region is partitioned (Node in binary Tree), the partitioning line is determined that each resulting part contains the same amount of data; consequently the parts have a larger size than they would have to own finally the binary tree own more nodes than are necessary.
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.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), Tokyo, 7-9. October 1987, Washington, IEEE Corp. Soc. Press., USA, Bd. Conf. 11, pages 433-438 the use of a so-called spatial kd-tree to processing the queries spatial Facilitate databases. The spatial kd tree is partitioned a set of records in k-dimensional space based on their spatial proximity in small groups.
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.According to one The first aspect of the present invention is a method for Attaching an index to multiple entities created in the Claim 1 of the attached Set of claims has defined features.
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.Consequently, the present "shrinks" Method compared to known indexing methods first the indexing space so that it only indexes over areas that Points included. Consequently, the memory areas are corresponding compact, which in terms of minimizing the use of memory space Has advantages.
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).In In fact, in the above-mentioned article entitled "A file organization for geographic information systems based on spatial proximity "Matsuyama et al. the problem associated with the quadrilateral tree process - namely Indexing empty pages of the database (see p. 312) - where but they solve the problem by applying a method similar to that of the present one Invention complete is different, (the k-dimensional tree method).
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.Advantageous For example, the step of shrinking the region includes calculating the distances between the entities in each of two dimensions; and for each of the dimensions that Identify which of the entities the greatest distance between them, so that when the two dimensions are vertical to each other, the region generated in step ii is a rectangle is defined by at least two points.
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.The Subregions can have one linked so-called "linked list" of points what is an effective linkage mechanism known in the art is.
Vorzugsweise wird die Region in vier Unterregionen unterteilt, wobei die Schritte ii und iii für jeden der zweiten Bereiche rekursiv wiederholt werden.Preferably The region is divided into four subregions, with the steps ii and iii for each of the second areas are recursively repeated.
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.Appropriately, the method contains saving the linkage data in a database, keeping a record of the number of entities which are stored in the database, and writing for each subregion the currently recorded number in their corresponding memory area.
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.
- (a) identifying one or more regions included in the given area, wherein each region encloses one or more points and wherein each region is associated with linkage data identifying for each region the point or points enclosed by that region; and
- (b) accessing linkage data corresponding to the identified regions so as to retrieve points encompassed by the identified regions.
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.The Regions correspond to the memory areas that match are indexed with the first aspect of the invention. Consequently, because the storage areas are compact because, as described above they are "shrink wrapped" around the dots, the ID the points in the index an efficient process.
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.Preferably The identifying step (a) comprises the steps of retrieving a region and carrying out a process relating to the region, the process being the following Steps includes: Comparing the dimensions of the region with dimensions of the predetermined range to determine if the first region with overlaps the given area; and if there is an overlap exists, recovering subregions of the region and identifying any such subregions, the dimensions of which are completely within the predetermined range lie. This process can be for any subregion be repeated until all subregions thereof completely in fall within the given range are identified.
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.Be useful the multiple points in advance as a list of points in accordance with Relations between the respective regions and subregions thereof stored and contain the linkage data, a value the position of a first of the corresponding enclosed points in the list of points. The access step (b) comprises then for each of the identified regions and subregions: Recover an identifier representing the number of enclosed points, and Recovering a position value of the identified subregion assigned; and accessing the list of points and recoveries the number of enclosed points from a position in the list given by the position value.
Vorzugsweise entspricht der in den Verknüpfungsdaten enthaltene Wert der in den Speicherbereich geschriebenen aufgezeichneten Anzahl.Preferably corresponds to that in the linkage data included value of recorded recorded in the memory area Number.
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.The Process steps are preferably in one or more computer programs embodies that wholly or partly as a signal in a carrier wave for transmission over a communication network and / or in a computer readable medium as a computer program product personified could be.
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.Suitably correspond the dots data that are expressed in two dimensions can, z. B. Location data (length and latitude) or range data. The range data can run hours (eg opening and closing times), Price margins (eg maximum and minimum prices) and / or medical Data (eg, maximum and minimum blood pressure). Consequently, one could given range be a price range - such. B. a maximum house price and minimum house price. In accordance With the recovery method described above, the dimensions a given range (i.e., a price range) with one from the Index recovered region. All regions with overlap the price range, are then retrieved in turn until a region is identified is that completely falls into the specified price range. All the points in this thus fall within the identified region, thus representing goods which own a price that is in the specified maximum and minimum Price class falls.
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:Further Aspects, features and advantages of the present invention from the following description of the preferred embodiments of the invention, which refers to the attached drawing, wherein:
Überblickoverview
Die
Datenbank-Server DB1, DB2, wie z. B. jene, die in
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.The embodiments of the invention executed in the workstation T3 which is connected to the database servers DB1, DB2. Even though the database servers DB1, DB2 are shown in the same LAN N1 as the terminal T3 are, of course, that the database server DB1, DB2 connected to other networks could be which in turn over one or more switches and / or routers (not shown) connected to the LAN N1. The embodiments receive data as input, z. As a file, and attach an index to the Data, as described in more detail below is described. The attached index will then be in one of the databases DB1, DB2 backed up, with the indexed data also in a given order by the structure of the attached index in one of the databases DB1, DB2. The attached one Index can be in the same or different database as the Database in which the data is stored.
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.The embodiments of the present invention relate to indexing entities defined by 2 dimensions. Obvious examples of the entities that may be indexed according to the embodiments include the location of objects, such as objects. As gas stations, ATMs, etc., since the position of the objects is generally defined in the form of width and length. Many other entities can be represented in 2 dimensions - eg. For example, the acceleration of a motorcycle as a function of time and speed, the conductivity of a material as a function of material properties and temperature, deformation of an article as a function of material properties, and force applied to the article, etc. In addition, transformations to n -dimensional parameters are used to reduce them to 2-dimensional parameters that can be shown in a 2-dimensional space.
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.One another example of entities, those using the embodiments of the present invention contains range information, z. As time information, pricing information and information about medical Conditions.
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.One Example of the time span information are the opening and closing times of business and recreational facilities - these Times can expressed in two dimensions be, for. B. with the closing and opening times on the ordinate or abscissa axes. Similarly, delivery times (earliest and latest) expressed in two dimensions become.
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.One Example of price information contains the prices of goods, so that z. B. maximum and minimum prices of goods each in one expressed in two dimensions and in this way using the embodiments of the invention can be indexed. The pricing information also includes trade information, how they are used to transfer securities, stocks, bonds etc. to buy and sell.
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.One Example of information about medical conditions contains Statistics regarding measurable states, such as B. Body temperature and blood pressure, and states that are translated into numerical representations can, such as For example, the sites of carcinomas.
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.In In the following description, the entities are generally referred to as "points" to the context of the entities (eg, gas station, ATM, etc.) of the mechanics of the embodiment to separate.
Im Überblick
wird eine Ausführungsform
eines Verfahrens zum Indexieren von Punkten unter Bezugnahme auf
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
In
einer besonderen Form einer Ausführungsform,
die im Folgenden unter Bezugnahme auf die
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
Im
Folgenden sind die Schritte S4.1 bis S4.9 der Reihe nach in dem
Ablaufplan nach den
- • 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);• Step S4.1 Read in the x, y coordinates of all points to be indexed (As stated above, the points of any Storage location, such. A file, or read directly by a user become);
-
• 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 ;• Step S4.2 Create a bounding box for all points, identify and perform the "shrink wrapping" around the coordinates of the outermost points (the bounding box is the difference between the coordinates of the outermost points in both the x and y dimensions given: dx or dy). The bounding box is the outermost square501 ; -
• 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;• Step S4.3 u. Step 4.4 Secure the dimensions of the quadrilateral501 - ie dx, dy - and the coordinates of the points in it; -
• Schritt
S4.5 Prüfe,
ob das äußerste Viereck
501 eine positive Größe besitzt (d. h., sind dy, dy des Vierecks501 gleich null?). In dem in5 gezeigten Beispiel gibt es ein äußerstes Viereck501 , weil sich in dem Viereck mehrere Punkte befinden, sind dx, dy von null verschieden, wobei folglich das Viereck501 eine positive Größe besitzt;• Step S4.5 Check if the outermost square501 has a positive size (ie, dy, dy of the quadrilateral501 equals zero?). In the in5 example shown there is an extreme quadrangle501 because there are several points in the quadrilateral, dx, dy are different from zero, hence the quadrilateral501 has a positive size; -
• Schritt
S4.6 Zerteile das äußerste Viereck
501 in vier Untervierecke503a ,503b ,503c ,503d ;• Step S4.6 Divide the outermost square501 in four sub-quads503a .503b .503c .503d ; - • Schritt S4.6.1 Etikettiere jeden Punkt mit seinem relevanten Unterviereck und zeichne die Anzahl der Punkte in jedem Unterviereck auf;• Step S4.6.1 Label each point with its relevant sub-quad and record the number of dots in each sub-quad;
-
• Schritt
S4.7 Prüfe
beginnend mit dem Unterviereck 0 (
503a ), ob es irgendwelche Punkte im Unterviereck503a gibt.• Step S4.7 Check starting with the sub-quad 0 (503a ), if there are any points in the sub-quad503a gives.
Wenn
es Punkte gibt, gebe die Punkte in diesem Unterviereck 0 (
-
• Schritt
S4.1 Lese die x, y-Koordinaten der Punkte ein, die dem Unterviereck
503a entsprechen;• Step S4.1 Read in the x, y coordinates of the points that correspond to the sub-quad503a correspond; -
• Schritt
S4.2 Erstelle einen Begrenzungsrahmen für alle Punkte in
503a , erzeuge ein "schrumpfverpacktes" Unterviereck 0601 . 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;• Step S4.2 Create a bounding box for all points in503a , create a "shrink-wrapped" sub-quad 0601 , This illustrates the principle described above - the embodiment identifies an area in sub-quad 0 in which there are no points, this area is then discarded; -
• 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;• Step S4.3 u. Step S4.4 Save the dimensions of sub-quad 0 (601 ) - ie dy, dy - and the coordinates of the points in it; -
• Schritt
S4.5 Prüfe,
ob das Unterviereck
601 eine positive Größe besitzt? (Das heißt sind dx, dy des Vierecks601 gleich null?) Wie in6 zu sehen ist, befinden sich im Viereck601 mehrere Punkte, sind dx, dy für das Viereck601 von null verschieden und besitzt folglich das Unterviereck601 eine positive Größe;• Step S4.5 Check if the sub-quad601 has a positive size? (That is, dx, dy of the quadrilateral601 equal to zero?) As in6 can be seen, are in the square601 several points are dx, dy for the quadrilateral601 different from zero and thus has the sub-quad601 a positive size; -
• Schritt
S4.6 Zerteile das Unterviereck 0
601 in 4 Untervierecke; 0,0 (603a ), 0,1 (603b ), 0,2 (603c ), 0,3 (603d );• Step S4.6 Divide the sub-quad 0601 in 4 sub-quads; 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;• Step S4.6.1 Label each point with its relevant sub-quad and record the number of dots in each sub-quad;
-
• 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 auf7 beschrieben ist.• Step S4.7 Check starting with the sub-quad 0,0 (603a ), whether in the sub-quadrant 0.0 (603a ) there are any points: Since there are points, these points in this sub-quad give 0.0 (603a ) in step S4.1 and run for the sub-quad 0,0 (603a ) continue through the steps step S4.1, as described below with reference to7 is described.
-
• Schritt
S4.1 Lese die x, y-Koordinaten der Punkte ein, die dem Unterviereck
603a entsprechen;• Step S4.1 Read in the x, y coordinates of the points that correspond to the sub-quad603a correspond; -
• Schritt
S4.2 Erstelle einen Begrenzungsrahmen für alle Punkte im Unterviereck
0,0 (
603a ), erzeuge ein "schrumpfverpacktes" Unterviereck 0,0701 . Wie für das Unterviereck 0 wird der Bereich ohne Punkte im Unterviereck603a ignoriert;• Step S4.2 Create a bounding box for all points in the sub-quad 0,0 (603a ), create a "shrink-wrapped" sub-quad 0,0701 , As for the sub-quad 0, the area without dots in the sub-quad becomes603a ignored; -
• 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;• Step S4.3 u. Step S4.4 Save the dimensions of the sub-quad 0,0 (701 ) - ie dy, dy - and the coordinates of the points in it; -
• Schritt
S4.5 Prüfe,
ob das Unterviereck
701 eine positive Größe besitzt? (Das heißt sind dx, dy des Vierecks701 gleich null?) Wie in7 zu sehen ist, befinden sich im Viereck701 mehrere Punkte, sind dx, dy für das Viereck701 von null verschieden und besitzt dieses Unterviereck701 eine positive Größe;• Step S4.5 Check if the sub-quad701 has a positive size? (That is, dx, dy of the quadrilateral701 equal to zero?) As in7 can be seen, are in the square701 several points are dx, dy for the quadrilateral701 non-zero and has this sub-quad701 a positive size; -
• 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 );• Step S4.6 Divide the sub quad 0,0701 in 4 sub-quads; 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;• Step S4.6.1 Label each point with its relevant sub-quad and record the number of dots in each sub-quad;
-
• 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 auf7 beschrieben ist.• Step S4.7 Check starting with the sub-quad 0,0,0 (703a ), whether it is in the sub-quad 0,0,0 (703a ) there are any points: there is a point in the sub-quad 0,0,0 (703a Therefore, enter these points in this sub-quad 0,0,0 in step S4.1 and run for the sub-quad 0,0 (703a ) continue through the steps step S4.1, as described below with further reference to7 is described.
Außerdem
in
-
• Schritt
S4.1 Lese die x, y-Koordinaten der Punkte ein, die dem Unterviereck
703a entsprechen;• Step S4.1 Read in the x, y coordinates of the points that correspond to the sub-quad703a correspond; -
• 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;• Step S4.2 Create a bounding box for all points in the sub-quad 0,0,0 (703a ), create a "shrink-wrapped" sub-quad 0,0,0: here around a single point; - • 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;• Step S4.3 u. Step S4.4 Secure the dimensions of the "shrink-wrapped" sub-quad 0,0,0, which now points to one single point down so that dy, dy = 0, and sure the coordinates of the point;
-
• 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;• Step S4.5 Check if the sub-quad has a positive size? (That is, dx, dy of the point equals zero?) In fact, dx and dy are both zero because the sub-quad703a collapsed into a single point. Therefore, to step 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 auf8 beschrieben ist.Step S4.8 Increment the sub-quad counter i at this level (0,0, i), give the points (step S4.7) in the sub-quad 0,0,1 (703b ) in step S4.1 and run for the lower quadrant 0,0,1 (703b ) continue through the steps step S4.1, as described below with reference to8th is described.
-
• Schritt
S4.1 Lese die x, y-Koordinaten der Punkte ein, die dem Unterviereck
703b entsprechen;• Step S4.1 Read in the x, y coordinates of the points that correspond to the sub-quad703b correspond; -
• Schritt
S4.2 Erstelle einen Begrenzungsrahmen für alle Punkte im Unterviereck
0,0,1 (
703b ), erzeuge ein "schrumpfverpacktes" Unterviereck 0,0,1801 . Wie für das Unterviereck 0 wird der Bereich ohne Punkte im Unterviereck703b ignoriert;• Step S4.2 Create a bounding box for all points in the sub-quad 0,0,1 (703b ), create a "shrink-wrapped" sub-quad 0,0,1801 , As for the sub-quad 0, the area without dots in the sub-quad becomes703b ignored; -
• 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;• Step S4.3 u. Step S4.4 Save the dimensions of the sub-quad801 - ie dy, dy - and the coordinates of the points in it; -
• Schritt
S4.5 Prüfe,
ob das Unterviereck
801 eine positive Größe besitzt? (Das heißt sind dx, dy des Vierecks703a gleich null?) In dem Unterviereck801 befinden sich mehrere Punkte, sind dx, dy für das Viereck801 von null verschieden und besitzt folglich dieses Unterviereck801 eine positive Größe;• Step S4.5 Check if the sub-quad801 has a positive size? (That is, dx, dy of the quadrilateral703a zero?) in the sub-quad801 if there are several points, dx, dy are for the quadrilateral801 different from zero and thus has this sub-quad801 a positive size; -
• 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 );• Step S4.6 Divide the sub-quad 0,0,1801 in 4 sub-quads; 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;• Step S4.6.1 Tag each point with its relevant sub-quad and draw the number of Points in each sub-quad on;
-
• 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 );• Step S4.7 Check starting with the sub-quad 0,0,1,0 (803a ), whether it is in the sub-quadrant 0,0,1,0 (803a ) There are no points in the sub-quadrant 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 auf9 beschrieben ist.Step S4.8 Increment the sub-quad counter i at this level (0,0,1, i) and give the points (step S4.7) in the sub-quad 0,0,1,1 (803b ) enter step S4.1 and run for the sub-square 0,0,1,1 (803b ) continue through the steps step S4.1, as described below with reference to9 is described.
-
• Schritt
S4.1 Lese die x, y-Koordinaten der Punkte ein, die dem Unterviereck
803b entsprechen;• Step S4.1 Read in the x, y coordinates of the points that correspond to the sub-quad803b correspond; -
• 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;• Step S4.2 Create a bounding box for all points in the sub-quad 0,0,1,1 (803b ), create a "shrink-wrapped" sub-quad 0,0,1,1, which is a single point; - • Schritt S4.3 u. Schritt S4.4 Sichere die Ausmaße des einzigen Punkts – d. h. dy, dy – und die Koordinaten des Punkts;• Step S4.3 u. Step S4.4 Ensure the dimensions of the single point - d. H. dy, dy - and the coordinates of the point;
-
• 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;• Step S4.5 Check if the point has a positive size? (That is, dx, dy of the point equals zero?) In fact, dx and dy are both zero because the sub-quad803b collapsed into a single point. Therefore to step 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 auf9 beschrieben ist.Step S4.8 Increment the sub-quad counter i at this level (0,0,1, i) and give the points in the sub-quad 0,0,1,2 (803b ) enter step S4.1 and run for the sub-quad 0,0,2 (803b ) continue through the steps step S4.1, as described below with further reference to9 is described.
Außerdem
in
-
• Schritt
S4.1 Lese die x, y-Koordinaten der Punkte ein, die dem Unterviereck
803c entsprechen;• Step S4.1 Read in the x, y coordinates of the points that correspond to the sub-quad803c correspond; -
• 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;• Step S4.2 Create a bounding box for all points in the sub-quad 0,0,1,2 (803c ), create a "shrink-wrapped" sub-quad 0,0,1,2, which is a single point; - • Schritt S4.3 u. Schritt S4.4 Sichere die Ausmaße des einzigen Punkts – d. h. dy, dy – und die Koordinaten des Punkts;• Step S4.3 u. Step S4.4 Ensure the dimensions of the single point - d. H. dy, dy - and the coordinates of the point;
-
• 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;• Step S4.5 Check if the point has a positive size? (That is, dx, dy of the point equals zero?) In fact, dx and dy are both zero because the sub-quad803c collapsed into a single point. Therefore, to step 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• Step S4.8 Increment the sub-quad counter i at this level (0,0,1, i). There are no points (step S4.7) in the sub-quad 0,0,1,3 (803b Therefore, back to step S4.8: increment the sub-quad counter i at this level (0,0,1, i): but i> 3, therefore -
• 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 auf10 beschrieben ist.Step S4.9 Return to the sub-quad level 0,0, i and increment the sub-quad counter from 1 to 2 and thus consider the sub-quad 0,0,2 (703c ): There is one point in the sub-quad 0,0,2 (703c ), therefore the points (step S4.7) in the sub-quadrant give 0,0,2 (703c ) in step S4.1 and run for the sub-quad 0,0,2 (703c ) continue through the steps step S4.1, as described below with reference to10 is described.
-
• Schritt
S4.1 Lese die x, y-Koordinaten der Punkte ein, die dem Unterviereck
703c entsprechen;• Step S4.1 Read in the x, y coordinates of the points that correspond to the sub-quad703c correspond; -
• 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;• Step S4.2 Create a bounding box for all points in the sub-quad 0,0,2 (703c ), create a "shrink-wrapped" sub-quad 0,0,2, which is a single point; - • Schritt S4.3 u. Schritt S4.4 Sichere die Ausmaße des einzigen Punkts – d. h. dy, dy – und die Koordinaten des Punkts;• Step S4.3 u. Step S4.4 Ensure the dimensions of the single point - d. H. dy, dy - and the coordinates of the point;
-
• 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;• Step S4.5 Check if the point has a positive size? (That is, dx, dy of the point equals zero?) In fact, dx and dy are both zero because the sub-quad703c collapsed into a single point. Therefore to step 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• Step S4.8 Increment the sub-quad counter i at this level (0,0, i). There are no points (step S4.7) in the sub-quad 0,0,3 (703d Therefore, back to step S4.8: increment the sub-quad counter i at this level (0,0, i): but i> 3, therefore -
• 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 auf11 beschrieben ist.Step S4.9 Return to the sub-quad level 0, i and increment the sub-quad counter i from 0 to 1 and thus consider the sub-quad 0,1 (603b ), as with reference to11 is described.
Der
in den
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
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
Folglich
lautet die Punktedatei für
das Unterviereck
Das Wiedergewinnen von InformationenRecovering information
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.The The second invention relates to a method for recovering of entities by means of an index of elements related to the entities stands if the relationship between each element and the other Elements in the index and the relationship between the elements in the index and the indexed entities are known. The process is easy on one in accordance index generated by the method of indexing outlined above applicable because the index is a hierarchy of sub-quadrilateral structures includes and the hierarchy (through the quadrilateral> quadrilateral relations) well defined. However, it should be remembered that that Method is equally applicable to any type of index, that meets these conditions.
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.
- • the elements in the index are several areas in a given area,
- • the indexed entities are points defined by two dimensions;
- • there is a given relationship between the areas; and
- • There is a given relationship between the areas and the points.
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.
- a) overlapped with the region of interest and
- b) contains points in these areas that overlap with the region of interest.
Die vorgegebene Beziehung zwischen den Bereichen und den Punkten wird dann verwendet, um die Punkte zu extrahieren, die in die identifizierten Bereiche fallen.The given relation between the areas and the points then used to extract the points that were identified in the Areas fall.
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
(0, 10),
(13, 24) = die Einrichtungen, die irgendwann zwischen 10.00 u. 13.00
offen sind (
(0, 13), (10,
24) = die Einrichtungen, die durchgehend zwischen 10.00 u. 13.00
offen sind (
(0, 10), (10, 13)
= die Einrichtungen, die vor 10.00 offen sind, aber vor 13.00 schließen (
(10, 13), (13, 24) = die Einrichtungen,
die nach 10.00 öffnen,
aber nach 13.00 schließen
(
(10, 10), (13, 13) = die Einrichtungen,
die nach 10.00 öffnen
u. vor 13.00 schließen
(
(0, 10), (13, 24) = the facilities, which sometime between 10.00 u. 13.00 are open (
(0, 13), (10, 24) = the facilities that run continuously between 10.00 u. 13.00 are open (
(0, 10), (10, 13) = the facilities that are open before 10.00 but close before 13.00 (
(10, 13), (13, 24) = the facilities that open after 10.00 but close after 13.00 (
(10, 10), (13, 13) = the facilities that open after 10.00 u. close before 13.00 (
Ä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.Similarly, for the above described price range being a region of interest a price range so for a retrieval request of "all the elements that are somewhere in the Range of £ 50.00 and £ 80.00 fall, "the region of interest could be defined by a region defined in the points (0, 50) and (80, 80) is limited.
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".For the location information described above, a region of interest would be an area of locations, such as location. B. "all elements that are between a first position ((lat, long) 1 ) and a second position ((lat, long) 2 )".
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
- • 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.1 Read the x, y coordinates of a region of interest (x1, y1), (x2, y2). As an example could this, if a user wishes the motor vehicle workshops to locate in a specific area, as latitude / longitude pairs be indexed defining points in a two-dimensional space where the geographical area in which the user is interested is as a "region of interest "in can be expressed in two-dimensional space;
- • 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.1.2 Win the coordinates of the points and the size of the square for the outermost square again and set (X1_Q, Y1_Q), (X2_Q, Y2_Q) to the size of the outermost one quadrangle;
-
• 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.2 Assess if the region of interest requires pruning: if x1 <X1_Q, set x1 = X1_Q; if y1 <Y1_Q, set y1 = Y1_Q; if x2> X2_Q, set x2 = X2_Q; if y2> Y2_Q, set y2 = Y2_Q. For the in14 Example region of interest shown does not satisfy any of these conditions; - • S13.3 Beurteile, ob x1 > x2 oder y1 > y2 gilt. In diesem Fall sind keine Bedingungen erfüllt;• S13.3 Judge if x1> x2 or y1> y2. In this case, no conditions are met;
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 auf15 beschrieben ist.
- • S13.4 Judge if the region of interest overlaps exactly with the quadrangle. No:
- • S13.5 Win a sub-quad (
503a ) of the current quadrilateral (501 ) in accordance with S13.1.2 again, as with reference to15 is described.
-
• 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" Untervierecks601 ;• S13.1.2 Get the coordinates of the points and the size of the sub-quad from the "shrink-wrapped" sub-quad 0601 Again, set (X1_Q, Y1_Q), (X2_Q, Y2_Q) to the size of the "shrink-wrapped" sub-quad601 ; - • 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.2 Assess whether the region of interest requires pruning: if x1 <X1_Q, set x1 = X1_Q; if y1 <Y1_Q, set y1 = Y1_Q; if x2> X2_Q, set x2 = X2_Q; if y2> Y2_Q, set y2 = Y2_Q. In this case, none of these conditions are met;
- • S13.3 Beurteile, ob x1 > x2 oder y1 > y2 gilt. In diesem Fall sind keine Bedingungen erfüllt;• S13.3 Judge if x1> x2 or y1> y2. In this case, no conditions are met;
- • S13.4 Beurteile, ob die Region von Interesse exakt mit dem Unterviereck überlappt. Nein:• S13.4 Judge if the region of interest overlaps exactly with the sub-quad. No:
-
• S13.5
Gewinne ein Unterviereck des aktuellen Untervierecks in Übereinstimmung
mit S13.1.2 wieder, wie unter Bezugnahme auf die
16 und17 beschrieben ist.• S13.5 Recover a sub-quad of the current sub-quad in accordance with S13.1.2 as described with reference to16 and17 is described.
-
• 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" Untervierecks701 ;• S13.1.2 Get the coordinates of the points and the size of the sub-quad from the "shrink-wrapped" sub-quad 0,0701 Again, set (X1_Q, Y1_Q), (X2_Q, Y2_Q) to the size of the "shrink-wrapped" sub-quad701 ; - • 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.2 Assess whether the region of interest requires pruning: x2> X2_Q, so set x2 = X2_Q, and y2> Y2_Q, therefore set 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.3 Judge if x1> x2 or y1> y2. In this case (17 ), both conditions are met, meaning that there are no points in the sub-quad 0,0 (701 ) that fall into the region of interest; -
• 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 und19 beschrieben ist.• S13.6 Increment the sub-quad counter i at this level (0, i) and recover the sub-quad (0,1) in accordance with S13.1.2 as described with reference to FIG18 and19 is described.
- • 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.1.2 Take the coordinates of the points and the size of the sub-quad from the "shrink-wrapped" sub-quad 0,1 again: set (X1_Q, Y1_Q), (X2_Q, Y2_Q) to the size of the "shrink-wrapped" sub-quad 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.2 Assess whether the region of interest requires pruning: x1 <X1_Q, therefore set x1 = X1_Q, and y2> Y2_Q, therefore set y2 = Y2_Q;
- • S13.3 Beurteile, ob x1 > x2 oder y1 > y2 gilt. In diesem Fall sind keine Bedingungen erfüllt;• S13.3 Judge if x1> x2 or y1> y2. In this case, no conditions are met;
- • S13.4 Beurteile, ob die (nun beschnittene) Region von Interesse exakt mit dem Unterviereck überlappt. Nein:• S13.4 Assess whether the (now cropped) region of interest is exact overlaps with the sub-quad. No:
-
• 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 und20b beschrieben ist.• S13.5 Recover a sub-quad 0,1,0 of the current sub-quad 0,1 in accordance with S13.1.2, as with reference to20a and20b is described.
- • 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.1.2 Take the coordinates of the points and the size of the sub-quad from the "shrink-wrapped" sub-quad 0,1,0 again: set (X1_Q, Y1_Q), (X2_Q, Y2_Q) to the size of the "shrink wrapped" subarray 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.2 Assess whether the region of interest requires pruning: x2> X2_Q, so set x2 = X2_Q, and y2> Y2_Q, therefore set 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.3 Judge if x1> x2 or y1> y2. In this case (20b ) both conditions are met, which means that there are no points in the sub-quadrant 0,1,0 that fall into the region of interest; -
• 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 und21b beschrieben ist.• S13.6 Increment the sub-quad counter i at this level (0,1, i) and (S13.6.1) recover the sub-quad (0,1,1) in accordance with S13.1.2 as described with reference to FIG21a and21b is described.
- • 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.1.2 Take the coordinates of the points and the size of the sub-quad from the "shrink-wrapped" sub-quad 0,1,1 Again, set (X1_Q, Y1_Q), (X2_Q, Y2_Q) to the size of the "shrink wrapped" subarray 0,1,1 - d. H. a single point;
- • 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.2 Assess whether the region of interest requires pruning: x1 <X1_Q, therefore set x1 = X1_Q, and y2> Y2_Q, therefore set 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.3 Judge if x1> x2 or y1> y2. In this case (21b ) both conditions are met, meaning that there are no points in the subarray 0,1,1 that fall into the region of interest; -
• 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 und22b beschrieben ist.• S13.6 Increment the sub-quad counter i at this level (0,1, i) and (S13.6.1) recover the sub-quad (0,1,2) in accordance with S13.1.2 as described with reference to FIG22a and22b is described.
- • 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.1.2 Recover the coordinates of the points and the size of the sub-quad from the "shrink-wrapped" sub-quad 0,1,2: set (X1_Q, Y1_Q), (X2_Q, Y2_Q) to the size of the "shrink wrapped" subarray 0,1,2 - d. H. a single point;
- • 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.2 Assess whether the region of interest requires pruning: x1 <X1_Q, therefore set x1 = X1_Q, y1 <Y1_Q, x2> X2_Q and y2> Y2_Q, so set x1 = X1_Q, y1 = Y1_Q, x2 = X2_Q, y2 = Y2_Q;
- • S13.3 Beurteile, ob x1 > x2 oder y1 > y2 gilt. Nein;• S13.3 Judge if x1> x2 or y1> y2. No;
- • S13.4 Beurteile, ob die (nun beschnittene) Region von Interesse exakt mit dem Unterviereck überlappt: Ja;• S13.4 Assess whether the (now cropped) region of interest is exact overlaps with the sub-quad: Yes;
- • S13.4.2 Zeichne das Unterviereck und die Anzahl der Punkte im Unterviereck (hier 1) auf;• S13.4.2 Draw the sub-quad and the number of dots in the sub-quad (here 1);
-
• 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 und23b beschrieben ist.• S13.6 Increment the sub-quad counter i at this level (0,1, i) and (S13.6.1) recover the sub-quad (0,1,3) in accordance with S13.1.2 as described with reference to FIG23a and23b is described.
- • 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.1.2 Take the coordinates of the points and the size of the sub-quad from the "shrink wrapped" subarray 0,1,3 Again, set (X1_Q, Y1_Q), (X2_Q, Y2_Q) to the size of the "shrink wrapped" subarray 0,1,3 - d. H. a single point;
- • 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.2 Assess whether the region of interest requires pruning: x1 <X1_Q, therefore set x1 = X1_Q, y1 <Y1_Q, x2> X2_Q and y2> Y2_Q, so set x1 = X1_Q, y1 = Y1_Q, x2 = X2_Q, y2 = Y2_Q;
- • S13.3 Beurteile, ob x1 > x2 oder y1 > y2 gilt. Nein;• S13.3 Judge if x1> x2 or y1> y2. No;
- • S13.4 Beurteile, ob die (nun beschnittene) Region von Interesse exakt mit dem Unterviereck überlappt: Ja;• S13.4 Assess whether the (now cropped) region of interest is exact overlaps with the sub-quad: Yes;
- • S13.4.2 Zeichne das Unterviereck und die Anzahl der Punkte im Unterviereck (hier 1) auf;• S13.4.2 Draw the sub-quad and the number of dots in the sub-quad (here 1);
-
• 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 und25 beschrieben ist.• S13.6 Increment the sub-quad counter i at this level (0,1, i) ... i> 3, therefore (S13.6.2) recover the sub-quad (0,2) in accordance with S13.1.2, as with reference to the24 and25 is described.
- • 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.1.2 Take the coordinates of the points and the size of the sub-quad from the "shrink-wrapped" sub-quad 0,2 again: set (X1_Q, Y1_Q), (X2_Q, Y2_Q) to the size of the "shrink-wrapped" sub-quad 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.2 Assess whether the region of interest requires pruning: y1 <Y1_Q, therefore set y1 = Y1_Q, and x2> X2_Q, therefore set x2 = X2_Q;
- • S13.3 Beurteile, ob x1 > x2 oder y1 > y2 gilt. In diesem Fall sind keine Bedingungen erfüllt;• S13.3 Judge if x1> x2 or y1> y2. In this case, no conditions are met;
- • S13.4 Beurteile, ob die (nun beschnittene) Region von Interesse exakt mit dem Unterviereck überlappt. Nein:• S13.4 Assess whether the (now cropped) region of interest is exact overlaps with the sub-quad. No:
-
• 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 und26b beschrieben ist.• S13.5 Recover a sub-quad 0,2,0 of the current sub-quad 0,2 in accordance with S13.1.2 as described with reference to26a and26b is described.
- • 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.1.2 Recover the coordinates of the points and the size of the sub-quad from the "shrink-wrapped" sub-quad 0,2,0: set (X1_Q, Y1_Q), (X2_Q, Y2_Q) to the size of the "shrink-wrapped" sub-quad 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.2 Assess whether the region of interest requires pruning: x2> X2_Q, so set x2 = X2_Q, and y2> Y2_Q, therefore set 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.3 Judge if x1> x2 or y1> y2. In this case (26b ) both conditions are fulfilled, which means that there are no points in the sub-quadrant 0.2.0 that fall into the region of interest; -
• 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 und27b beschrieben ist.• S13.6 Increment the sub-quad counter i at this level (0,2, i) and (S13.6.1) recover the sub-quad (0,2,1) in accordance with S13.1.2 as described with reference to FIG27a and27b is described.
- • 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.1.2 Take the coordinates of the points and the size of the sub-quad from the "shrink-wrapped" sub-quad 0,2,1 Again, set (X1_Q, Y1_Q), (X2_Q, Y2_Q) to the size of the "shrink wrapped" subarray 0,2,1 - d. H. a single point;
- • 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.2 Assess whether the region of interest requires pruning: x1 <X1_Q, therefore set x1 = X1_Q, y1 <Y1_Q, x2> X2_Q and y2> Y2_Q, so set x1 = X1_Q, y1 = Y1_Q, x2 = X2_Q, y2 = Y2_Q;
- • S13.3 Beurteile, ob x1 > x2 oder y1 > y2 gilt. Nein;• S13.3 Judge if x1> x2 or y1> y2. No;
- • S13.4 Beurteile, ob die (nun beschnittene) Region von Interesse exakt mit dem Unterviereck überlappt: Ja;• S13.4 Assess whether the (now cropped) region of interest is exact overlaps with the sub-quad: Yes;
- • S13.4.2 Zeichne das Unterviereck und die Anzahl der Punkte im Unterviereck (hier 1) auf;• S13.4.2 Draw the sub-quad and the number of dots in the sub-quad (here 1);
-
• 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 und28b beschrieben ist.• S13.6 Increment the sub-quad counter i at this level (0,1, i) ... i <3, therefore (S13.6.1) recover the sub-quad (0,2,2) in accordance with S13.1.2 as with reference to the28a and28b is described.
- • 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.1.2 Take the coordinates of the points and the size of the sub-quad from the "shrink-wrapped" sub-quad 0,2,2 again: set (X1_Q, Y1_Q), (X2_Q, Y2_Q) to the size of the "shrink-wrapped" sub-quad 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.2 Assess whether the region of interest requires pruning: x2> X2_Q, so set x2 = X2_Q, and y1 <Y1_Q, therefore set 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.3 Judge if x1> x2 or y1> y2. In this case (28b ) both conditions are met, which means that there are no points in the subarray 0,2,2 that fall into the region of interest; -
• 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.• S13.6 Increment the sub-quad counter i at this level (0,2, i) and (S13.6.1) recover the sub-quad (0,2,3) in accordance with S13.1.2 as described with reference to29 is described.
- • 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.1.2 Take the coordinates of the points and the size of the sub-quad from the "shrink-wrapped" sub-quad 0,2,3 again: there is no sub-quad equivalent to 0,2,3 because it is there are no points in the range corresponding to this sub-quad, therefore jump to 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 und31 beschrieben ist.• S13.6.2 Increment the sub-quad counter i at this level (0,2, i): i> 3, therefore (S13.6.2) retrieve the sub-quad (0,3) in accordance with S13.1.2, as referenced on the30 and31 is described.
- • 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.2 Assess whether the region of interest requires pruning: x1 <X1_Q, therefore set x1 = X1_Q, y1 <Y1_Q, x2> X2_Q and y2> Y2_Q, so set x1 = X1_Q, y1 = Y1_Q, x2 = X2_Q, y2 = Y2_Q;
- • S13.3 Beurteile, ob x1 > x2 oder y1 > y2 gilt. Nein;• S13.3 Judge if x1> x2 or y1> y2. No;
- • S13.4 Beurteile, ob die (nun beschnittene) Region von Interesse exakt mit dem Unterviereck überlappt: Ja;• S13.4 Assess whether the (now cropped) region of interest is exact overlaps with the sub-quad: Yes;
- • S13.4.2 Zeichne das Unterviereck und die Anzahl der Punkte im Unterviereck (hier 2) auf;• S13.4.2 Draw the sub-quad and the number of dots in the sub-quad (here 2);
- • 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.• P13.6 Increment the sub-quad counter i at this level (0, i) ... i> 3, therefore, (S13.6.2) win the sub-quad 1 in accordance with S13.1.2 again.
Wie
aus
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.At the end of the process of identifying the sub-quads that overlap with the region of interest, the sub-quads and the number of points in those sub-quads recorded in steps S13.4.2 are returned - for this example:
Sub-quadrant 0,1,2, number of points: 1 point;
Sub-quadrant 0,1,3, number of points: 1 point;
Lower quadrant 0,2,1, Number of points: 1 point;
Sub-square 0.3, number of points: 2 points.
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.
Der
Prozess für
das tatsächliche
Wiedergewinnen der Punkte ist in
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.
For each quadrangle recorded in step S13.4.2:
- • S32.1 For this sub-quad, recover the number of points that fall into the sub-quad, (N);
- • S32.2 Recover the position of the first point from the corresponding sub-quad structure (Pos sub_quad );
- • S32.3 Move a file pointer to a position in the point file given by Pos sub_quad;
- • S32.4 Extract N points from the file from this position.
Implementierungimplementation
Die
in den
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.The to be indexed points can be over a File or similar in the terminals T3, T4, the index that has been generated, such as described above can be stored in the database DB1 and the point file can also be stored in database DB1 get saved. An area of interest may be in the form of a Database query entered in a known manner via a (not shown) client terminal entered and over the network N1 to the terminals T3, T4 transferred becomes.
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.Preferably are the processes described above in the C programming language implements and uses recursive programming techniques, to "lower down" in the sub-quads to subdivide. It goes without saying that such a method for the invention is immaterial.
Weitere Einzelheiten und ModifikationenFurther details and modifications
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.)As set forth above, the invention can be used to index and retrieve data in 2 dimensions expressed are. The invention can also used to index data in more than 2 dimensions and regain, provided the data (n-dimensional Data, where n> 2 applies) be transformed in 2 dimensions. In such cases, the transformed 2-dimensional data according to the invention indexed and be recovered. Objects in a 3-dimensional space are defined z. B. using a package such. B. NCAR Graphics, what a unix-based Graphics package is that a wide range of capabilities for the Display and manipulation of numerical data offers and of the University Corporation for Atmospheric Research is to be transformed in 2 dimensions. (See http://www.dkrz.de/ngdoc/ng4.0.1 for information in terms of NCAR Graphics and http://ngwww.ucar.edu/ngdoc/ng/fund/chp16-21/threed.html for information in terms of the aspects of 3-to-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.It could other variations executed become. It could z. B. simply dividing the squares and sub-squares into a different number of areas at each iteration, such as B. eight or ten instead of four, can be used.
Claims (15)
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP00311228 | 2000-12-15 | ||
EP00311234 | 2000-12-15 | ||
EP00311228 | 2000-12-15 | ||
EP00311234 | 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 (en) | 2008-02-14 |
DE60132243T2 true DE60132243T2 (en) | 2008-12-11 |
Family
ID=27223583
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE60132243T Expired - Lifetime DE60132243T2 (en) | 2000-12-15 | 2001-12-11 | METHOD FOR INDICATING ENTITIES |
Country Status (6)
Country | Link |
---|---|
US (2) | US7904486B2 (en) |
JP (2) | JP4219165B2 (en) |
AU (2) | AU2002222178A1 (en) |
CA (2) | CA2430446C (en) |
DE (1) | DE60132243T2 (en) |
WO (2) | WO2002048908A1 (en) |
Families Citing this family (28)
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 |
US8589436B2 (en) * | 2008-08-29 | 2013-11-19 | Oracle International Corporation | Techniques for performing regular expression-based pattern matching in data streams |
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 |
US9305057B2 (en) * | 2009-12-28 | 2016-04-05 | Oracle International Corporation | Extensible indexing framework using data cartridges |
US9430494B2 (en) * | 2009-12-28 | 2016-08-30 | Oracle International Corporation | Spatial data cartridge for event processing systems |
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 |
US11288277B2 (en) | 2012-09-28 | 2022-03-29 | Oracle International Corporation | Operator sharing for continuous queries over archived relations |
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)
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 |
DE69529088T2 (en) * | 1994-11-21 | 2003-09-25 | Oracle Corp | METHOD AND DEVICE FOR A MULTI-DIMENSIONAL DATABASE WITH A BINARY HYPERRATIOUS CODE |
JP3952518B2 (en) * | 1996-03-29 | 2007-08-01 | 株式会社日立製作所 | Multidimensional data processing method |
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 (en) * | 1998-07-17 | 2000-02-02 | Nippon Telegr & Teleph Corp <Ntt> | Method and device for retrieving similar feature quantity and storage medium storing retrieval program of similar feature quantity |
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 (en) * | 1999-01-06 | 2004-07-14 | 日本電信電話株式会社 | Multidimensional spatial data structure, method for updating and searching for multidimensional spatial data, recording medium recording the multidimensional spatial data structure, and recording medium recording a program for implementing the method |
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 |
-
2001
- 2001-12-11 AU AU2002222178A patent/AU2002222178A1/en not_active Abandoned
- 2001-12-11 AU AU2002222172A patent/AU2002222172A1/en not_active Abandoned
- 2001-12-11 WO PCT/GB2001/005479 patent/WO2002048908A1/en active Application Filing
- 2001-12-11 CA CA2430446A patent/CA2430446C/en not_active Expired - Fee Related
- 2001-12-11 WO PCT/GB2001/005486 patent/WO2002048909A1/en active IP Right Grant
- 2001-12-11 DE DE60132243T patent/DE60132243T2/en not_active Expired - Lifetime
- 2001-12-11 US US10/433,260 patent/US7904486B2/en active Active
- 2001-12-11 CA CA002430437A patent/CA2430437C/en not_active Expired - Fee Related
- 2001-12-11 JP JP2002550553A patent/JP4219165B2/en not_active Expired - Lifetime
- 2001-12-11 US US10/433,063 patent/US7277886B2/en not_active Expired - Lifetime
- 2001-12-11 JP JP2002550552A patent/JP4259864B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US20040039725A1 (en) | 2004-02-26 |
JP4219165B2 (en) | 2009-02-04 |
WO2002048908A1 (en) | 2002-06-20 |
AU2002222172A1 (en) | 2002-06-24 |
CA2430437A1 (en) | 2002-06-20 |
CA2430446C (en) | 2010-10-26 |
JP2004516553A (en) | 2004-06-03 |
US7904486B2 (en) | 2011-03-08 |
JP2004516552A (en) | 2004-06-03 |
WO2002048909A1 (en) | 2002-06-20 |
AU2002222178A1 (en) | 2002-06-24 |
US7277886B2 (en) | 2007-10-02 |
JP4259864B2 (en) | 2009-04-30 |
CA2430446A1 (en) | 2002-06-20 |
CA2430437C (en) | 2006-05-09 |
US20040019592A1 (en) | 2004-01-29 |
DE60132243D1 (en) | 2008-02-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE60132243T2 (en) | METHOD FOR INDICATING ENTITIES | |
DE69401662T2 (en) | DATABASE STRUCTURES | |
DE69636761T2 (en) | SAVING AND RE-RELEASING ORDERED KEY QUANTITIES IN A COMPACT 0-COMPLETE TREE | |
DE19782227B4 (en) | A method for distributing index data among a plurality of networked nodes and a system for managing an index | |
DE10028688B4 (en) | Method, system, and program for a join operation in a multi-column table and double-valued satellite tables | |
DE68926849T2 (en) | Structure and method for arranging recursively derived data in a database | |
DE3650673T2 (en) | Record and retrieve a representation of topological structures | |
DE3855213T2 (en) | Database system and method for simultaneous record access using a tree structure index | |
DE60130475T2 (en) | PERFORMING CALCULATIONS OF A TABLE CALCULATION TYPE IN A DATABASE SYSTEM | |
DE60313371T2 (en) | Use of tree-like "bitmap" data structures | |
DE69910219T2 (en) | TRANSFORMING THE PERSPECTIVE ON TABLES FROM RELATIONAL DATABASES | |
DE3855212T2 (en) | Procedure for calculating a transitive closure | |
DE3856055T2 (en) | Method and device to enable simultaneous access to indexed sequential files | |
DE19617381C2 (en) | Object conversion device from a flat object space to a class structured space | |
DE69024932T2 (en) | Procedure to identify documents with a certain attribute with the help of a vector-relational characteristic object | |
DE10035043A1 (en) | Building multi-dimensional indexing structure for use with linear optimising requests involves forming two convex envelopes of input data sets, some representing envelope apex points | |
WO2002001407A2 (en) | Automatic search method | |
DE112017006106T5 (en) | Create, access, and view lineage metadata | |
DE69127399T2 (en) | Method for the automatic deletion of temporary document connections in a data processing system | |
DE10251440A1 (en) | Method for reproducible selection of elements in a hierarchy e.g. for business enterprises, has sequence of actions marked in an element selection script | |
DE112012004916T5 (en) | Improved database query and effort estimation | |
DE19924261A1 (en) | Network configuration management objective access method, involves returning acquired information on child management objective instance to parent management object instance which in turn return it to manager | |
DE60131796T2 (en) | Object domain data generation method and apparatus, polygon approximation method and apparatus | |
WO2000060497A2 (en) | Method for using fractal semantic networks for all kinds of data base appliances | |
EP1159689A2 (en) | Search and surf device for hypertext documents |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition |