DE102014204830A1 - Computer-implemented systems and methods for comparing and associating objects - Google Patents

Computer-implemented systems and methods for comparing and associating objects

Info

Publication number
DE102014204830A1
DE102014204830A1 DE102014204830.3A DE102014204830A DE102014204830A1 DE 102014204830 A1 DE102014204830 A1 DE 102014204830A1 DE 102014204830 A DE102014204830 A DE 102014204830A DE 102014204830 A1 DE102014204830 A1 DE 102014204830A1
Authority
DE
Germany
Prior art keywords
object
objects
slug
plurality
bloom filter
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.)
Pending
Application number
DE102014204830.3A
Other languages
German (de)
Inventor
Mark Elliot
Allen Chang
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Palantir Technologies Inc
Original Assignee
Palantir Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
Priority to US201361801297P priority Critical
Priority to US61/801,297 priority
Priority to US14/099,661 priority
Priority to US14/099,661 priority patent/US8924388B2/en
Application filed by Palantir Technologies Inc filed Critical Palantir Technologies Inc
Publication of DE102014204830A1 publication Critical patent/DE102014204830A1/en
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=50634706&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE102014204830(A1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application status is Pending legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors

Abstract

Computerimplementierte Systeme und Verfahren zum Vergleichen und Assoziieren von Objekten werden offenbart. Computer-implemented systems and methods for comparing and associating objects are disclosed. Bei einigen Ausführungsformen wird ein Verfahren bereitgestellt, um ein erstes Objekt mit einem oder mehreren Objekten innerhalb einer Mehrzahl von Objekten zu assoziieren, wobei jedes Objekt eine erste Mehrzahl von Eigenschaften aufweist, jede Eigenschaft Daten aufweist, die ein Kennzeichen einer durch das Objekt repräsentierten Entität widerspiegeln, wobei die assoziierten Objekte übereinstimmende Daten in entsprechenden Eigenschaften für eine zweite Mehrzahl von Eigenschaften aufweisen. In some embodiments, a method is provided for associating a first object with one or more objects within a plurality of objects, each object having a first plurality of characteristics, each characteristic has data reflecting a characteristic of an entity represented by the object wherein the associated objects have matching data in corresponding characteristics for a second plurality of properties. Das Verfahren kann beinhalten, dass, für jedes Objekt innerhalb der Mehrzahl von Objekten und für das erste Objekt, folgendes ausgeführt wird: Erzeugen eines Slug für das Objekt, wobei der Slug die zweite Mehrzahl von Eigenschaften von dem Objekt aufweist; The method may include that, for each object within the plurality of objects and for the first object, the following is carried out: generating a Slug for the object, wherein the slug comprises the second plurality of characteristics of the object; und Eingeben des Slug für das Objekt in einen Bloomfilter. and enter the slug for the object in a Bloom filter. Weiter kann das Verfahren beinhalten, dass, für eine Position im Bloomfilter, die dem Slug für das erste Objekt entspricht, eine Assoziierung zwischen Objekten erzeugt wird, deren Slugs der Position entsprechen, falls die Slugs für diese Objekte übereinstimmen. Further, the method may include that, for a position in the Bloom filter corresponding to the Slug for the first object, an association between objects is generated, the Slugs of the position correspond if the Slugs for these objects coincide.

Description

  • Diese Anmeldung beansprucht die Priorität der provisorischen US-Patentanmeldung Nr. 61/801,297, eingereicht am 15. März 2013, und der US-Patentanmeldung Nr. 14/099,661, eingereicht am 6. Dezember 2013, wobei deren Offenbarungen hiermit durch Bezugnahme vollinhaltlich in das vorliegende Dokument aufgenommen werden. This application claims the benefit of US provisional patent application Ser. No. 61 / 801.297, filed March 15, 2013 and US patent application Ser. No. 14 / 099,661, filed December 6, 2013, the disclosures of which are hereby incorporated by reference in full in the This document are recorded.
  • Zahlreiche Organisationen, einschließlich Industrie- und Regierungsinstanzen, erkennen, dass wichtige Schlüsse gezogen werden können, wenn riesige Datensätze analysiert werden können, um Verhaltensmuster zu identifizieren, die Gefahren für die öffentliche Sicherheit nahelegen oder illegale Handlungen beweisen. , Recognize numerous organizations, including industry and government entities that important conclusions can be drawn when large data sets can be analyzed to identify patterns of behavior that suggest the dangers to public safety or prove illegal acts. Diese Analysen beinhalten häufig, dass Daten, die mit einer interessierenden Person oder Sache assoziiert sind, mit anderen Daten abgeglichen werden, die mit derselben Person oder Sache assoziiert sind, um zu bestimmen, dass dieselbe Person oder Sache an mehreren Taten beteiligt war, die Sicherheitsbedenken oder strafrechtliche Bedenken hervorrufen. These analyzes often include that data associated with an interest person or thing to be compared with other data associated with the same person or thing to determine that the same person or thing was involved in several acts that security concerns cause or criminal concerns.
  • Dabei kann jedoch die Qualität des analytischen Ergebnisses, das von einer Verwendung von technisch fortschrittlichen Analysewerkzeugen herrührt, durch die Qualität der Daten, die das Werkzeug verwendet, eingeschränkt sein. However, the quality of the analytical result, resulting from a use of technically advanced analysis tools, be limited by the quality of the data used by the tool. Für gewisse Typen von Analysen muss eine akzeptable Fehlerrate buchstäblich oder fast Null sein, damit ein aus den Daten gezogener analytischer Schluss gut fundiert ist. For certain types of analyzes an acceptable error rate must literally or almost be zero, so that a drawn from the data analytical conclusion is well founded. Ein Erzielen dieser Null oder fast Null betragenden Fehlerrate für Datensätze, die einen zwei- oder dreistelligen Millionenwert von einzelnen Datensätzen umfassen, kann problematisch sein. A achieve this zero or near-zero error rate for data sets that include a two- or three-digit million value of each record can be problematic. Aktuelle Datenvergleichswerkzeuge sind nicht gut geeignet, um diese Probleme zu lösen. Current data comparison tools are not well suited to solve these problems.
  • Die zuvor erläuterten Probleme sind besonders heftig für Analysen, die Daten beinhalten, welche in Bezug zu einem Identifizieren von Personen oder Sachen für Untersuchungen betreffend die öffentliche Sicherheit stehen. The above problems are particularly acute for analysis, including data which are related to identification of persons or property for investigations concerning public security. Beispielsweise ist bei Analysewerkzeugen zum Identifizieren potentieller Sicherheitsbedrohungen die akzeptable Fehlerrate generell nicht größer als Null, da der Preis, dass irrtümlich auf ein Vorliegen einer Sicherheitsbedrohung erkannt wird (dh „falsch-positiv”) oder dass ein Nicht-Aufspüren einer Sicherheitsbedrohung zugelassen wird (dh „falsch-negativ”), unannehmbar hoch ist. For example, in analysis tools for identifying potential security threats, the acceptable error rate is generally not greater than zero, as the price that is erroneously detected for a presence of a security threat (ie "false-positive"), or that a non-detection of a security threat permitted (ie , is unacceptably high "false-negative"). Daher ist es erforderlich, dass zur Unterstützung der öffentlichen Sicherheit dienende Werkzeuge Daten, die mit interessierenden Personen oder Sachen assoziiert sind, zu Daten, in mit derselben Person oder Sache in Beziehung stehen, in korrekter Weise in Bezug setzen. Therefore, it is necessary that serves to support public safety tools correlate data associated with interest persons or property to data, are in with the same person or thing in relation correctly with respect.
  • Es gibt einige Werkzeuge, um einen genauen Datenvergleich vorzunehmen, jedoch sind diese mit Datensätzen, die Millionen von einzelnen Einträgen enthalten, zur Rechnerauswertung praktisch nicht zu verwenden. There are some tools to make an accurate comparison of data, but they are with records that contain millions of individual entries, no practical use for computer analysis. Beispielsweise besteht eine Lösung, um zu bestimmen, ob zwei spezielle Objekte mit derselben interessierenden Person oder Sache assoziiert sind, darin, jedes Element eines Objekts mit einem entsprechenden Element im zweiten Objekt zu vergleichen. For example, one solution to determine whether two objects are associated with the same special interest person or thing is to compare each item of an object with a corresponding element in the second object. Beispielsweise kann, für Objekte, die M Elemente enthalten, ein erstes Element im ersten Objekt mit einem entsprechenden ersten Element im zweiten Objekt verglichen werden, und entsprechende Vergleiche können für jedes der verbleibenden M – 1 Elemente vorgenommen werden, die den ersten und zweiten Objekten gemeinsam sind. For example, a first element in the first object with a corresponding first element in the second object may be, for objects that include M elements are compared, and appropriate comparisons for each of the remaining M - be made 1 elements common to the first and second objects are. Falls die Elemente in jedem Objekt insgesamt geeignet sind, um die repräsentierte Person oder Sache mit Gewissheit eindeutig zu identifizieren, und entsprechende Elemente in den ersten und zweiten Objekten übereinstimmen, kann in begründeter Weise daraus geschlossen werden, dass die Objekte dieselbe Person oder Sache widerspiegeln. If the elements are in each object altogether suitable to identify the represented person or thing clearly with certainty and match corresponding elements in the first and second objects can be closed in reasonable manner the fact that the objects reflect the same person or thing. Als Alternative könnte jedes Objekt in eine einzelne Zeichenkette umgewandelt (serialisiert) werden, welche die Inhalte eines jeden zu vergleichenden Elementes widerspiegelt. Alternatively, each object may be converted into a single string (serialized) that reflects the contents of each element to be compared. Danach könnte eine Zeichenkette, die aus dem einen Objekt erzeugt wird, mit einer Zeichenkette, die aus einem anderen Objekt erzeugt wird, als eine Form eines Objektvergleichs verglichen werden. Thereafter, could be a character string, which is generated from an object with a character string, which is generated from another object, as a form of a comparison object to be compared.
  • Für gewisse Datensätze ist es möglich, dass die zuvor beschriebenen Lösungsansätze wenig Speicher oder Systemressourcen verbrauchen, da die Objekte oder ihre serialisierten Zeichenketten auf Plattenspeicher anstatt im Hauptspeicher gespeichert werden können. For certain records, it is possible that the solutions described above consume little memory or system resources, because the objects or their serialized strings to disk instead can be stored in main memory. Rasch können jedoch die zuvor beschriebenen Lösungsansätze bei großen oder nicht-trivialen Datensätzen praktisch nicht mehr einsetzbar sein. However, the approaches described above for large or non-trivial data sets can not be used quickly in practice. Mit steigender Anzahl von zu vergleichenden Objekten steigt die Anzahl von Vergleichen, und somit die Verarbeitungszeit der Vergleiche exponentiell an; As the number of objects to be compared, the number of comparisons, and therefore the processing time of the comparisons increases exponentially; dh proportional zu n 2 /2, wobei n die Anzahl von zu vergleichenden Objekten repräsentiert. ie represents proportional to n 2/2, where n is the number of objects to be compared. Somit kann ein Vergleich von 500 Objekten unter Verwendung eines serialisierten Lösungsansatzes, dessen Bearbeitungszeit näherungsweise als die Zeit angenommen werden kann, um 125.000 Zeichenkettenvergleiche durchzuführen, mittels Rechnerauswertung zu bewältigen sein. Thus, a comparison of 500 objects using a serialized approach, the processing time, the time can be assumed approximately as to 125,000 string comparisons, be overcome by means of computer analysis to be performed. Jedoch kann ein Vergleich von 100 Millionen (100M) Datensätzen unter Verwendung dieses Lösungsansatzes, dessen Berechnungszeit näherungsweise als die Zeit zur Durchführung von 5 Billiarden (5e15) Zeichenkettenvergleichen angenommen werden kann, mittels Rechnerauswertung schwer zu bewältigen sein. However, a comparison of 100 million (100M) data sets can be formed using this approach, the computation time for performing 5 quadrillion (5E15) string compare it can be assumed approximately as the time to be difficult to overcome by means of computer evaluation. Zusätzlich kann ein Lesen von Zeichenketten von einem Plattenspeicher, anstatt diese von einem Arbeitsspeicher zu lesen, zusätzliche Berechnungszeit hinzufügen. In addition, a reading strings from a disk, rather than this to read from a memory, add additional computation time.
  • Eine weitere Lösung zum Identifizieren von übereinstimmenden Objekten in einem Korpus von Objekten besteht darin, jedes Objekt in einer Multimap zu speichern. Another approach to identify matching objects in a corpus of objects is to store every object in a Multimap. Diese Multimap ist ein assoziatives Datenfeld, das mehrere Werte für jeden Schlüssel speichert. This Multimap is an associative array that stores multiple values ​​for each key. Ein Importieren der Objekte in die Multimap führt dazu, dass Objekte mit den gleichen Elementdaten in einem einzigen Eintrag der Multimap gespeichert werden. The import of the objects in the Multimap means that objects with the same element data is stored in a single entry of Multimap. Somit erfolgt durch eine Verwendung einer Multimap ein Assoziieren identischer Objekte. Thus associating identical object is carried out by use of a Multimap.
  • Ein Nachteil bei einer Verwendung einer Multimap für Objektvergleiche besteht darin, dass die Multimap typischerweise im Hauptspeicher gespeichert wird, aufgrund von den Algorithmus betreffenden Überlegungen, die ein Organisieren von Schlüsseln in der Multimap betrifft, und daher muss eine Objektvergleichseinrichtung ausreichend Hauptspeicher aufweisen, um eine den gesamten Korpus umfassende Multimap im Arbeitsspeicher zu halten. A drawback with using a Multimap of object comparison is that the Multimap is typically stored in the main memory, having due concerned of the algorithm considerations relating to an organization of keys in the Multimap, and therefore an object comparison device has sufficient memory to a the to keep the entire body comprehensive Multimap in memory. Daher kann eine Multimap-Lösung für Datensätze von 100M Objekten oder mehr unmöglich sein. Therefore, a Multimap solution for records of 100M or more objects may be impossible. Ähnliche Nachteile bestehen für jeden Lösungsansatz bei Anwendung auf weitere Objektvergleichsprobleme, beispielsweise ein effizientes Identifizieren von unikalen (einmalig vorkommenden) Objekten in einem Korpus von Objekten und ein effizientes Vergleichen eines einzelnen Objekts mit allen Objekten in einem Korpus von Objekten. Similar disadvantages of each approach when applied to another object comparison problems, such as an efficient identification of unikalen (single copy) objects in a corpus of objects and efficient comparing a single object with all objects in a corpus of objects.
  • Keine der Lösungen ist für Datensätze gangbar, die annähernd oder mehr als 100M Objekte umfassen. None of the solutions is feasible for records that comprise approximately or more than 100M objects. Dabei sind jedoch Objekt-Datensätze, die 100M oder mehr Objekte umfassen, heutzutage nicht ungewöhnlich. However, property records, 100M or more objects include, nowadays not uncommon. Daher sind die hier beschriebenen Probleme ziemlich real, und es besteht ein Bedarf nach verbesserten Objektvergleichseinrichtungen. Therefore, the problems described here are quite real, and there is a need for improved object comparison facilities.
  • Die vorliegende Erfindung ist in den unabhängigen Ansprüchen wiedergegeben. The present invention is set out in the independent claims. Die abhängigen Ansprüche betreffen optionale Merkmale einiger Ausführungsformen der Erfindung. The dependent claims concern optional features of some embodiments of the invention.
  • Nachfolgend wird Bezug genommen auf die anliegenden Zeichnungen, die beispielhafte Ausführungsformen der vorliegenden Anmeldung darstellen, wobei: Reference is now made to the accompanying drawings which illustrate exemplary embodiments of the present application, wherein:
  • 1 1 ein Ablaufdiagramm eines beispielhaften Prozesses zum Vergleichen eines Zielobjekts mit zumindest einigen Objekten in einem Korpus zeigt, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. a flow chart of an exemplary process for comparing a target object with at least some of objects in a body shows, according to some embodiments of the present disclosure.
  • 2 2 ein Ablaufdiagramm eines beispielhaften Prozesses zum Vergleichen aller Objekte in einem Korpus mit allen anderen Objekten im Korpus zeigt, um Übereinstimmungen innerhalb des Korpus zu bestimmen, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Shows a flowchart of an exemplary process for comparing all of the objects in a corpus with all the other objects in the body to determine matching items within the corpus, according to some embodiments of the present disclosure.
  • 3 3 ein Ablaufdiagramm eines beispielhaften Prozesses zum Vergleichen aller Objekte in einem Korpus mit allen anderen Objekten im Korpus zeigt, um unikale Objekte innerhalb des Korpus zu bestimmen, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Shows a flowchart of an exemplary process for comparing all of the objects in a corpus with all the other objects in the body to determine Unique objects within the body, according to some embodiments of the present disclosure.
  • 4 4 eine beispielhafte Rechnerumgebung zeigt, innerhalb der Ausführungsformen der vorliegenden Offenbarung implementiert werden können. an exemplary computing environment displays can be implemented within embodiments of the present disclosure.
  • Nachfolgend wird detailliert Bezug genommen auf die Ausführungsformen, wobei Beispiele für diese in den anliegenden Zeichnungen dargestellt sind. Hereinafter, detailed reference is made to the embodiments, examples of which are illustrated in the accompanying drawings. Wann immer möglich, werden gleiche Bezugszeichen in allen Zeichnungen verwendet, um auf gleiche oder ähnliche Teile Bezug zu nehmen. Whenever possible, the same reference numbers will be used throughout the drawings to refer to the same or like parts.
  • Ausführungsformen der vorliegenden Offenbarung können die Nachteile herkömmlicher Objektvergleichseinrichtungen vermeiden, dadurch dass computerimplementierte Systeme und Verfahren bereitgestellt werden, um Objekte in einer Weise zu vergleichen, die einen größeren Berechnungsdurchsatz und einen akzeptablen Speicherverbrauch ermöglicht, ohne dass eine Vergleichsgenauigkeit verringert wird, sowie für Datensatzgrößen, die zuvor praktisch nicht, oder nicht auf akzeptablem Berechnungsdurchsatzniveau zu bewältigen waren. Embodiments of the present disclosure can avoid the drawbacks of conventional object comparison means, characterized that computer-implemented systems and methods are provided to compare properties in a manner that allows for a greater calculating throughput and an acceptable memory consumption without requiring a collation precision is lowered, as well as for data set sizes were previously virtually impossible, or not to deal at an acceptable calculation throughput level.
  • Ausführungsformen der vorliegenden Offenbarung betreffen eine Klasse von Berechnungsproblemen, die sich auf einen Objektvergleich beziehen. Embodiments of the present disclosure relate to a class of computational problems, which relate to an object comparison. Ein Element dieser Klasse beinhaltet einen effizienten Objektvergleich eines speziellen Objekts mit einem Korpus von Objekten. A member of this class includes an object efficient comparison of a specific object with a corpus of objects. Ein weiteres Element dieser Klasse beinhaltet einen effizienten Vergleich von jedem Objekt in einem Korpus mit allen anderen Objekten im Korpus. Another element of this class includes an efficient comparison of each object in a corpus with all the other objects in the body. Ein zusätzliches Element dieser Klasse beinhaltet eine effiziente Identifizierung von unikalen Objekten in einem Korpus von Objekten. An additional element of this class includes an efficient identification of unikalen objects in a corpus of objects.
  • Die folgende detaillierte Beschreibung beginnt mit einem allgemeinen Überblick eines Objektvergleichs. The following detailed description begins with a general overview of an object comparison. Einige Beispiele von zu vergleichenden oder zu analysierenden Objekten werden geliefert. Some examples of being compared or analyzed objects are delivered. Die Beschreibung erläutert dann eine beispielhafte Ausführungsform, die sich mit der zuvor erörterten ersten Problemklasse befasst (dh einem effizienten Vergleichen eines einzigen Objekts mit allen Objekten in einem Korpus). The description then explained an exemplary embodiment which addresses the above-discussed first problem class (ie, an efficient comparing a single object with all objects in a corpus). Die Beschreibung erweitert dann die Lösung für die erste Problemklasse, um die zuvor erläuterte zweite Problemklasse anzusprechen (dh einen effizienten Vergleich eines jeden Objekts in einem Korpus mit allen anderen Objekten im Korpus). The description then expands the solution for the first problem class, to address the above-explained second problem class (ie, an efficient comparison of each object in a corpus with all the other objects in the body). Die detaillierte Beschreibung offenbart dann eine Lösung für die dritte Problemklasse (dh eine effiziente Identifikation von unikalen Objekten in einem Korpus von Objekten). The detailed description then discloses a solution for the third problem class (ie an efficient identification of unikalen objects in a corpus of objects). Eine Einführung zu Objekten und ein Überblick von Objektvergleichen folgt. An introduction to objects and an overview of object Compare follows.
  • Mehrere Typen von Objekten existieren auf dem Gebiet der Informatik. Several types of objects exist in the field of computer science. Ein auf dem Gebiet der Informatik gut bekannter Objekttyp ist ein Objekt im objektorientierten Sinn. One in the field of computer science of well-known type of object is an object in the object-oriented sense. Wikipedia beschreibt ein Objekt dieses Typs als einen Satz von Elementen (dh Datenstrukturen) und Verfahren, die Funktionen ähnlich sind. Wikipedia describes an object of this type as a set of elements (ie, data structures), and methods, the functions are similar. Ohne notwendigerweise dieser grob vereinfachenden Beschreibung beizupflichten, sind Ausführungsformen, welche die hier erörterten Objektvergleichslösungen implementieren, kompatibel zu einem Vergleichen von Objekten dieses Typs. without necessarily agree with this simplistic description, embodiments that implement the object discussed herein reference solutions compatible with a comparing objects of this type.
  • Ein weiterer Objekttyp auf dem Gebiet der Informatik ist eine Datenstruktur, welche die Eigenschaften einer Person oder einer Sache widerspiegelt, die für eine spezielle Aufgabe oder Datenverarbeitungsumgebung relevant ist. Another object type in the field of computer science is a data structure that reflects the characteristics of a person or thing that is relevant for a specific task or computing environment. Bei einigen Ausführungsformen werden diese Eigenschaften durch Zeichenketten (Strings) widergespiegelt. In some embodiments, these properties are achieved by strings (strings) reflected. Bei weiteren Ausführungsformen können Eigenschaften durch Zeichenketten, Ganzzahlen, reelle Zahlen, Zeit- oder Datumsangaben, Binärwerte, Strukturen im Sinn der C-Programmierung, Variablenaufzählungen und/oder weitere Datenformen widergespiegelt werden. In further embodiments properties by strings, integers, real numbers, time or dates, binary values, structures can be reflected in the sense of the C programming, variables, enumerations and / or other forms of data. Bei einigen Ausführungsformen können Eigenschaften jedweden Objekttyps vor einem Vergleichen in Zeichenketten umgewandelt werden. In some embodiments, properties can any object type to be converted before a compare to strings. Bei weiteren Ausführungsformen können möglicherweise einige Eigenschaften Zeichenketten sein oder können möglicherweise in Zeichenketten umgewandelt werden, hingegen können möglicherweise andere Eigenschaften keine Zeichenketten sein und können möglicherweise nicht in Zeichenketten umgewandelt werden. In further embodiments, some properties may possibly be strings or may be able to be converted to strings, while other properties may possibly be no strings and may not be converted to strings. Die Ausführungsformen der vorliegenden Offenbarung können mit Zeichenkette- oder Nicht-Zeichenkette-Eigenschaften arbeiten. The embodiments of the present disclosure can work with Zeichenkette- or non-string properties.
  • Außerdem ist die Vorstellung von einer „Datenstruktur” in diesem Kontext sehr flexibel. In addition, the notion of a "data structure" in this context is very flexible. Der Begriff „Datenstruktur” kann einen beliebigen Typ von strukturierten Daten widerspiegeln, und zwar von in einer Datenbank gespeicherter Information (mit Tabellenspalten, die Elemente in einem Objekt oder einer Datenstruktur widerspiegeln, und Tabellenzeilen, die Instanzen des Objekts oder der Datenstruktur widerspiegeln), und weiter zu formatiertem Text in einer Textdatei (beispielsweise Daten in einer XML-Struktur), bis hin zu Daten, die in einem ablaufenden Computerprogramm gespeichert sind. The term "data structure" may reflect any type of structured data, from a database stored information (with columns which reflect elements in an object or data structure and table rows that are instances of the object or the data structure to reflect), and further formatted text in a text file (for example, data in an XML structure) to data stored in a running computer program. Demgemäß umfassen, da eine Datenstruktur die zuvor beschriebenen Typen von strukturierten Daten grob umfasst, Objekte ebenfalls grob diese Typen von strukturierten Daten. Accordingly, include, as a data structure includes the types of structured data described above, coarse, rough objects also these types of structured data. Außerdem sind die hier erläuterten Objektvergleichslösungen ebenfalls kompatibel mit einem Vergleichen von Objekten dieser Typen. In addition, the object comparison solutions described here are also compatible with a comparing objects of these types.
  • Bei einigen Ausführungsformen beinhaltet ein effektiver Objektvergleich, dass man in Betracht zieht, welche Eigenschaften der zu vergleichenden Objekte für ein Durchführen des Vergleichs relevant sind, da die Entitäten (z. B. Personen oder Sachen), die durch diese Objekte widergespiegelt werden, in unterschiedlichen Umgebungen unterschiedliche relevante Eigenschaften haben können. In some embodiments, includes an effective object comparison that you consider what characteristics of relevant objects to be compared for performing the comparison, since the entities (eg. As people or things) that are reflected by these objects in different environments may have different relevant properties. Beispielsweise kann ein Objekt Eigenschaften eines Automobils speichern, die für ein Kraftfahrzeugsamt eines Staates relevant sein können, und zwar durch Speichern der folgenden Information: Fahrzeugidentifizierungsnummer (VIN), Herstellungsjahr, Marke, Modell, Ablaufdatum der Fahrzeugzulassung und eine direkte oder indirekte Angabe der Person, die Eigentümer des Fahrzeugs ist. For example, save properties of an automobile, which may be relevant for a motor vehicle office in a State object, by storing the following information: Vehicle Identification Number (VIN), year, make, model, expiration date of the vehicle registration and a direct or indirect indication of the person is the owner of the vehicle.
  • Für Automobile, die auf einer Auktions-Website wie beispielsweise eBay verkauft werden, können jedoch die relevanten Eigenschaften eines Automobils sich von denen unterscheiden, die für das Kraftfahrzeugsamt des Staates relevant sind. For automobiles that are sold on an auction site such as eBay, however, may differ from those that are relevant for the motor vehicle Office of the State the relevant characteristics of an automobile. Beispielsweise kann eine Datenstruktur zum Speichern von Eigenschaften eines Automobils, das für einen Verkauf auf eBay gelistet ist, beinhalten: VIN, Jahr, Marke, Modell, Kilometerstand, Zustand des Automobils, minimales Auktionsgebot und eine direkte oder indirekte Angabe der Person, die das zum Verkauf stehende Fahrzeug eingestellt hat. For example, a data structure for storing properties of a car that has been listed for sale on eBay include: VIN, year, make, model, mileage, condition of the automobile, minimum auction bid, and a direct or indirect indication of the person's for sales have set of stationary vehicles. Somit können Eigenschaften einer Entität (z. B. eine Person oder Sache), die für die eine Umgebung relevant ist, sich von Eigenschaften der Entität unterscheiden, die für eine andere Umgebung relevant sind. Thus, properties of an entity (eg. As a person or thing) that is relevant to an environment different from properties of the entity that are relevant to a different environment. Demgemäß können Eigenschaften eines Objekts, die während eines Objektvergleichs in der einen Umgebung berücksichtigt werden, sich von denen unterscheiden, die während eines Objektvergleichs in einer zweiten Umgebung berücksichtigt werden. Accordingly, properties of an object, which are taken into account during the comparison object in the one area are different from those that are considered during a comparison object in a second environment.
  • Bei einigen Ausführungsformen kann ein effektiver Datenvergleich auch beinhalten, dass berücksichtigt wird, welche Eigenschaften darauf abzielen, eine Entität (z. B. eine Person oder Sache) von anderen Instanzen der Entität zu unterscheiden. In some embodiments, an effective data comparison may also include that is taken into account, which properties aimed forward to distinguish one entity (e.g., as a person or thing) from other instances of the entity. Beispielsweise sollte, gemäß Auslegung, eine VIN für ein Automobil unikal (einmalig vorkommend) für dieses Automobil sein. For example, should, according to interpretation, be a VIN for an automobile unikal (one occurring) for this automobile. Jedoch können gelegentlich Situationen auftreten, bei denen eine VIN nicht unikal für ein spezielles Automobil ist. However, situations may occasionally arise where a VIN is not unikal for a particular automobile. Derartige Situationen können von absichtlichen Fehlern oder zufälligen Fehlern herrühren. Such situations may result from deliberate errors or random errors. Ein Beispiel eines absichtlichen Fehlers ist ein Versuch einer betrügerischen Registrierung eines gestohlenen Fahrzeuges unter einer vorgeblichen VIN. An example of an intentional error is an attempt of a fraudulent registration of a stolen vehicle under a purported VIN. Ein Beispiel eines zufälligen Fehlers tritt auf, wenn ein mit Smog-Überprüfung befasster Angestellter eine VIN inkorrekt in einen Computer an einer Smog-Überprüfungsstation eingibt, was zu einem Smog-Überprüfungs-Datensatz mit inkorrekter VIN führt, die anschließend an eine Datenbank eines Staates weitergegeben wird. An example of a random error occurs when an areas addressing smog-check employee enters a VIN incorrectly into a computer at a smog inspection station, resulting in a smog-check data with incorrect VIN, which subsequently passed on to a database of a state becomes. Datenfehler kommen bei realen Datenverarbeitungsumgebungen vor, und daher führen einige Ausführungsformen der vorliegenden Offenbarung ein Minimieren oder Eliminieren von Fehlern durch, und zwar dadurch, dass Objekte mittels einer Kombination aus mehreren Objekteigenschaften identifiziert werden, anstatt Objekte mittels Verwendung einer einzelnen Objekteigenschaft zu identifizieren. Data errors occur in real computing environments before, and therefore, some embodiments of the present disclosure result by minimizing or eliminating errors, namely the fact that objects are identified by means of a combination of several object characteristics, rather than to identify objects by using a single object property.
  • Bei einigen Ausführungsformen werden eine oder mehrere Identifizierungseigenschaften eines Objekts aus dem Objekt extrahiert und in einer Datenstruktur gespeichert. In some embodiments, one or more identifying characteristics of an object are extracted from the object and stored in a data structure. Diese Datenstruktur wird als „Slug” bezeichnet; This data structure is referred to as "slug"; sie enthält Information, die ausreichend sein kann, um eine Entität (z. B. eine Person oder Sache) mit einem gewissen Grad an Informationsredundanz eindeutig zu identifizieren, um ein Erfassen von Fehlern in den Eigenschaften im Slug zu ermöglichen. it contains information that may be sufficient to identify an entity (e.g., as a person or thing) with a certain degree of information redundancy unique in order to permit detecting errors in the properties of the slug. Bei einigen Ausführungsformen weist der Slug eine Verkettung von Zeichenketten auf, die durch ein Trennzeichen getrennt sind. In some embodiments, the slug has a concatenation of character strings which are separated by a separator character. Bei einigen Ausführungsformen ist das Trennzeichen ein NULL-Zeichen, hingegen kann bei weiteren Ausführungsformen das Trennzeichen ein Zeichen sein, dass ansonsten nicht in der verketteten Zeichenkette vorhanden ist. In some embodiments, the separator is a NULL character, however, the separator can be a sign, in other embodiments that otherwise does not exist in the concatenated string. Bei einigen Ausführungsformen können die verketteten Zeichenketten durch eine Trenn-Zeichenkette (z. B. „--”) anstelle eines Trennzeichens begrenzt sein. In some embodiments, the concatenated strings can by a separating character string (eg. "-") to be limited, instead of a separator. Bei Ausführungsformen, die eine Trenn-Zeichenkette verwenden, kann die Trenn-Zeichenkette eine beliebige Zeichenkette sein, die ansonsten nicht in den Zeichenketten vorkommt, die verkettet wurden. In embodiments that use a separator string, the separation string can be any string that would otherwise not occur in the strings that were chained. Bei weiteren Ausführungsformen weist der Slug eine Datenstruktur wie beispielsweise ein Objekt, ein Datenfeld (Array), eine Struktur oder ein assoziatives Datenfeld (assoziatives Array) auf. In further embodiments, the slug has a data structure such as an object, a data field (array), structure, or an associative data array (associative array) on.
  • Beispielsweise kann bei einer Ausführungsform ein Slug für ein Automobil Eigenschaften enthalten, die eine VIN, eine Marke, ein Modell und eine Jahresangabe für das Automobil beinhalten. For example, in one embodiment, a slug for an automobile can contain properties that include a VIN, a brand, a model and a year specification for the automobile. Dadurch dass die Eigenschaften Marke, Modell und Jahr für das Automobil im Slug enthalten ist, wird eine Fähigkeit für ein Erfassen von Fehlern in der VIN-Eigenschaft bereitgestellt, da die VIN-Eigenschaft nicht die einzige Objekteigenschaft ist, die verglichen wird. This ensures that the properties make, model and year of the car is included in the Slug, a capability for detecting errors in the VIN property is provided because the VIN property is not the only object property that is being compared. Damit Slugs, die mit zwei Automobilen assoziiert sind, bei Vorliegen eines Fehlers in der VIN-Eigenschaft des einen Automobil-Objekts, übereinstimmen, muss ein Automobil-Objekt mit der gleichen VIN-Eigenschaft wie die fehlerhafte VIN ebenfalls die gleichen Marken-, Modell- und Jahr-Eigenschaften haben. Thus Slugs associated with two cars, if there is an error in the VIN property of an automotive object, match, an automotive object with the same VIN property as the incorrect VIN must also be the same brand, model have and year properties.
  • Die Chancen dieser zufälligen Übereinstimmung mehrerer Eigenschaften zwischen zwei oder mehr Objekten kann verschwindend gering sein. The chances of these random match several characteristics between two or more objects may be negligible. Daher sollte ein Einbeziehen eines gewissen Grades an Informationsredundanz irrtümliche Übereinstimmungen bei einem Objektvergleich vermeiden oder zumindest beträchtlich verringern, in Bezug auf Objektvergleiche, bei denen lediglich eine einzelne Eigenschaft zwischen Objekten verglichen wird, ungeachtet der Tatsache, dass beabsichtigt wurde, dass die einzelne Eigenschaft ihre zugehörige Entität (z. B. Person oder Sache) eindeutig identifiziert. Therefore, an inclusion of a certain degree should of information redundancy avoid erroneous matches with an object comparison or at least considerably reduce, with respect to object comparisons, where only a single property between objects is compared, regardless of the fact that it was intended that single property its associated entity (eg. as someone or something) clearly identified.
  • Beispielhafte Ausführungsformen werden nachfolgend beschrieben, die das zuvor erläuterte erste Problem lösen, dh ein effizientes Vergleichen eines speziellen Objekts (nachfolgend als „Zielobjekt” bezeichnet) mit allen Objekten in einem Korpus. Exemplary embodiments will now be described, which solve the above-explained first problem, that is an efficient comparing a specific object (hereinafter referred to as "target object") having all the objects in a corpus. Die offenbarten Ausführungsformen verwenden einen Bloomfilter, um Slugs zu identifizieren, die mit Objekten im Korpus assoziiert sind, die nicht mit dem Slug für das Zielobjekt übereinstimmen. The disclosed embodiments use a bloom filter to identify Slugs that are associated with objects in the body, which do not coincide with the Slug for the target object. Diese Schnellerkennung wird dadurch durchgeführt, dass Slugs verworfen werden, die mit einer Position im Bloomfilter assoziiert werden, welche von der Position verschieden ist, die mit dem Slug für das Zielobjekt assoziiert ist. This rapid detection is performed by that Slugs are discarded, which are associated with a position in the Bloom filter, which is different from the position that is associated with the Slug for the target object.
  • Bloomfilter haben die Eigenschaft, dass zwei Slugs, die in unterschiedliche Positionen im Bloomfilter fallen, mit Gewissheit unterschiedliche Eigenschaften haben und somit unterschiedliche Objekte widerspiegeln. Bloom filters have the property that two slugs that fall into different positions in the Bloom filter with certainty have different properties and thus reflect different objects. Daher stimmt, wenn der Slug für das Zielobjekt nicht in die gleiche Position wie der Slug für ein spezielles Objekt im Korpus fällt, das Zielobjekt nicht mit dem speziellen Objekt im Korpus überein und kann somit bei derartigen Ausführungsformen von einer zukünftigen Berücksichtigung ausgeschlossen werden. Therefore, true if the Slug for the target object does not fall in the same position as the Slug for a particular object in the body, the target object does not match the specific object in the body and can be eliminated thus in such embodiments of a future consideration.
  • 1 1 zeigt ein Ablaufdiagramm eines beispielhaften Prozesses shows a flowchart of an exemplary process 100 100 zum Vergleichen eines Zielobjekts mit zumindest einigen Objekten in einem Korpus, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. for comparing a target object with at least some of objects in a body, according to some embodiments of the present disclosure. Bei einigen Ausführungsformen ist das Zielobjekt, das mit zumindest einigen Objekten im Korpus verglichen werden soll, Teil des Korpus. In some embodiments, the target object which is to be compared with at least some objects in the body, part of the corpus. Bei diesen Ausführungsformen wird ein Vergleich zwischen dem Zielobjekt und allen anderen Objekten in dem Korpus durchgeführt. In these embodiments, a comparison between the target object and all other objects is carried out in the corpus. Bei weiteren Ausführungsformen ist das Objekt, das mit zumindest einigen Objekten im Korpus verglichen werden soll, nicht Teil des Korpus. In further embodiments, the object which is to be compared with at least some objects in the body, not part of the corpus. Bei diesen weiteren Ausführungsformen wird ein Vergleich zwischen dem Zielobjekt und allen Objekten in dem Korpus durchgeführt. In these further embodiments, a comparison between the target object and all the objects is performed in the corpus.
  • Wie dargestellt, wird bei Schritt As shown, at step 102 102 die Größe eines Bloomfilters festgelegt und dieser unter Berücksichtigung der Fehlerrate erstellt, welche sich für die zu bearbeitende Korpusgröße ergibt. set the size of a Bloom filter, and this created in consideration of the error rate, which is obtained for the body to be machined size. Beispielsweise kann ein Vergrößern der Anzahl von Positionen in einem Bloomfilter darauf abzielen, die Fehlerrate für eine spezifische Korpusgröße zu verringern, hingegen kann ein Verringern der Anzahl von Positionen in einem Bloomfilter darauf abzielen, die Fehlerrate für eine spezifische Korpusgröße zu vergrößern. For example, a zoom in aiming the number of positions in a bloom filter to reduce the error rate for a particular body size, on the other hand, a decrease in the number of positions in a Bloom filter designed to increase the error rate for a particular body size. Methoden zur Größenbestimmung eines Bloomfilters, um eine Sollfehlerrate für eine spezifische Korpusgröße zu erzielen, sind in der Technik allgemein bekannt, und daher werden diese Methoden hier nicht erörtert. Methods for determining the size of a Bloom filter to achieve a target error rate for a specific body size, are well known in the art, and therefore, these methods are not discussed here.
  • Bei Schritt In step 104 104 wird ein Slug für das Zielobjekt (dh das Objekt, gegen das alle Objekte im Korpus verglichen werden) erzeugt. Slug for the target object (ie, the object to be compared against all the objects in the body) generated. Überlegungen, welche Eigenschaften für ein Objekt in einen Slug einzuschließen sind, wurden zuvor erörtert. Considerations which properties are to be included on an object in a Slug were previously discussed. Bei Schritt In step 106 106 wird eine Bloomfilter-Position bestimmt, die dem Slug für das Zielobjekt entspricht. a bloom filter position is determined corresponding to the Slug for the target object. Bei einigen Ausführungsformen kann eine Bloomfilter-Position für einen Slug dadurch bestimmt werden, dass der Slug in einen Bloomfilter eingegeben wird und der Bloomfilter angewiesen wird, die Position zu offenbaren, in welcher der Slug hinzugefügt wurde. In some embodiments, a Bloom filter position for a Slug can be determined that the slug is inputted to a bloom filter, and the bloom filter is instructed to disclose the position in which the slug has been added.
  • Bei weiteren Ausführungsformen kann eine Bloomfilter-Position für einen Slug dadurch bestimmt werden, dass der Slug als eine Eingabe für eine Softwarefunktion präsentiert wird, die mit dem Bloomfilter assoziiert ist, ohne den Slug im Bloomfilter zu speichern. In further embodiments, a Bloom filter position for a Slug can be determined in that the slug is presented as an input to a software function that is associated with the Bloom filter, without storing the Slug in the Bloom filter. Bei weiteren Ausführungsformen kann eine Position für einen Slug dadurch bestimmt werden, dass der Slug in eine Softwarefunktion eingegeben wird, die einen Positionsauswahlalgorithmus für einen Bloomfilter widerspiegelt, bei Abwesenheit einer Verwendung eines tatsächlichen und/oder vollständigen Bloomfilters, und die Bloomfilter-Position als Ausgabewert dieser Softwarefunktion erhalten wird. In further embodiments, a position of a slug can be determined that the slug is input to a software function that reflects a position selection algorithm for a bloom filter, in the absence of using an actual and / or complete Bloom filter, and the Bloom filter position as the output value of this software function is obtained. Bei weiteren Ausführungsformen können andere Lösungsansätze verwendet werden, um von einem Slug eine Bloomfilter-Position zu liefern. In other embodiments other approaches may be used to deliver a bloom filter position of a Slug. Auf diese Lösungsansätze zum Identifizieren eines Bloomfilters für einen Slug, gemäß den zuvor erläuterten Ausführungsformen, wird insgesamt in Schritten In these approaches for identifying a Bloom filter for a slug, in accordance with the previously explained embodiments, it is generally in steps 106 106 , . 108 108 Bezug genommen. Reference is made. Die bestimmte Bloomfilter-Position wird verwendet, um Übereinstimmungen des Slug-Vergleichs zu identifizieren, von denen einige „falsch-positiv” sein können, wobei der nachstehend erläuterte Bloomfilter verwendet wird. The particular bloom filter position is used to identify matches of the Slug comparison, some of which may be "false-positive", said explained below Bloom filter is used.
  • Bei Schritt In step 108 108 wird ein Slug für jedes Objekt im Korpus erzeugt. Slug for each object is generated in the corpus. Bei Schritt In step 110 110 wird eine Bloomfilter-Position für jedes Objekt im Korpus bestimmt. a bloom filter position for each object is determined in the corpus. Bei einigen Ausführungsformen kann eine Bloomfilter-Position für ein Objekt dadurch bestimmt werden, dass der Slug des Objekts in den Bloomfilter eingegeben wird und der Bloomfilter angewiesen wird, die Position zu offenbaren, zu welcher der Slug hinzugefügt wurde. In some embodiments, a Bloom filter position for an object can be determined in that the slug of the object is input to the bloom filter and the bloom filter is instructed to reveal the position at which the slug has been added.
  • Nach Abschluss von Schritt Upon completion of step 110 110 spiegeln Slugs, die der bei Schritt Slugs reflect that the at step 108 108 identifizierten Position entsprechen, Übereinstimmungen mit dem Slug für das Zielobjekt wider. identified position corresponding to matches with the resist Slug for the target object. Einige dieser Übereinstimmungen können jedoch falsch-positive Übereinstimmungen sein, anstelle von echten Übereinstimmungen. Some of these matches can be false-positive matches, instead of real matches. Daher filtern Schritte Therefore filter steps 112 112 und and 114 114 diese falsch-positiven Übereinstimmungen mittels Verwendung einer Multimap aus. these false positive matches from by use of a Multimap.
  • In Schritt in step 112 112 wird, für jeden Slug, der einem Objekt im Korpus zugehörig ist und dessen Position im Bloomfilter die gleiche Position wie die des Slug für das Zielobjekt ist, der einem Objekt im Korpus zugehörige Slug und sein zugehöriges Objekt im Korpus einer Multimap hinzugefügt. is, for each Slug, which is associated with an object in the body and its position in the Bloom filter is the same position as that of the slug for the target object, which added to an object in the body associated Slug and its associated object in the body of a Multimap. Beim Hinzufügen des Slug und dessen zugehörigen Objekts zur Multimap repräsentiert der Slug den Schlüssel zu der Multimap, und das Objekt im Korpus repräsentiert den Wert zu der Multimap. When adding the Slug and its associated object to Multimap the Slug represents the key to the Multimap and the object in the body represents the value to the Multimap. Diese Multimap wird verwendet, um falsch-positive Ergebnisse aus der Verarbeitung zu entfernen. This Multimap is used to remove false-positive results from the treatment. In Schritt in step 114 114 wird das Verfahren durch Auswählen der echt-positiven Übereinstimmungen, die in der Multimap identifiziert sind, abgeschlossen. the process is completed by selecting the real-positive matches that are identified in the Multimap. Diese nicht-falsch-positiven Übereinstimmungen können aus der Multimap abgerufen werden, dadurch dass, mit dem Slug für das Zielobjekt als Schlüssel, Daten aus der Multimap ausgelesen werden. These non-false positive matches may be retrieved from the Multimap, characterized that can be read with the Slug for the target object as a key, data from the Multimap.
  • Bei einigen Ausführungsformen kann der Prozess In some embodiments, the process can 100 100 über mehrere Prozessoren verteilt werden. be distributed over multiple processors. Beispielsweise kann ein Bloomfilter auf jedem von mehreren Prozessoren vorhanden sein, und Schritte For example, a Bloom filter on each of multiple processors may be present, and steps 102 102 bis to 114 114 können auf jedem der mehreren Prozessoren ausgeführt werden. can be run on each of the plurality of processors. Der Korpus von Objekten kann unter den verschiedenen Prozessoren so verteilt werden, dass alle Objekte durch einen Prozessor verarbeitet werden, jedoch kein Objekt durch mehr als einen Prozessor verarbeitet wird. The corpus of objects can be distributed among the various processors so that all objects are processed by a processor, but no object is processed by more than one processor. Bei derartigen Ausführungsformen führt jeder der mehreren Prozessoren ein Ausgeben eines Teils der mit dem Zielobjekt übereinstimmenden Objekte im Korpus durch. In such embodiments, each of the plural processors performs outputting of part of the matching with the target object by objects in the body.
  • Beispielhafte Ausführungsformen werden nachfolgend beschrieben, die das zuvor erläuterte zweite Problem lösen, dh ein effizientes Vergleichen aller Objekte mit allen Objekten in einem Korpus. Exemplary embodiments are described below, which solve the above-explained second problem, ie an efficient Compare all objects all objects in a corpus. Diese Ausführungsformen verwenden einen zählenden Bloomfilter, um ein schnelles Identifizieren von Slugs vorzunehmen, die mit Objekten im Korpus, welche nicht mit dem Slug für das Zielobjekt übereinstimmen, assoziiert sind. These embodiments use a counting Bloom filter to make a quick identification of Slugs that are associated with objects in the body, which do not match the Slug for the target object. Zählende Bloomfilter sind in der Technik allgemein bekannt, und daher wird ihre Struktur und ihr Aufbau hier nicht erörtert. Counting bloom filter are well known in the art, and therefore its structure and its construction will not be discussed.
  • Speziell könnte, falls eine Position im zählenden Bloomfilter einen Wert von Null oder Eins hat, nachdem Slugs für alle Objekte in dem Korpus in den Bloomfilter eingegeben wurden, kein Objekt, dessen Slug mit dieser Position assoziiert ist, mit einem anderen Slug übereinstimmen, und daher werden diese Slugs von weiterer Berücksichtigung ausgeschlossen. Specifically, could, if a position in the counting bloom filter has a value of zero or one after Slugs has been entered for all the objects in the body in the Bloom filter, no object whose Slug is associated with this position, coincide with another Slug, and therefore this Slugs be excluded from further consideration. Diese Slugs können ausgeschlossen werden, da für Fachleute klar ist, dass Bloomfilter falsch-positive Ergebnisse haben können, sie jedoch keine falsch-negativen Ergebnisse haben können. These slugs can be excluded, as is appreciated by those that bloom filter can have false-positive results, but they can not have false-negative results. Daher spiegelt ein zählender Bloomfilter, dessen Zählwert geringer als Zwei ist, eine genaue Bestimmung wider, dass keine Übereinstimmung zwischen Slugs vorhanden ist, die mit dieser Position assoziiert sind, da jegliche Übereinstimmung einen Zählwert von mindestens Zwei erzeugen würde. Therefore reflects a counting Bloom filter whose count value is less than two, an accurate determination of resist that is no match between Slugs is present, which are associated with this position, since any compliance would generate a count of at least two. Jedoch können falsch-positive Ergebnisse unter Objekten vorkommen, deren Slugs mit der gleichen Bloomfilter-Position assoziiert sind, und daher können falsch-positive Ergebnisse mittels einer zusätzlichen Verarbeitung entfernt werden, wie später noch erläutert wird. However, false positive results can occur with objects whose Slugs are associated with the same Bloom filter position, and therefore, false positive results may be removed by an additional processing, as will be explained later.
  • 2 2 zeigt ein Ablaufdiagramm eines beispielhaften Prozesses shows a flowchart of an exemplary process 200 200 zum Vergleichen aller Objekte in einem Korpus mit allen anderen Objekten in dem Korpus, um Übereinstimmungen innerhalb des Korpus zu bestimmen, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. for comparing all objects in a corpus with all the other objects in the body to determine matching items within the corpus, according to some embodiments of the present disclosure. Wie dargestellt, wird in Schritt As shown, in step 202 202 die Größe eines zählenden Bloomfilters festgelegt und dieser unter Berücksichtigung der Fehlerrate erstellt, die für die zu verarbeitende Korpusgröße resultiert. set the size of a counting Bloom filter, and this established taking into account the error rate that results for the carcass to be processed size. Beispielsweise kann ein Vergrößern der Anzahl von Positionen in einem zählenden Bloomfilter darauf abzielen, die Fehlerrate für eine spezifische Korpusgröße zu verringern, hingegen kann ein Verringern der Anzahl von Positionen in einem zählenden Bloomfilter darauf abzielen, die Fehlerrate für eine spezifische Korpusgröße zu vergrößern. For example, a zoom in aiming the number of positions in a counting Bloom filter to reduce the error rate for a particular body size, on the other hand, a decrease in the number of positions in a counting Bloom filter designed to increase the error rate for a particular body size. Methoden zur Größenbestimmung eines zählenden Bloomfilters, um eine Sollfehlerrate für eine spezifische Korpusgröße zu erzielen, sind in der Technik allgemein bekannt, und daher werden diese Methoden hier nicht erörtert. Methods for determining the size of a counting Bloom filter to achieve a target error rate for a specific body size, are well known in the art, and therefore, these methods are not discussed here.
  • Bei einigen Ausführungsformen kann der zählende Bloomfilter einen N-Bit-Zähler aufweisen, und diese Zähler können als Zwei-Bit-Zähler implementiert sein (dh N = 2). In some embodiments, the counting bloom filter may comprise an N-bit counters, and these counters may be implemented as a two-bit counter (ie, N = 2). Bei weiteren Ausführungsformen können diese Zähler Ein-Bit-Zähler oder Zähler aus mehr als zwei Bit sein. In further embodiments, these counters one-bit counter or counter of more than two bits can be. Bei noch weiteren Ausführungsformen können diese Zähler Sättigungszähler sein; In still other embodiments, these counters can be saturating counter; dh diese Zähler zählen bis zu einem Maximalwert hoch und überschreiten diesen Wert dann nicht. that is, these counters count up to a maximum value high and then not exceed this value.
  • In Schritt in step 204 204 wird ein Slug für jedes Objekt im Korpus erzeugt. Slug for each object is generated in the corpus. In Schritt in step 206 206 wird jeder Slug in den zählenden Bloomfilter eingegeben, was bewirkt, dass ein Zähler in einer einem Slug entsprechenden Position hochgezählt wird. each Slug is input to the counting Bloom filter, which causes a counter is incremented in a Slug a corresponding position. Nach Abschluss von Schritt Upon completion of step 206 206 spiegeln Positionen, deren Zähler einen Wert größer als Eins aufweisen, einen oder mehrere übereinstimmende Slugs wider. Mirror positions whose counters have a value greater than one, one or more matching Slugs resist. Einige dieser Übereinstimmungen können jedoch falsch-positive Übereinstimmungen, anstelle von echten Übereinstimmungen sein. but may false positive matches, some of these matches instead be of real matches. Daher filtern Schritte Therefore filter steps 208 208 und and 210 210 die falsch-positiven Übereinstimmungen unter Verwendung einer Multimap aus. the false positive matches from using Multimap.
  • In Schritt in step 208 208 werden, für Slugs, die mit Positionen im zählenden Bloomfilter assoziiert sind, deren Zähler einen Wert größer als Eins aufweisen, der Slug und sein zugehöriges Objekt einer Multimap hinzugefügt. are, for Slugs that are associated with positions in the counting bloom filter whose counters have a value greater than one, added to the Slug and its associated object of a Multimap. Beim Hinzufügen des Slug und seines zugehörigen Objekts zur Multimap repräsentiert der Slug den Schlüssel zu der Multimap, und das Objekt im Korpus repräsentiert den Wert zu der Multimap. When adding the Slug and its associated object to Multimap the Slug represents the key to the Multimap and the object in the body represents the value to the Multimap. Diese Multimap wird verwendet, um falsch-positive Ergebnisse aus der Verarbeitung zu entfernen. This Multimap is used to remove false-positive results from the treatment. In Schritt in step 210 210 wird der Prozess is the process 200 200 abgeschlossen, durch Ausgeben eines Wertes für jeglichen Schlüssel in der Multimap, der zwei oder mehr Werte aufweist. completed, by outputting a value for any key in the Multimap having two or more values. Die ausgegebenen Werte spiegeln Objekte wider, deren Slugs mit Slugs von mindestens einem anderen Objekt im Korpus übereinstimmten. The output values ​​reflect objects that matched the slugs Slugs with at least one other object in the body. Somit identifizieren die ausgegebenen Objekte solche Objekte, bei denen ausgewählte Eigenschaften, wie in einem Slug eines Objekts widergespiegelt, in eindeutiger Weise mit mindestens einem weiteren Objekt im Korpus übereinstimmen. Thus, the displayed objects identify such objects in which selected properties, as reflected in a slug of an object uniquely correspond to at least one other object in the body.
  • Bei einigen Ausführungsformen kann der Prozess In some embodiments, the process can 200 200 über mehrere Prozessoren verteilt werden. be distributed over multiple processors. Beispielsweise kann ein zählender Bloomfilter auf jedem von mehreren Prozessoren vorhanden sein, und Schritte For example, a counting Bloom filter on each of multiple processors may be present, and steps 202 202 , . 204 204 und and 206 206 können auf jedem der mehreren Prozessoren ausgeführt werden. can be run on each of the plurality of processors. Der Korpus von Objekten kann unter den verschiedenen Prozessoren so verteilt werden, dass alle Objekte durch einen Prozessor verarbeitet werden, jedoch kein Objekt durch mehr als einen Prozessor verarbeitet wird. The corpus of objects can be distributed among the various processors so that all objects are processed by a processor, but no object is processed by more than one processor. Bei derartigen Ausführungsformen erfolgt, vor einem Ausführen von Schritt In such embodiments, is carried out prior to carrying out of step 208 208 , ein Aufsummieren von Zählern für jede Position im zählenden Bloomfilter mit Zählern für die gleiche Position in zählenden Bloomfiltern auf anderen Prozessoren. , A summing up of counters for each position in the counting bloom filter with counters for the same position in counting Bloom filter on other processors. Danach fährt der Prozess Thereafter, the process continues 200 200 mit einem Ausführen von Schritten with a carrying out steps 208 208 und and 210 210 auf einem einzelnen Prozessor fort. on a single processor continues.
  • Beispielhafte Ausführungsformen werden nachfolgend beschrieben, die das zuvor erläuterte dritte Problem lösen, dh ein effizientes Identifizieren von unikalen Objekten in einem Korpus. Exemplary embodiments will now be described, which solve the above-explained third problem, that is an efficient unikalen identifying objects in a corpus. Diese Ausführungsformen verwenden einen zählenden Bloomfilter und eine Multimap, um ein rasches Identifizieren von unikalen Objekten durchzuführen. These embodiments use a counting Bloom filter and a Multimap to perform a rapid unikalen identifying objects. Wenn Slugs für alle Objekte im Korpus in den zählenden Bloomfilter eingegeben werden, spiegelt jede Position mit einem Zählwert von Eins ein unikales Objekt wider, da Bloomfilter keine falsch-negativen Ergebnisse erzeugen. If slugs are entered for all objects in the body in the counting bloom filter, each position reflects a count of one resist includes a unique object because Bloom filters do not generate false-negative results. Zusätzlich könnten, in dem Maße, dass Positionen Zählwerte von Zwei oder mehr aufweisen, diese Zählwerte falsch-positive Ergebnisse widerspiegeln. In addition, could the extent that positions counts of two or more, reflect that counts false-positive results. Daher ermöglicht eine Multimap eine Bestimmung, ob die Übereinstimmungen, die in den Zählwerten widergespiegelt sind, falsch- oder echt-positiv sind. Therefore, a Multimap allows a determination of whether the matches that are reflected in the counts false, or are really positive.
  • 3 3 zeigt ein Ablaufdiagramm eines beispielhaften Prozesses shows a flowchart of an exemplary process 300 300 zum Vergleichen aller Objekte in einem Korpus mit allen anderen Objekten in dem Korpus, um unikale Objekte innerhalb des Korpus zu bestimmen, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. for comparing all objects in a corpus with all the other objects in the body to determine Unique objects within the body, according to some embodiments of the present disclosure. Wie dargestellt, wird in Schritt As shown, in step 302 302 die Größe eines zählenden Bloomfilters festgelegt und dieser unter Berücksichtigung der Fehlerrate erstellt, die für die zu verarbeitende Korpusgröße resultiert. set the size of a counting Bloom filter, and this established taking into account the error rate that results for the carcass to be processed size. Beispielsweise kann ein Vergrößern der Anzahl von Positionen in einem zählenden Bloomfilter darauf abzielen, die Fehlerrate für eine spezifische Korpusgröße zu verringern, hingegen kann ein Verringern der Anzahl von Positionen in einem zählenden Bloomfilter darauf abzielen, die Fehlerrate für eine spezifische Korpusgröße zu vergrößern. For example, a zoom in aiming the number of positions in a counting Bloom filter to reduce the error rate for a particular body size, on the other hand, a decrease in the number of positions in a counting Bloom filter designed to increase the error rate for a particular body size. Methoden zur Größenbestimmung eines zählenden Bloomfilters, um eine Sollfehlerrate für eine spezifische Korpusgröße zu erzielen, sind in der Technik allgemein bekannt, und daher werden diese Methoden hier nicht erörtert. Methods for determining the size of a counting Bloom filter to achieve a target error rate for a specific body size, are well known in the art, and therefore, these methods are not discussed here.
  • Bei einigen Ausführungsformen kann der zählende Bloomfilter einen N-Bit-Zähler aufweisen und diese Zähler können als Zwei-Bit-Zähler implementiert sein (dh N = 2). In some embodiments, the counting bloom filter may comprise an N-bit counter and this counter can be implemented as a two-bit counter (ie, N = 2). Bei weiteren Ausführungsformen können diese Zähler Ein-Bit-Zähler oder Zähler aus mehr als zwei Bit sein. In further embodiments, these counters one-bit counter or counter of more than two bits can be. Bei noch weiteren Ausführungsformen können diese Zähler Sättigungszähler sein; In still other embodiments, these counters can be saturating counter; dh diese Zähler zählen bis zu einem Maximalwert hoch und überschreiten diesen Wert dann nicht. that is, these counters count up to a maximum value high and then not exceed this value.
  • In Schritt in step 304 304 wird ein Slug für jedes Objekt im Korpus erzeugt. Slug for each object is generated in the corpus. In Schritt in step 306 306 wird jeder Slug in den zählenden Bloomfilter eingegeben, was bewirkt, dass ein Zähler in einer einem Slug entsprechenden Position hochgezählt wird. each Slug is input to the counting Bloom filter, which causes a counter is incremented in a Slug a corresponding position. Wie zuvor erläutert, wird, nachdem Slugs für alle Objekte im Korpus in den zählenden Bloomfilter eingegeben wurden, durch jegliche Position mit einem Zählwert von Eins ein unikales Objekt im Korpus widergespiegelt, da der zählende Bloomfilter keine falsch-negativen Ergebnisse erzeugt. As previously discussed, is after Slugs were entered for all objects in the body in the counting bloom filter, reflected in any position with a count of one includes a unique object in the body, since the counting bloom filter generated no false-negative results. Daher wird in Schritt Therefore, in step 308 308 für jeden Slug, dessen Zählwert im zählenden Bloomfilter Eins ist, das dem Slug zugehörige Objekt als unikales Objekt im Korpus ausgegeben. for each Slug whose count value is one in the counting bloom filter, output the corresponding object as the Slug unikales object in the body.
  • Nach Abschluss von Schritt Upon completion of step 308 308 spiegeln Positionen, deren Zählwerte einen Wert größer als Eins aufweisen, einen oder mehrere übereinstimmende Slugs wider; Mirror positions whose counter values ​​have a value greater than one, one or more matching Slugs resist; dh Slugs, die nicht unikal sind. ie Slugs that are not unique. Einige dieser Übereinstimmungen können jedoch falsch-positive Übereinstimmungen anstelle von echten Übereinstimmungen sein, aufgrund der Beschaffenheit von Bloomfiltern, wie zuvor erläutert wurde. Some of these matches can be false-positive matches instead of real matches, due to the nature of Bloom filters, as previously discussed. Daher werden in Schritten Therefore, in steps 310 310 und and 312 312 die falsch-positiven Übereinstimmungen unter Verwendung einer Multimap ausgefiltert. the false positive matches are filtered using a Multimap.
  • In Schritten in steps 310 310 und and 312 312 wird bestimmt, ob der zählende Bloomfilter das Vorhandensein von weiteren unikalen Objekten maskiert, da der Bloomfilter falsch-positive Ergebnisse zulässt. it is determined if the counting bloom filter masks the presence of other unikalen objects because the bloom filter allows false-positive results. In Schritt in step 310 310 wird, für jeden Slug, dessen assoziierte Position einen Zählwert größer als Eins aufweist, der Slug als Schlüssel zu einer Multimap eingegeben, und das dem Slug zugehörige Objekt wird als Wert zu diesem Schlüssel eingegeben. is, for each Slug, its associated position having a count greater than one, input of the slug as the key to Multimap and the associated the object Slug is inputted as a value to this key. In Schritt in step 312 312 endet der Prozess, nachdem jeweils der Wert in der Multimap für Schlüssel ausgegeben wird, die lediglich einen einzigen Wert haben. the process after each of the value in the Multimap is issued for keys that only have a single value ends. Unikale Objekte im Korpus werden durch die Sammlung von Objekten, die von Schritt Unique properties in the body are through the collection of objects of step 308 308 ausgegeben werden, und die Sammlung von Objekten, die durch Schritt are output, and the collection of objects by step 312 312 ausgegeben werden, reflektiert, da Ersterer Objekte widerspiegelt, deren Slugs der alleinige Slug in einer Position im zählenden Bloomfilter waren, und die daher unikal unter Slugs waren, die mit Objekten im Korpus assoziiert sind, wohingegen Letzterer Slugs widerspiegelt, die falsch-positive Ergebnisse im zählenden Bloomfilter waren, für die jedoch mittels der Multimap Eindeutigkeit hergestellt wurde. are output, reflected, since the former reflects objects whose Slugs were the sole Slug in a position in the counting Bloom filter, and therefore were unikal under Slugs that are associated with objects in the body, whereas the latter Slugs reflects the false-positive results in the counting bloom filter were, however, for the clarity was prepared by the Multimap.
  • Bei einigen Ausführungsformen kann der Prozess In some embodiments, the process can 300 300 über mehrere Prozessoren verteilt werden. be distributed over multiple processors. Beispielsweise kann ein zählender Bloomfilter auf jedem von mehreren Prozessoren vorhanden sein, und Schritte For example, a counting Bloom filter on each of multiple processors may be present, and steps 302 302 , . 304 304 und and 306 306 können auf jedem der mehreren Prozessoren ausgeführt werden. can be run on each of the plurality of processors. Der Korpus von Objekten kann unter den verschiedenen Prozessoren so verteilt werden, dass alle Objekte durch einen Prozessor verarbeitet werden, jedoch kein Objekt durch mehr als einen Prozessor verarbeitet wird. The corpus of objects can be distributed among the various processors so that all objects are processed by a processor, but no object is processed by more than one processor. Bei derartigen Ausführungsformen erfolgt, vor einem Ausführen von Schritt In such embodiments, is carried out prior to carrying out of step 308 308 , ein Aufsummieren von Zählern für jede Position im zählenden Bloomfilter mit Zählern für die gleiche Position in zählenden Bloomfiltern auf anderen Prozessoren. , A summing up of counters for each position in the counting bloom filter with counters for the same position in counting Bloom filter on other processors. Danach fährt der Prozess Thereafter, the process continues 300 300 mit einem Ausführen von Schritten with a carrying out steps 308 308 , . 310 310 und and 312 312 auf einem einzelnen Prozessor fort. on a single processor continues.
  • 4 4 zeigt eine beispielhafte Rechnerumgebung, in der die Ausführungsformen der vorliegenden Offenbarung implementiert werden können. shows an exemplary computing environment in which the embodiments of the present disclosure can be implemented.
  • Computersystem computer system 400 400 beinhaltet einen Bus includes a bus 402 402 oder einen anderen Kommunikationsmechanismus für ein Weiterleiten von Information, und einen Hardware-Prozessor or other communication mechanism for forwarding information, and a hardware processor 404 404 , der mit dem Bus Coupled to the bus 402 402 zum Verarbeiten von Information verbunden ist. is connected for processing information. Bei einigen Ausführungsformen kann der Hardwareprozessor In some embodiments, the hardware processor 404 404 beispielsweise ein Universal-Mikroprozessor sein, oder es kann ein Mikroprozessor mit reduziertem Befehlssatz sein. for example, a general-purpose microprocessor, or it may be a microprocessor reduced instruction set.
  • Das Computersystem The computer system 400 400 beinhaltet auch einen Hauptspeicher also includes a main memory 406 406 , beispielsweise ein RAM (Direktzugriffsspeicher) oder eine andere dynamische Speichervorrichtung, die mit dem Bus , For example, a RAM (Random Access Memory) or other dynamic storage device, coupled to the bus 402 402 verbunden ist, um Information und Anweisungen zu speichern, die durch den Prozessor is connected to store information and instructions by the processor 404 404 auszuführen sind. are to be executed. Der Hauptspeicher The main memory 406 406 kann auch verwendet werden, um temporäre Variablen oder andere Zwischeninformationen zu speichern, während eines Ausführens von Anweisungen durch den Prozessor can also be used to store temporary variables or other intermediate information during execution of instructions by the processor 404 404 . , Derartige Anweisungen machen, wenn sie in nicht-transitorischen Speichermedien gespeichert werden, die dem Prozessor make such statements when they are stored in non-transitory storage media that the processor 404 404 zugänglich sind, das Computersystem are available, the computer system 400 400 zu einer Spezialmaschine, die kundenspezifisch angepasst ist, um die in den Anweisungen festgelegten Operationen auszuführen. to a special machine that is customized to perform the operations specified in the instructions.
  • Bei einigen Ausführungsformen beinhaltet das Computersystem In some embodiments, the computer system includes 400 400 weiter ein ROM (Nur-Lese-Speicher) on a ROM (read only memory) 408 408 oder eine andere statische Speichervorrichtung, die mit dem Bus or other static storage device coupled to bus 402 402 verbunden ist, um statische Information und Anweisungen für den Prozessor is connected to static information and instructions for processor 404 404 zu speichern. save. Eine Speichervorrichtung A storage device 410 410 , wie beispielsweise eine Magnetplatte oder eine optische Platte, ist vorgesehen und mit dem Bus Such as a magnetic disk or optical disk, is provided and the bus 402 402 verbunden, um Information und Anweisungen zu speichern. connected to store information and instructions.
  • Das Computersystem The computer system 400 400 kann über den Bus can via the bus 402 402 mit einer Anzeige with a display 412 412 verbunden sein, beispielsweise einer Kathodenstrahlröhre (CRT) oder einem LCD-Bildschirm, um einem Benutzer eines Computers Information anzuzeigen. be connected, such as a cathode ray tube (CRT) or an LCD screen to indicate to a user of a computer information. Eine Eingabevorrichtung An input device 414 414 , die alphanumerische und weitere Tasten beinhaltet, ist mit dem Bus That includes alphanumeric and other keys, is by bus 402 402 verbunden, um Information und ausgewählte Befehle an den Prozessor connected to information and command selections to processor 404 404 zu übermitteln. to convey. Ein weiterer Typ von Benutzereingabevorrichtung ist eine Cursor-Steuerung Another type of user input device is cursor control 416 416 , wie beispielsweise eine Maus, ein Trackball oder Cursor-Richtungstasten, um dem Prozessor Such as a mouse, a trackball, or cursor direction keys to the processor 404 404 Richtungsinformation und ausgewählte Befehle mitzuteilen und eine Cursorbewegung auf der Anzeigeeinrichtung communicate direction information and command selections, and a cursor movement on the display device 412 412 zu steuern. to control. Diese Eingabevorrichtung hat typischerweise zwei Freiheitsgrade in zwei Achsen, einer ersten Achse (beispielsweise x) und einer zweiten Achse (beispielsweise y), was der Vorrichtung ermöglicht, Positionen in einer Ebene zu bezeichnen. This input device typically has to designate two degrees of freedom in two axes, a first axis (e.g., x) and a second axis (e.g., y), which allows the device positions in a plane.
  • Im Computersystem In the computer system 400 400 können die hier beschriebenen Prozesse und Verfahren unter Verwendung von kundenspezifischen festverdrahteten Logikschaltungen, einem oder mehreren ASICs oder FPGAs, Firmware und/oder Programmlogik implementiert sein, die in Kombination mit dem Computersystem bewirken oder programmieren, dass das Computersystem the processes and methods described herein may be implemented that cause in combination with the computer system or program using customized hard-wired logic circuits, one or more ASICs or FPGAs, firmware and / or program logic that the computer system 400 400 eine Spezialmaschine ist. is a special machine. Bei einigen Ausführungsbeispielen werden die hier beschriebenen Prozesse und Verfahren durch das Computersystem In some embodiments, the processes and methods described herein are by the computer system 400 400 reagierend darauf durchgeführt, dass der Prozessor responsive performed thereon, that the processor 404 404 eine oder mehrere Sequenzen von einer oder mehreren im Hauptspeicher one or more sequences of one or more in the main memory 406 406 enthaltenen Anweisungen ausführt. Executes instructions contained. Derartige Anweisungen können in den Hauptspeicher Such instructions may be used in the main memory 406 406 aus einem anderen Speichermedium, beispielsweise der Speichervorrichtung from another storage medium, such as the storage device 410 410 , eingelesen werden. are read. Eine Ausführung der im Hauptspeicher An embodiment of the main memory 406 406 enthaltenen Anweisungssequenzen veranlasst den Prozessor Sequences of instructions contained causes the processor 404 404 , die hier beschriebenen Prozessschritte auszuführen. To carry out the process steps described herein. Bei weiteren Ausführungsbeispielen können festverdrahtete Schaltkreise verwendet werden, anstelle von Software-Anweisungen oder in Kombination mit diesen. In further embodiments, hard-wired circuitry can be used instead of software instructions or in combination with them.
  • Der Begriff „Speichermedien”, wie hier verwendet, bezieht sich auf jegliche nicht-transitorische Medien, die Daten und/oder Anweisungen speichern, welche eine Maschine veranlassen, in spezifischer Weise zu arbeiten. The term "storage media" as used herein refers to any non-transitory media that store data and / or instructions that cause a machine to work in specific ways. Derartige Speichermedien können nicht-flüchtige Medien und/oder flüchtige Medien beinhalten. Such storage media may be non-volatile media and / or volatile media include. Nicht-flüchtige Medien schließen beispielsweise optische oder magnetische Platten ein, beispielsweise die Speichervorrichtung Non-volatile media include, for example, optical or magnetic disks, a, for example, the storage device 410 410 . , Flüchtige Medien schließen einen dynamischen Speicher wie beispielsweise den Hauptspeicher Volatile media include dynamic memory such as main memory 406 406 ein. on. Übliche Formen von Speichermedien beinhalten beispielsweise eine Diskette, eine flexible Platte, eine Festplatte, ein Halbleiterlaufwerk, ein Magnetband oder ein beliebiges anderes magnetisches Datenspeichermedium, eine CD-ROM, ein beliebiges anderes optisches Datenspeichermedium, ein beliebiges physisches Medium mit Lochmustern, ein RAM, ein PROM und ein EPROM, ein Flash-EPROM, ein NVRAM, und einen beliebigen anderen Speicherchip oder -kassette. Common forms of storage media include, for example a floppy disk, a flexible disk, a hard disk, a semiconductor disk drive, a magnetic tape or any other magnetic data storage medium, a CD-ROM, any other optical data storage medium, any physical medium with patterns of holes, a RAM, a PROM, and EPROM, flash EPROM, NVRAM, and any other memory chip or cartridge.
  • Speichermedien sind verschieden von Übertragungsmedien, können jedoch in Verbindung mit diesen verwendet werden. Storage media are different from transmission media, but can be used in conjunction with them. Übertragungsmedien nehmen an einer Übertragung von Information zwischen Speichermedien teil. Transmission media take part in a transfer of information between storage media. Beispielsweise beinhalten Übertragungsmedien Koaxialkabel, Kupferdraht und Lichtwellenleiter, einschließlich der Drähte, die der Bus For example, transmission media includes coaxial cables, copper wire and fiber optics, including the wires that the bus 402 402 beinhaltet. includes. Übertragungsmedien können auch die Form von Schall- oder Lichtwellen annehmen, beispielsweise solche, die bei Funk- und Infrarot-Datenkommunikationen erzeugt werden. Transmission media can also take the form of acoustic or light waves, such as those generated during radio and infrared data communications.
  • Verschiedene Formen von Medien können bei der Ausführung einer oder mehrerer Sequenzen von einer oder mehreren Anweisungen beteiligt sein, die durch den Prozessor Various forms of media may be involved of one or more instructions during the execution of one or more sequences executed by the processor 404 404 auszuführen sind. are to be executed. Beispielsweise können die Anweisungen anfänglich auf einer Magnetplatte oder einem Halbleiterlaufwerk (Solid-State-Drive) eines entfernt befindlichen Computers gespeichert sein. For example, the instructions initially on a magnetic disk or a semiconductor drive (Solid State Drive) of a remotely located computer can be stored. Der ferne Computer kann die Anweisungen in seinen dynamischen Speicher laden und die Anweisungen über eine Telefonleitung unter Verwendung eines Modem senden. The remote computer can load the instructions into its dynamic memory and send the instructions over a telephone line using a modem. Ein beim Computersystem One in computer system 400 400 befindliches Modem kann die Daten über die Telefonleitung empfangen und einen Infrarot-Sender verwenden, um die Daten in ein Infrarotsignal umzuwandeln. befindliches modem can receive the data on the telephone line and use an infrared transmitter to convert the data to an infrared signal. Ein Infrarot-Detektor kann die im Infrarot-Signal beförderten Daten empfangen, und geeignete Schaltungen können die Daten auf den Bus An infrared detector can receive the goods carried in the infrared data signal and appropriate circuitry can use the data on the bus 402 402 legen. lay. Der Bus The bus 402 402 befördert die Daten zum Hauptspeicher conveys the data to main memory 406 406 , aus dem der Prozessor From which the processor 404 404 die Anweisungen abruft und ausführt. retrieves and executes the instructions. Die vom Hauptspeicher The from main memory 406 406 empfangenen Anweisungen können optional in der Speichervorrichtung received instructions may optional in the storage device 410 410 gespeichert werden, entweder vor oder nach einem Ausführen durch den Prozessor be stored either before or after execution by the processor 404 404 . ,
  • Das Computersystem The computer system 400 400 beinhaltet auch eine Kommunikationsschnittstelle also includes a communication interface 418 418 , die mit dem Bus That the bus 402 402 verbunden ist. connected is. Die Kommunikationsschnittstelle The communication interface 418 418 stellt eine Zweiweg-Datenkommunikationsverbindung zu einem Netzwerk-Verbindungsglied provides a two-way data communication coupling to a network link 420 420 bereit, das mit einem lokalen Netzwerk provided that a local area network 422 422 verbunden ist. connected is. Beispielsweise kann eine Kommunikationsschnittstelle For example, a communication interface 418 418 eine ISDN-Karte (ISDN = Integrated Services Digital Network), ein Kabelmodem, ein Satellitenmodem oder ein Modem sein, um eine Datenkommunikationsverbindung zu einem entsprechenden Typ von Telefonleitung bereitzustellen. be an ISDN card (ISDN = Integrated Services Digital Network), a cable modem, a satellite modem or a modem to provide a data communication connection to a corresponding type of telephone line. Als weiteres Beispiel kann eine Kommunikationsschnittstelle As another example, a communication interface 418 418 eine LAN-Karte (LAN = Local Area Network) sein, um eine Datenkommunikationsverbindung zu einem kompatiblen LAN bereitzustellen. be a LAN card (LAN = Local Area Network) to provide a data communication connection to a compatible LAN. Es können auch Drahtlosverbindungen implementiert werden. It can also be implemented wireless connections. Bei einer beliebigen derartigen Implementierung sendet und empfängt eine Kommunikationsschnittstelle In any such implementation, transmits and receives a communication interface 418 418 elektrische, elektromagnetische oder optische Signale, die digitale Datenströme tragen, welche verschiedene Typen von Information repräsentieren. electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.
  • Das Netzwerk-Verbindungsglied The network link 420 420 stellt typischerweise eine Datenkommunikation zu anderen Datengeräten über eines oder mehrere Netzwerke bereit. typically provides data communication with other data devices via one or more networks. Beispielsweise kann das Netzwerk-Verbindungsglied For example, the network link 420 420 über ein lokales Netzwerk over a local network 422 422 eine Verbindung zu einem Host-Computer a connection to a host computer 424 424 oder zu Datenanlagen bereitstellen, die durch einen Internetdienstanbieter (ISP) provide or to data equipment operated by an Internet Service Provider (ISP) 426 426 betrieben werden. operate. Der ISP the ISP 426 426 stellt seinerseits Datenkommunikationsdienste über das weltweite Paketdaten-Kommunikationsnetz bereit, das jetzt üblicherweise als „Internet” in turn provides data communication services, which is now commonly referred to as "Internet" on the world wide packet data communication network 428 428 bezeichnet wird. referred to as. Sowohl das lokale Netz Both the local network 422 422 als auch das Internet and the Internet 428 428 verwenden elektrische, elektromagnetische oder optische Signale, die digitale Datenströme tragen können. use electrical, electromagnetic or optical signals that can carry digital data streams. Die über die verschiedenen Netzwerke laufenden Signale und die Signale, die über das Netzwerk-Verbindungsglied The current through the various networks signals and the signals on the network link 420 420 und über die Kommunikationsschnittstelle and the communication interface 418 418 laufen, welche die digitalen Daten zum Computersystem run, which carry the digital data to the computer system 400 400 hin und von diesem weg befördern, sind beispielhafte Formen von Übertragungsmedien. back and carry away from it, are exemplary forms of transmission media.
  • Das Computersystem The computer system 400 400 kann Nachrichten und Daten, einschließlich Programmcode, senden und empfangen, und zwar über das/die Netzwerk(e), das Netzwerk-Verbindungsglied can send messages and data, including program code, send and receive, via the / network (s), the network link 420 420 und die Kommunikationsschnittstelle and the communication interface 418 418 . , In dem Beispiel des Internet könnte ein Server In the example of the Internet could be a server 430 430 einen angeforderten Code für ein Anwendungsprogramm über das Internet a requested code for an application program through the Internet 428 428 , den ISP , ISP 426 426 , das lokale Netzwerk , The local network 422 422 und die Kommunikationsschnittstelle and the communication interface 418 418 senden. send. Der empfangene Code kann durch den Prozessor The received code may by processor 404 404 ausgeführt werden, und zwar unverändert wie empfangen, und/oder er kann in der Speichervorrichtung be carried out, namely as received unchanged, and / or it may in the storage device 410 410 oder einem anderen nicht-flüchtigen Speicher für eine spätere Ausführung gespeichert werden. or other non-volatile storage for later execution are stored.

Claims (16)

  1. Verfahren zum Assoziieren eines ersten Objekts mit einem oder mehreren Objekten innerhalb einer Mehrzahl von Objekten, wobei jedes Objekt eine erste Mehrzahl von Eigenschaften aufweist, jede Eigenschaft Daten aufweist, die ein Kennzeichen einer durch das Objekt repräsentierten Entität widerspiegeln, wobei die assoziierten Objekte übereinstimmende Daten in entsprechenden Eigenschaften für eine zweite Mehrzahl von Eigenschaften aufweisen, wobei das Verfahren die folgenden Operationen umfasst, die durch einen oder mehrere Prozessoren ausgeführt werden: Ausführen, für jedes Objekt innerhalb der Mehrzahl von Objekten und für das erste Objekt, des Folgenden: Erzeugen eines Slug für das Objekt, wobei der Slug die zweite Mehrzahl von Eigenschaften von dem Objekt aufweist; A method of associating a first object with one or more objects within a plurality of objects, each object having a first plurality of characteristics, each characteristic has data reflecting a characteristic of an entity represented by the object, wherein the associated objects matching data in have appropriate properties for a second plurality of characteristics, the method comprising the following operations performed by one or more processors are performed: performing, for each object within the plurality of objects and the first object of the following: generating a Slug for the object, wherein the slug comprises the second plurality of characteristics of the object; und Eingeben des Slug für das Objekt in einen Bloomfilter; and inputting the Slug for the object in a Bloom filter; und Erzeugen, für eine Position im Bloomfilter, die dem Slug für das erste Objekt entspricht, einer Assoziierung zwischen Objekten, deren Slugs der Position entsprechen, falls die Slugs für diese Objekte übereinstimmen. and generating, for a position in the Bloom filter corresponding to the Slug for the first object, an association between objects, the Slugs in accordance with the position if the Slugs for these objects coincide.
  2. Verfahren nach Anspruch 1, weiter umfassend: Festlegen der Größe des Bloomfilters, für eine vorbestimmte Fehlerrate und Anzahl von Objekten innerhalb der Mehrzahl von Objekten. The method of claim 1, further comprising: determining the size of the Bloom filter, for a predetermined error rate, and number of objects within said plurality of objects.
  3. Verfahren nach Anspruch 1 oder Anspruch 2, weiter umfassend: Auslesen der Mehrzahl von Objekten aus mindestens einer Datenbank. The method of claim 1 or claim 2, further comprising: reading the plurality of objects from at least one database.
  4. Verfahren nach einem der Ansprüche 1 bis 3, das weiter umfasst, dass das Bestimmen, ob die Slugs in der Position, die dem Slug für das erste Objekt entspricht, mit dem Slug für das erste Objekt übereinstimmen, die folgenden Operationen umfasst, die durch einen oder mehrere Prozessoren ausgeführt werden: Eingeben, für jeden Slug in der Position, die dem Slug für das erste Objekt entspricht, des jeweiligen Slug und dessen zugehörigen Objekts in eine Multimap, wobei der Slug für das jeweilige Objekt ein Schlüssel zu der Multimap ist und sein zugehöriges Objekt ein Wert zu der Multimap ist; A method according to any one of claims 1 to 3, further comprising that the determining if the Slugs match in the position corresponding to the Slug for the first object with the Slug for the first object, comprising the following operations performed by a or more processors are carried out: inputting, for each Slug in the position corresponding to the Slug for the first object, the respective slug and its associated object into a Multimap, wherein the Slug for the respective object is a key to the Multimap and be associated object is a value to the Multimap; und Assoziieren von Objekten in der Multimap, deren Schlüssel mit dem Slug für das erste Objekt übereinstimmt. and associating objects in the Multimap whose key matches the Slug for the first object.
  5. Verfahren zum Assoziieren von Objekten innerhalb einer oder mehreren Gruppen von Objekten innerhalb einer Mehrzahl von Objekten, wobei jedes Objekt eine erste Mehrzahl von Eigenschaften aufweist, jede Eigenschaft Daten aufweist, die ein Kennzeichen einer durch das Objekt repräsentierten Entität widerspiegeln, wobei die assoziierten Objekte innerhalb einer Gruppe von Objekten übereinstimmende Daten in entsprechenden Eigenschaften für eine zweite Mehrzahl von Eigenschaften aufweisen, wobei das Verfahren die folgenden Operationen umfasst, die durch einen oder mehrere Prozessoren ausgeführt werden: Ausführen, für jedes Objekt innerhalb der Mehrzahl von Objekten, des Folgenden: Erzeugen eines Slug für das Objekt, wobei der Slug die zweite Mehrzahl von Eigenschaften von dem Objekt aufweist; A method for associating objects within one or more groups of objects within a plurality of objects, each object having a first plurality of characteristics, each characteristic has data reflecting a characteristic of an entity represented by the object, wherein the associated objects within a have group of objects matching data in corresponding characteristics for a second plurality of characteristics, the method comprising the following operations, which are executed by one or more processors: performing, for each object within the plurality of objects, of the following: generating a Slug for the object, wherein the slug comprises the second plurality of characteristics of the object; und Eingeben des Slug für das Objekt in einen zählenden Bloomfilter; and inputting the Slug for the object in a counting Bloom filter; Eingeben, für jeden erzeugten Slug, des Slug und dessen zugehörigen Objekts in eine Multimap, falls eine Position im zählenden Bloomfilter, die dem Slug entspricht, einen Zählwert größer als 1 aufweist, wobei der Slug ein Schlüssel zu der Multimap ist und das Objekt ein Wert zu der Multimap ist; Inputting, for each generated slug, the slug and its associated object into a Multimap, if a position in the counting bloom filter corresponding to the slug, having a count greater than 1, wherein said slug is a key to the Multimap and the object is a value is the Multimap; und Assoziieren der Objekte, die als Werte für jeden Schlüssel der Multimap gespeichert sind, mit zwei oder mehr zugehörigen Werten. and associating the objects, which are stored as values ​​for each key, the Multimap, with two or more associated values.
  6. Verfahren nach Anspruch 5, weiter umfassend: Festlegen der Größe des zählenden Bloomfilters, für eine vorbestimmte Fehlerrate und Anzahl von Objekten innerhalb der Mehrzahl von Objekten. The method of claim 5, further comprising: determining the size of the counting Bloom filter, for a predetermined error rate, and number of objects within said plurality of objects.
  7. Verfahren nach Anspruch 5 oder Anspruch 6, weiter umfassend: Auslesen der Mehrzahl von Objekten aus mindestens einer Datenbank. The method of claim 5 or claim 6, further comprising: reading the plurality of objects from at least one database.
  8. Verfahren nach einem der Ansprüche 5 bis 7, wobei jeder Eintrag im zählenden Bloomfilter einen 2-Bit-Zähler aufweist. Method according to one of claims 5 to 7, wherein each entry in the counting Bloom filter includes a 2-bit counter.
  9. Verfahren nach Anspruch 8, wobei jeder 2-Bit-Zähler ein Sättigungszähler ist. The method of claim 8, wherein each 2-bit counter is a saturating counter.
  10. Verfahren nach einem der Ansprüche 1 bis 9, wobei der Slug eine Verkettung von zwei oder mehr Zeichenketten aufweist, die durch einen Abgrenzer zwischen jeder verketteten Zeichenkette getrennt sind. Method according to one of claims 1 to 9, wherein the slug comprises a concatenation of two or more character strings which are separated by a delimiter between each concatenated string.
  11. Verfahren nach Anspruch 10, wobei der Abgrenzer ein Zeichen aufweist, das ansonsten nicht in den Zeichenketten vorhanden ist, die verkettet wurden. The method of claim 10, wherein the delimiter has a sign which is not present in the character strings otherwise, that have been concatenated.
  12. Verfahren nach Anspruch 10, wobei der Abgrenzer eine Abfolge von zwei oder mehr Zeichen aufweist und die Abfolge von zwei oder mehr Zeichen nicht in irgendeiner der zwei oder mehr Zeichenketten vorhanden ist, die verkettet wurden. The method of claim 10, wherein the delimiter comprises a sequence of two or more characters and the sequence of two or more character is not present in any of the two or more character strings that have been concatenated.
  13. Verfahren nach einem der Ansprüche 10 bis 12, wobei die Anzahl von Eigenschaften in der ersten Mehrzahl von Eigenschaften gleich groß wie die Anzahl von Eigenschaften in der zweiten Mehrzahl von Eigenschaften ist. A method according to any one of claims 10 to 12, wherein the number of properties in the first plurality of properties is the same as the number of properties in the second plurality of characteristics.
  14. Verfahren nach einem der Ansprüche 10 bis 12, wobei die Anzahl von Eigenschaften in der ersten Mehrzahl von Eigenschaften größer als die Anzahl von Eigenschaften in der zweiten Mehrzahl von Eigenschaften ist. A method according to any one of claims 10 to 12, wherein the number of properties in the first plurality of features is greater than the number of attributes in the second plurality of characteristics.
  15. System, aufweisend: eine Speichervorrichtung, die einen Satz von Anweisungen speichert; A system comprising: a storage device storing a set of instructions; und mindestens einen Prozessor, der den Satz von Anweisungen ausführt, um Operationen durchzuführen, welche die Operationen nach einem der Ansprüche 1 bis 14 beinhalten. and at least one processor executing the set of instructions to perform operations which include the operations of any one of claims 1 to 14.
  16. Computerlesbares Medium, das Anweisungen speichert, die, wenn sie durch mindestens einen Prozessor ausgeführt werden, den mindestens einen Prozessor veranlassen, Operationen durchzuführen, welche die Operationen nach einem der Ansprüche 1 bis 14 beinhalten. The computer-readable medium storing instructions that, when executed by at least one processor, at least cause a processor to perform operations which include the operations of any one of claims 1 to 14.
DE102014204830.3A 2013-03-15 2014-03-14 Computer-implemented systems and methods for comparing and associating objects Pending DE102014204830A1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US201361801297P true 2013-03-15 2013-03-15
US61/801,297 2013-03-15
US14/099,661 2013-12-06
US14/099,661 US8924388B2 (en) 2013-03-15 2013-12-06 Computer-implemented systems and methods for comparing and associating objects

Publications (1)

Publication Number Publication Date
DE102014204830A1 true DE102014204830A1 (en) 2014-09-18

Family

ID=50634706

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102014204830.3A Pending DE102014204830A1 (en) 2013-03-15 2014-03-14 Computer-implemented systems and methods for comparing and associating objects

Country Status (2)

Country Link
DE (1) DE102014204830A1 (en)
GB (1) GB2513720A (en)

Cited By (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9129219B1 (en) 2014-06-30 2015-09-08 Palantir Technologies, Inc. Crime risk forecasting
US9286373B2 (en) 2013-03-15 2016-03-15 Palantir Technologies Inc. Computer-implemented systems and methods for comparing and associating objects
US9348499B2 (en) 2008-09-15 2016-05-24 Palantir Technologies, Inc. Sharing objects that rely on local resources with outside servers
US9348920B1 (en) 2014-12-22 2016-05-24 Palantir Technologies Inc. Concept indexing among database of documents using machine learning techniques
US9390086B2 (en) 2014-09-11 2016-07-12 Palantir Technologies Inc. Classification system with methodology for efficient verification
US9392008B1 (en) 2015-07-23 2016-07-12 Palantir Technologies Inc. Systems and methods for identifying information related to payment card breaches
US9424669B1 (en) 2015-10-21 2016-08-23 Palantir Technologies Inc. Generating graphical representations of event participation flow
US9485265B1 (en) 2015-08-28 2016-11-01 Palantir Technologies Inc. Malicious activity detection system capable of efficiently processing data accessed from databases and generating alerts for display in interactive user interfaces
US9483546B2 (en) 2014-12-15 2016-11-01 Palantir Technologies Inc. System and method for associating related records to common entities across multiple lists
US9495353B2 (en) 2013-03-15 2016-11-15 Palantir Technologies Inc. Method and system for generating a parser and parsing complex data
US9501552B2 (en) 2007-10-18 2016-11-22 Palantir Technologies, Inc. Resolving database entity information
US9514414B1 (en) 2015-12-11 2016-12-06 Palantir Technologies Inc. Systems and methods for identifying and categorizing electronic documents through machine learning
US9619557B2 (en) 2014-06-30 2017-04-11 Palantir Technologies, Inc. Systems and methods for key phrase characterization of documents
US9639580B1 (en) 2015-09-04 2017-05-02 Palantir Technologies, Inc. Computer-implemented systems and methods for data management and visualization
US9652139B1 (en) 2016-04-06 2017-05-16 Palantir Technologies Inc. Graphical representation of an output
US9671776B1 (en) 2015-08-20 2017-06-06 Palantir Technologies Inc. Quantifying, tracking, and anticipating risk at a manufacturing facility, taking deviation type and staffing conditions into account
US9715518B2 (en) 2012-01-23 2017-07-25 Palantir Technologies, Inc. Cross-ACL multi-master replication
US9727622B2 (en) 2013-12-16 2017-08-08 Palantir Technologies, Inc. Methods and systems for analyzing entity performance
US9727560B2 (en) 2015-02-25 2017-08-08 Palantir Technologies Inc. Systems and methods for organizing and identifying documents via hierarchies and dimensions of tags
US9760556B1 (en) 2015-12-11 2017-09-12 Palantir Technologies Inc. Systems and methods for annotating and linking electronic documents
US9767172B2 (en) 2014-10-03 2017-09-19 Palantir Technologies Inc. Data aggregation and analysis system
US9785317B2 (en) 2013-09-24 2017-10-10 Palantir Technologies Inc. Presentation and analysis of user interaction data
US9792020B1 (en) 2015-12-30 2017-10-17 Palantir Technologies Inc. Systems for collecting, aggregating, and storing data, generating interactive user interfaces for analyzing data, and generating alerts based upon collected data
US9817563B1 (en) 2014-12-29 2017-11-14 Palantir Technologies Inc. System and method of generating data points from one or more data stores of data items for chart creation and manipulation
US9852205B2 (en) 2013-03-15 2017-12-26 Palantir Technologies Inc. Time-sensitive cube
US9864493B2 (en) 2013-10-07 2018-01-09 Palantir Technologies Inc. Cohort-based presentation of user interaction data
US9870389B2 (en) 2014-12-29 2018-01-16 Palantir Technologies Inc. Interactive user interface for dynamic data analysis exploration and query processing
US9875293B2 (en) 2014-07-03 2018-01-23 Palanter Technologies Inc. System and method for news events detection and visualization
US9880987B2 (en) 2011-08-25 2018-01-30 Palantir Technologies, Inc. System and method for parameterizing documents for automatic workflow generation
US9886525B1 (en) 2016-12-16 2018-02-06 Palantir Technologies Inc. Data item aggregate probability analysis system
US9886467B2 (en) 2015-03-19 2018-02-06 Plantir Technologies Inc. System and method for comparing and visualizing data entities and data entity series
US9891808B2 (en) 2015-03-16 2018-02-13 Palantir Technologies Inc. Interactive user interfaces for location-based data analysis
US9898335B1 (en) 2012-10-22 2018-02-20 Palantir Technologies Inc. System and method for batch evaluation programs
US9946738B2 (en) 2014-11-05 2018-04-17 Palantir Technologies, Inc. Universal data pipeline
US9953445B2 (en) 2013-05-07 2018-04-24 Palantir Technologies Inc. Interactive data object map
US9965534B2 (en) 2015-09-09 2018-05-08 Palantir Technologies, Inc. Domain-specific language for dataset transformations
US9984428B2 (en) 2015-09-04 2018-05-29 Palantir Technologies Inc. Systems and methods for structuring data from unstructured electronic data files
US9996229B2 (en) 2013-10-03 2018-06-12 Palantir Technologies Inc. Systems and methods for analyzing performance of an entity
US9996595B2 (en) 2015-08-03 2018-06-12 Palantir Technologies, Inc. Providing full data provenance visualization for versioned datasets
US10007674B2 (en) 2016-06-13 2018-06-26 Palantir Technologies Inc. Data revision control in large-scale data analytic systems
US10061828B2 (en) 2006-11-20 2018-08-28 Palantir Technologies, Inc. Cross-ontology multi-master replication
US10068199B1 (en) 2016-05-13 2018-09-04 Palantir Technologies Inc. System to catalogue tracking data
US10103953B1 (en) 2015-05-12 2018-10-16 Palantir Technologies Inc. Methods and systems for analyzing entity performance
US10114884B1 (en) 2015-12-16 2018-10-30 Palantir Technologies Inc. Systems and methods for attribute analysis of one or more databases
US10127289B2 (en) 2015-08-19 2018-11-13 Palantir Technologies Inc. Systems and methods for automatic clustering and canonical designation of related data in various data structures
US10133588B1 (en) 2016-10-20 2018-11-20 Palantir Technologies Inc. Transforming instructions for collaborative updates
US10133783B2 (en) 2017-04-11 2018-11-20 Palantir Technologies Inc. Systems and methods for constraint driven database searching
US10135863B2 (en) 2014-11-06 2018-11-20 Palantir Technologies Inc. Malicious software detection in a computing system
US10133621B1 (en) 2017-01-18 2018-11-20 Palantir Technologies Inc. Data analysis system to facilitate investigative process
US10140664B2 (en) 2013-03-14 2018-11-27 Palantir Technologies Inc. Resolving similar entities from a transaction database
US10176482B1 (en) 2016-11-21 2019-01-08 Palantir Technologies Inc. System to identify vulnerable card readers
US10180977B2 (en) 2014-03-18 2019-01-15 Palantir Technologies Inc. Determining and extracting changed data from a data source
US10180929B1 (en) 2014-06-30 2019-01-15 Palantir Technologies, Inc. Systems and methods for identifying key phrase clusters within documents
US10198515B1 (en) 2013-12-10 2019-02-05 Palantir Technologies Inc. System and method for aggregating data from a plurality of data sources
US10230746B2 (en) 2014-01-03 2019-03-12 Palantir Technologies Inc. System and method for evaluating network threats and usage
US10235533B1 (en) 2017-12-01 2019-03-19 Palantir Technologies Inc. Multi-user access controls in electronic simultaneously editable document editor
US10249033B1 (en) 2016-12-20 2019-04-02 Palantir Technologies Inc. User interface for managing defects
US10275778B1 (en) 2015-12-30 2019-04-30 Palantir Technologies Inc. Systems and user interfaces for dynamic and interactive investigation based on automatic malfeasance clustering of related data in various data structures

Cited By (74)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10061828B2 (en) 2006-11-20 2018-08-28 Palantir Technologies, Inc. Cross-ontology multi-master replication
US9501552B2 (en) 2007-10-18 2016-11-22 Palantir Technologies, Inc. Resolving database entity information
US9846731B2 (en) 2007-10-18 2017-12-19 Palantir Technologies, Inc. Resolving database entity information
US9348499B2 (en) 2008-09-15 2016-05-24 Palantir Technologies, Inc. Sharing objects that rely on local resources with outside servers
US9880987B2 (en) 2011-08-25 2018-01-30 Palantir Technologies, Inc. System and method for parameterizing documents for automatic workflow generation
US9715518B2 (en) 2012-01-23 2017-07-25 Palantir Technologies, Inc. Cross-ACL multi-master replication
US9898335B1 (en) 2012-10-22 2018-02-20 Palantir Technologies Inc. System and method for batch evaluation programs
US10140664B2 (en) 2013-03-14 2018-11-27 Palantir Technologies Inc. Resolving similar entities from a transaction database
US9495353B2 (en) 2013-03-15 2016-11-15 Palantir Technologies Inc. Method and system for generating a parser and parsing complex data
US10152531B2 (en) 2013-03-15 2018-12-11 Palantir Technologies Inc. Computer-implemented systems and methods for comparing and associating objects
US9852205B2 (en) 2013-03-15 2017-12-26 Palantir Technologies Inc. Time-sensitive cube
US10120857B2 (en) 2013-03-15 2018-11-06 Palantir Technologies Inc. Method and system for generating a parser and parsing complex data
US9286373B2 (en) 2013-03-15 2016-03-15 Palantir Technologies Inc. Computer-implemented systems and methods for comparing and associating objects
US9953445B2 (en) 2013-05-07 2018-04-24 Palantir Technologies Inc. Interactive data object map
US9785317B2 (en) 2013-09-24 2017-10-10 Palantir Technologies Inc. Presentation and analysis of user interaction data
US9996229B2 (en) 2013-10-03 2018-06-12 Palantir Technologies Inc. Systems and methods for analyzing performance of an entity
US9864493B2 (en) 2013-10-07 2018-01-09 Palantir Technologies Inc. Cohort-based presentation of user interaction data
US10198515B1 (en) 2013-12-10 2019-02-05 Palantir Technologies Inc. System and method for aggregating data from a plurality of data sources
US9734217B2 (en) 2013-12-16 2017-08-15 Palantir Technologies Inc. Methods and systems for analyzing entity performance
US10025834B2 (en) 2013-12-16 2018-07-17 Palantir Technologies Inc. Methods and systems for analyzing entity performance
US9727622B2 (en) 2013-12-16 2017-08-08 Palantir Technologies, Inc. Methods and systems for analyzing entity performance
US10230746B2 (en) 2014-01-03 2019-03-12 Palantir Technologies Inc. System and method for evaluating network threats and usage
US10180977B2 (en) 2014-03-18 2019-01-15 Palantir Technologies Inc. Determining and extracting changed data from a data source
US9619557B2 (en) 2014-06-30 2017-04-11 Palantir Technologies, Inc. Systems and methods for key phrase characterization of documents
US10162887B2 (en) 2014-06-30 2018-12-25 Palantir Technologies Inc. Systems and methods for key phrase characterization of documents
US9129219B1 (en) 2014-06-30 2015-09-08 Palantir Technologies, Inc. Crime risk forecasting
US9836694B2 (en) 2014-06-30 2017-12-05 Palantir Technologies, Inc. Crime risk forecasting
US10180929B1 (en) 2014-06-30 2019-01-15 Palantir Technologies, Inc. Systems and methods for identifying key phrase clusters within documents
US9875293B2 (en) 2014-07-03 2018-01-23 Palanter Technologies Inc. System and method for news events detection and visualization
US9881074B2 (en) 2014-07-03 2018-01-30 Palantir Technologies Inc. System and method for news events detection and visualization
US9390086B2 (en) 2014-09-11 2016-07-12 Palantir Technologies Inc. Classification system with methodology for efficient verification
US9767172B2 (en) 2014-10-03 2017-09-19 Palantir Technologies Inc. Data aggregation and analysis system
US9946738B2 (en) 2014-11-05 2018-04-17 Palantir Technologies, Inc. Universal data pipeline
US10191926B2 (en) 2014-11-05 2019-01-29 Palantir Technologies, Inc. Universal data pipeline
US10135863B2 (en) 2014-11-06 2018-11-20 Palantir Technologies Inc. Malicious software detection in a computing system
US10242072B2 (en) 2014-12-15 2019-03-26 Palantir Technologies Inc. System and method for associating related records to common entities across multiple lists
US9483546B2 (en) 2014-12-15 2016-11-01 Palantir Technologies Inc. System and method for associating related records to common entities across multiple lists
US9348920B1 (en) 2014-12-22 2016-05-24 Palantir Technologies Inc. Concept indexing among database of documents using machine learning techniques
US9898528B2 (en) 2014-12-22 2018-02-20 Palantir Technologies Inc. Concept indexing among database of documents using machine learning techniques
US9870389B2 (en) 2014-12-29 2018-01-16 Palantir Technologies Inc. Interactive user interface for dynamic data analysis exploration and query processing
US9817563B1 (en) 2014-12-29 2017-11-14 Palantir Technologies Inc. System and method of generating data points from one or more data stores of data items for chart creation and manipulation
US10157200B2 (en) 2014-12-29 2018-12-18 Palantir Technologies Inc. Interactive user interface for dynamic data analysis exploration and query processing
US9727560B2 (en) 2015-02-25 2017-08-08 Palantir Technologies Inc. Systems and methods for organizing and identifying documents via hierarchies and dimensions of tags
US9891808B2 (en) 2015-03-16 2018-02-13 Palantir Technologies Inc. Interactive user interfaces for location-based data analysis
US9886467B2 (en) 2015-03-19 2018-02-06 Plantir Technologies Inc. System and method for comparing and visualizing data entities and data entity series
US10103953B1 (en) 2015-05-12 2018-10-16 Palantir Technologies Inc. Methods and systems for analyzing entity performance
US9392008B1 (en) 2015-07-23 2016-07-12 Palantir Technologies Inc. Systems and methods for identifying information related to payment card breaches
US9661012B2 (en) 2015-07-23 2017-05-23 Palantir Technologies Inc. Systems and methods for identifying information related to payment card breaches
US9996595B2 (en) 2015-08-03 2018-06-12 Palantir Technologies, Inc. Providing full data provenance visualization for versioned datasets
US10127289B2 (en) 2015-08-19 2018-11-13 Palantir Technologies Inc. Systems and methods for automatic clustering and canonical designation of related data in various data structures
US9671776B1 (en) 2015-08-20 2017-06-06 Palantir Technologies Inc. Quantifying, tracking, and anticipating risk at a manufacturing facility, taking deviation type and staffing conditions into account
US9485265B1 (en) 2015-08-28 2016-11-01 Palantir Technologies Inc. Malicious activity detection system capable of efficiently processing data accessed from databases and generating alerts for display in interactive user interfaces
US9898509B2 (en) 2015-08-28 2018-02-20 Palantir Technologies Inc. Malicious activity detection system capable of efficiently processing data accessed from databases and generating alerts for display in interactive user interfaces
US9996553B1 (en) 2015-09-04 2018-06-12 Palantir Technologies Inc. Computer-implemented systems and methods for data management and visualization
US9984428B2 (en) 2015-09-04 2018-05-29 Palantir Technologies Inc. Systems and methods for structuring data from unstructured electronic data files
US9639580B1 (en) 2015-09-04 2017-05-02 Palantir Technologies, Inc. Computer-implemented systems and methods for data management and visualization
US9965534B2 (en) 2015-09-09 2018-05-08 Palantir Technologies, Inc. Domain-specific language for dataset transformations
US10192333B1 (en) 2015-10-21 2019-01-29 Palantir Technologies Inc. Generating graphical representations of event participation flow
US9424669B1 (en) 2015-10-21 2016-08-23 Palantir Technologies Inc. Generating graphical representations of event participation flow
US9514414B1 (en) 2015-12-11 2016-12-06 Palantir Technologies Inc. Systems and methods for identifying and categorizing electronic documents through machine learning
US9760556B1 (en) 2015-12-11 2017-09-12 Palantir Technologies Inc. Systems and methods for annotating and linking electronic documents
US10114884B1 (en) 2015-12-16 2018-10-30 Palantir Technologies Inc. Systems and methods for attribute analysis of one or more databases
US9792020B1 (en) 2015-12-30 2017-10-17 Palantir Technologies Inc. Systems for collecting, aggregating, and storing data, generating interactive user interfaces for analyzing data, and generating alerts based upon collected data
US10275778B1 (en) 2015-12-30 2019-04-30 Palantir Technologies Inc. Systems and user interfaces for dynamic and interactive investigation based on automatic malfeasance clustering of related data in various data structures
US9652139B1 (en) 2016-04-06 2017-05-16 Palantir Technologies Inc. Graphical representation of an output
US10068199B1 (en) 2016-05-13 2018-09-04 Palantir Technologies Inc. System to catalogue tracking data
US10007674B2 (en) 2016-06-13 2018-06-26 Palantir Technologies Inc. Data revision control in large-scale data analytic systems
US10133588B1 (en) 2016-10-20 2018-11-20 Palantir Technologies Inc. Transforming instructions for collaborative updates
US10176482B1 (en) 2016-11-21 2019-01-08 Palantir Technologies Inc. System to identify vulnerable card readers
US9886525B1 (en) 2016-12-16 2018-02-06 Palantir Technologies Inc. Data item aggregate probability analysis system
US10249033B1 (en) 2016-12-20 2019-04-02 Palantir Technologies Inc. User interface for managing defects
US10133621B1 (en) 2017-01-18 2018-11-20 Palantir Technologies Inc. Data analysis system to facilitate investigative process
US10133783B2 (en) 2017-04-11 2018-11-20 Palantir Technologies Inc. Systems and methods for constraint driven database searching
US10235533B1 (en) 2017-12-01 2019-03-19 Palantir Technologies Inc. Multi-user access controls in electronic simultaneously editable document editor

Also Published As

Publication number Publication date
GB201404486D0 (en) 2014-04-30
GB2513720A (en) 2014-11-05

Similar Documents

Publication Publication Date Title
DE69724356T2 (en) Method and apparatus for the representation of information in relation to each of a plurality of hyperlinks
US7065515B2 (en) System and method for electronically managing composite documents
DE602004003361T2 (en) System and method for generation of refinement categories for a set of search results
DE10112941B4 (en) System and method for parallel reading of primary and secondary backups to recover more shared database files
US7805390B2 (en) System and method for deriving a hierarchical event based database optimized for analysis of complex accidents
DE60129652T2 (en) Image retrieval system and method with semantic and properties based relevance feedback
DE602004005984T2 (en) Face identification verification using of front and side views
US5999907A (en) Intellectual property audit system
CN1194319C (en) Method and device for retrieving, listing and sorting table-formatted data
US6741743B2 (en) Imaged document optical correlation and conversion system
US8112357B2 (en) Systems and methods for preventing duplicative electronic check processing
US6408304B1 (en) Method and apparatus for implementing an object oriented police patrol multifunction system
DE102008015662B4 (en) Elimination of data
US7200604B2 (en) Data de-duplication
DE60022767T2 (en) More points file synchronization protocol bank to avoid datenverfalschung.
DE69738233T2 (en) Business Management System
US20040122841A1 (en) Method and system for evaluating intellectual property
DE60129183T2 (en) Data processing device
US20050044037A1 (en) Systems and methods for automated political risk management
DE69730321T2 (en) Method and apparatus for protecting data with several applicable to data element level encryption levels
DE60029567T2 (en) Digital data administrative and image-making system and process with secure data marker
DE3908459C2 (en) Network Server
DE60220676T2 (en) Consistent read operations in a distributed database environment
US9063985B2 (en) Method, system, apparatus, program code and means for determining a redundancy of information
DE69909435T2 (en) Picture of securities-information in a usable format

Legal Events

Date Code Title Description
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0017300000

Ipc: G06F0016000000