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

Computer-implemented systems and methods for comparing and associating objects Download PDF

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
objects
slug
properties
bloom filter
multimap
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.)
Withdrawn
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
Priority claimed from US14/099,661 external-priority patent/US8924388B2/en
Application filed by Palantir Technologies Inc filed Critical Palantir Technologies Inc
Publication of DE102014204830A1 publication Critical patent/DE102014204830A1/en
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/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. 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. 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; und Eingeben des Slug für das Objekt in einen Bloomfilter. 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.Computer implemented systems and methods for comparing and associating objects are disclosed. In some embodiments, a method is provided to associate a first object with one or more objects within a plurality of objects, each object having a first plurality of properties, each property having data reflecting an identifier of an entity represented by the object wherein the associated objects have matching data in corresponding properties for a second plurality of properties. The method may include performing, for each object within the plurality of objects and for the first object: creating a slug for the object, the slug having the second plurality of properties of the object; and entering the slug for the object into a bloom filter. The method can further include that, for a position in the Bloom filter that corresponds to the slug for the first object, an association is generated between objects whose slugs correspond to the position, if the slugs for these objects match.

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 No. 61 / 801,297, filed on Mar. 15, 2013, and US Patent Application No. 14 / 099,661, filed on Dec. 6, 2013, the disclosures of which are incorporated herein by reference in their entireties this document.

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. 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.Numerous organizations, including industry and government, recognize that important conclusions can be drawn when analyzing huge data sets to identify patterns of behavior that threaten public safety or prove illegal activity. These analyzes often involve aligning data associated with a person or thing of interest with other data associated with the same person or thing to determine that the same person or thing was involved in multiple acts that have safety concerns or raise 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. 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. 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. Aktuelle Datenvergleichswerkzeuge sind nicht gut geeignet, um diese Probleme zu lösen.However, the quality of the analytical result resulting from the use of technically advanced analysis tools may be limited by the quality of the data the tool uses. For some types of analysis, an acceptable error rate must be literal or near zero, so that an analytical conclusion drawn from the data is well-founded. Achieving this zero or near-zero error rate for records that include a two or three digit million value of individual records may be problematic. 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. 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 (d. h. „falsch-positiv”) oder dass ein Nicht-Aufspüren einer Sicherheitsbedrohung zugelassen wird (d. h. „falsch-negativ”), unannehmbar hoch ist. 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.The problems discussed above are particularly severe for analyzes involving data related to identifying persons or things for public safety investigations. For example, with analysis tools for identifying potential security threats, the acceptable error rate is generally no greater than zero, since the price that is erroneously recognized as having a security threat (ie, "false-positive") or allowed to fail to detect a security threat (ie "False-negative"), unacceptably high. Therefore, it is necessary that tools serving public safety tools correctly relate data associated with persons or things of interest to data related to the same person or thing.

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. 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. 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. 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. Als Alternative könnte jedes Objekt in eine einzelne Zeichenkette umgewandelt (serialisiert) werden, welche die Inhalte eines jeden zu vergleichenden Elementes widerspiegelt. 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.There are some tools to do a precise data comparison, but with datasets that contain millions of individual entries, they are virtually unusable for computer evaluation. For example, one solution to determining whether two particular objects are associated with the same person or thing of interest is to compare each element of an object to a corresponding element in the second object. For example, for objects containing M elements, a first element in the first object may be compared to a corresponding first element in the second object, and corresponding comparisons may be made for each of the remaining M-1 elements that are common to the first and second objects are. If the elements in each object are altogether suitable for unambiguously identifying the represented person or thing, and corresponding elements in the first and second objects agree, it can reasonably be inferred that the objects reflect the same person or thing. Alternatively, each object could be converted (serialized) into a single string reflecting the contents of each item to be compared. Thereafter, a string generated from the one object could be compared with a string generated from another object as a form of object comparison.

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. Rasch können jedoch die zuvor beschriebenen Lösungsansätze bei großen oder nicht-trivialen Datensätzen praktisch nicht mehr einsetzbar sein. Mit steigender Anzahl von zu vergleichenden Objekten steigt die Anzahl von Vergleichen, und somit die Verarbeitungszeit der Vergleiche exponentiell an; d. h. proportional zu n2/2, wobei n die Anzahl von zu vergleichenden Objekten repräsentiert. 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. 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. Zusätzlich kann ein Lesen von Zeichenketten von einem Plattenspeicher, anstatt diese von einem Arbeitsspeicher zu lesen, zusätzliche Berechnungszeit hinzufügen.For some data sets, it is possible that the approaches described above consume little memory or system resources, since the objects or their serialized strings can be stored on disk instead of main memory. However, the solution approaches described above can quickly no longer be used with large or non-trivial data sets. As the number of objects to compare increases, the number of comparisons, and hence the processing time of the comparisons, increases exponentially; ie proportional to n 2/2 , where n represents the number of objects to be compared. Thus, a comparison of 500 objects using a serialized approach whose processing time can be approximately estimated as the time to perform 125,000 string comparisons can be accomplished by computer evaluation. However, a comparison of 100 million (100M) data sets using this approach, whose computation time may be approximated as the time to perform 5 quadrillion (5e15) string comparisons, can be difficult to accomplish by computer evaluation. In addition, reading strings from a disk instead of reading them from memory may add extra 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. Diese Multimap ist ein assoziatives Datenfeld, das mehrere Werte für jeden Schlüssel speichert. Ein Importieren der Objekte in die Multimap führt dazu, dass Objekte mit den gleichen Elementdaten in einem einzigen Eintrag der Multimap gespeichert werden. Somit erfolgt durch eine Verwendung einer Multimap ein Assoziieren identischer Objekte. Another solution for identifying matching objects in a corpus of objects is to store each object in a multi-map. This multimap is an associative data field that stores multiple values for each key. Importing the objects into the Multimap results in objects with the same element data being stored in a single entry of the Multimap. Thus, by using a multi-map, an association of identical objects occurs.

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. Daher kann eine Multimap-Lösung für Datensätze von 100M Objekten oder mehr unmöglich sein. Ä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.A disadvantage of using a multimap for object comparisons is that the multimap is typically stored in main memory, due to algorithm-related considerations concerning organizing keys in the multimap, and therefore an object comparator must have sufficient main memory to hold the memory entire body to hold comprehensive multimap in memory. Therefore, a multimap solution may be impossible for records of 100M objects or more. Similar disadvantages exist for any approach when applied to other object matching problems, such as efficiently identifying unique (unique) objects in a corpus of objects, and efficiently comparing a single object to 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. Dabei sind jedoch Objekt-Datensätze, die 100M oder mehr Objekte umfassen, heutzutage nicht ungewöhnlich. Daher sind die hier beschriebenen Probleme ziemlich real, und es besteht ein Bedarf nach verbesserten Objektvergleichseinrichtungen.None of the solutions is viable for datasets that include approximately or more than 100M objects. However, object data sets that include 100M or more objects are not uncommon nowadays. Therefore, the problems described here are quite real, and there is a need for improved object comparators.

Die vorliegende Erfindung ist in den unabhängigen Ansprüchen wiedergegeben. Die abhängigen Ansprüche betreffen optionale Merkmale einiger Ausführungsformen der Erfindung.The present invention is set forth in the independent claims. The dependent claims relate to 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 will now be made to the accompanying drawings, which illustrate exemplary embodiments of the present application, wherein:

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. 1 FIG. 10 is a flowchart of an example process for comparing a target object to at least some objects in a corpus, according to some embodiments of the present disclosure.

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. 2 FIG. 12 shows a flow chart of an example process for comparing all objects in a corpus with all other objects in the corpus to determine matches within the corpus according to some embodiments of the present disclosure.

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. 3 FIG. 5 is a flow chart of an example process for comparing all objects in a corpus with all other objects in the corpus to determine unique objects within the corpus, in accordance with some embodiments of the present disclosure.

4 eine beispielhafte Rechnerumgebung zeigt, innerhalb der Ausführungsformen der vorliegenden Offenbarung implementiert werden können. 4 FIG. 10 illustrates an exemplary computing environment within which embodiments of the present disclosure may be implemented.

Nachfolgend wird detailliert Bezug genommen auf die Ausführungsformen, wobei Beispiele für diese in den anliegenden Zeichnungen dargestellt sind. Wann immer möglich, werden gleiche Bezugszeichen in allen Zeichnungen verwendet, um auf gleiche oder ähnliche Teile Bezug zu nehmen.Reference will now be made in detail to the embodiments, examples of which are illustrated in the accompanying drawings. Whenever possible, like 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 disadvantages of conventional object comparators by providing computer-implemented systems and methods to compare objects in a manner that allows for greater computational throughput and storage consumption without compromising comparison accuracy, and for dataset sizes that previously not or not at an acceptable level of computational throughput.

Ausführungsformen der vorliegenden Offenbarung betreffen eine Klasse von Berechnungsproblemen, die sich auf einen Objektvergleich beziehen. Ein Element dieser Klasse beinhaltet einen effizienten Objektvergleich eines speziellen Objekts mit einem Korpus von Objekten. Ein weiteres Element dieser Klasse beinhaltet einen effizienten Vergleich von jedem Objekt in einem Korpus mit allen anderen Objekten im Korpus. Ein zusätzliches Element dieser Klasse beinhaltet eine effiziente Identifizierung von unikalen Objekten in einem Korpus von Objekten.Embodiments of the present disclosure relate to a class of computational problems related to object comparison. An element of this class includes an efficient object comparison of a particular object with a corpus of objects. Another element of this class involves an efficient comparison of each object in a corpus with all other objects in the corpus. An additional element of this class involves efficient identification of unique objects in a corpus of objects.

Die folgende detaillierte Beschreibung beginnt mit einem allgemeinen Überblick eines Objektvergleichs. Einige Beispiele von zu vergleichenden oder zu analysierenden Objekten werden geliefert. Die Beschreibung erläutert dann eine beispielhafte Ausführungsform, die sich mit der zuvor erörterten ersten Problemklasse befasst (d. h. einem effizienten Vergleichen eines einzigen Objekts mit allen Objekten in einem Korpus). Die Beschreibung erweitert dann die Lösung für die erste Problemklasse, um die zuvor erläuterte zweite Problemklasse anzusprechen (d. h. einen effizienten Vergleich eines jeden Objekts in einem Korpus mit allen anderen Objekten im Korpus). Die detaillierte Beschreibung offenbart dann eine Lösung für die dritte Problemklasse (d. h. eine effiziente Identifikation von unikalen Objekten in einem Korpus von Objekten). Eine Einführung zu Objekten und ein Überblick von Objektvergleichen folgt.The following detailed description begins with a general overview of an object comparison. Some examples of objects to be compared or analyzed are provided. The description then illustrates an exemplary embodiment that addresses the first problem class discussed above (ie, efficiently comparing a single object to all objects in a corpus). The description then extends the solution to the first problem class to address the second problem class discussed above (ie, an efficient comparison of each object in a corpus with all other objects in the corpus). The detailed description then discloses a solution to the third problem class (ie efficient identification of unique objects in a corpus of objects). An introduction to objects and an overview of object comparisons follows.

Mehrere Typen von Objekten existieren auf dem Gebiet der Informatik. Ein auf dem Gebiet der Informatik gut bekannter Objekttyp ist ein Objekt im objektorientierten Sinn. Wikipedia beschreibt ein Objekt dieses Typs als einen Satz von Elementen (d. h. Datenstrukturen) und Verfahren, die Funktionen ähnlich sind. 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.Several types of objects exist in the field of computer science. An object type well known in the field of computer science is an object in the object-oriented sense. Wikipedia describes an object of this type as a set of elements (i.e., data structures) and methods that are similar to functions. Without necessarily following this simplistic description, embodiments implementing the object comparison solutions discussed herein are compatible with 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. Bei einigen Ausführungsformen werden diese Eigenschaften durch Zeichenketten (Strings) widergespiegelt. 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. Bei einigen Ausführungsformen können Eigenschaften jedweden Objekttyps vor einem Vergleichen in Zeichenketten umgewandelt werden. 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. Die Ausführungsformen der vorliegenden Offenbarung können mit Zeichenkette- oder Nicht-Zeichenkette-Eigenschaften arbeiten.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 to a particular task or computing environment. In some embodiments, these properties are reflected by strings. In further embodiments, properties may be reflected by strings, integers, real numbers, time or dates, binary values, structures in the sense of C programming, variable enumerations, and / or other data forms. In some embodiments, properties of any object type may be converted to strings before being compared. In other embodiments, some properties may be strings or may possibly be converted to strings, however, other properties may not be strings and may not be converted into strings. The embodiments of the present disclosure may operate with string or non-string properties.

Außerdem ist die Vorstellung von einer „Datenstruktur” in diesem Kontext sehr flexibel. 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. Demgemäß umfassen, da eine Datenstruktur die zuvor beschriebenen Typen von strukturierten Daten grob umfasst, Objekte ebenfalls grob diese Typen von strukturierten Daten. Außerdem sind die hier erläuterten Objektvergleichslösungen ebenfalls kompatibel mit einem Vergleichen von Objekten dieser Typen.Moreover, the notion of a "data structure" in this context is very flexible. The term "data structure" may reflect any type of structured data, namely information stored in a database (with table columns reflecting elements in an object or data structure and table rows reflecting instances of the object or data structure), and to formatted text in a text file (for example, data in an XML structure), to data stored in a running computer program. Accordingly, since a data structure roughly includes the above-described types of structured data, objects also roughly include these types of structured data. In addition, the object comparison solutions discussed herein are also compatible with 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. 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.In some embodiments, an effective object comparison involves taking into account which properties of the objects to be compared are relevant to performing the comparison, since the entities (e.g., persons or things) reflected by those objects are different Environments may have different relevant properties. For example, an object may store properties of an automobile that may be relevant to a state vehicle authority by storing the following information: vehicle identification number (VIN), year of manufacture, make, model, expiration date of the vehicle registration, and a direct or indirect indication of the person; the owner of the vehicle is.

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. 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. 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. 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.However, for automobiles sold on an auction site such as eBay, the relevant characteristics of an automobile may differ from those relevant to the state's motor vehicle office. For example, a data structure for storing properties of an automobile listed for sale on eBay may include: VIN, year, make, model, mileage, condition of the automobile, minimum auction bid, and a direct or indirect indication of the person providing the Has stopped selling vehicle. Thus, properties of an entity (eg, a person or thing) that is relevant to the one environment may differ from properties of the entity that are relevant to another environment. Accordingly, properties of an object considered during an object comparison in one environment may be different than those considered during object comparison 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. Beispielsweise sollte, gemäß Auslegung, eine VIN für ein Automobil unikal (einmalig vorkommend) für dieses Automobil sein. Jedoch können gelegentlich Situationen auftreten, bei denen eine VIN nicht unikal für ein spezielles Automobil ist. Derartige Situationen können von absichtlichen Fehlern oder zufälligen Fehlern herrühren. Ein Beispiel eines absichtlichen Fehlers ist ein Versuch einer betrügerischen Registrierung eines gestohlenen Fahrzeuges unter einer vorgeblichen 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. 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.In some embodiments, effective data comparison may also include taking into account which properties are intended to distinguish an entity (eg, a person or thing) from other instances of the entity. For example, as designed, a VIN for an automobile should be unique to this automobile. However, occasionally situations may arise in which a VIN is not unique to a particular automobile. Such situations may arise from deliberate errors or accidental errors. An example of a deliberate error is an attempt to fraudulently register a stolen vehicle under a purported VIN. An example of a random error occurs when a smog-scoped employee improperly enters a VIN into a computer at a smog review station, resulting in a smog-check record with incorrect VIN, which is subsequently passed to a state database becomes. data error However, some embodiments of the present disclosure perform minimization or elimination of errors by identifying objects using a combination of multiple object properties, rather than identifying objects 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. Diese Datenstruktur wird als „Slug” bezeichnet; 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. Bei einigen Ausführungsformen weist der Slug eine Verkettung von Zeichenketten auf, die durch ein Trennzeichen getrennt sind. 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. Bei einigen Ausführungsformen können die verketteten Zeichenketten durch eine Trenn-Zeichenkette (z. B. „--”) anstelle eines Trennzeichens begrenzt sein. 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. 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 some embodiments, one or more identifying characteristics of an object are extracted from the object and stored in a data structure. This data structure is called a "slug"; it contains information that may be sufficient to uniquely identify an entity (eg, a person or thing) with some degree of information redundancy to enable detection of errors in the properties in the slug. In some embodiments, the slug has a concatenation of strings separated by a delimiter. In some embodiments, the separator is a NULL character, however, in other embodiments, the separator may be a character that otherwise does not exist in the concatenated string. In some embodiments, the concatenated strings may be delimited by a separator string (eg, "-") instead of a separator. In embodiments that use a separator string, the separator string may be any string that does not otherwise appear in the strings that were concatenated. In further embodiments, the slug has a data structure such as an object, a data array, a structure, or an associative array.

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. 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. 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.For example, in one embodiment, a slug for an automobile may include features that include a VIN, a brand, a model, and a year for the automobile. Because the brand, model, and year properties for the automobile are included in the slug, an ability to detect errors in the VIN property is provided because the VIN property is not the only object property that is compared. In order for slugs associated with two automobiles to match in the presence of a defect in the VIN property of the one automobile object, an automotive object having the same VIN property as the defective VIN must also have the same make, model, and model. and year features.

Die Chancen dieser zufälligen Übereinstimmung mehrerer Eigenschaften zwischen zwei oder mehr Objekten kann verschwindend gering sein. 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.The chances of this coincident coincidence of several properties between two or more objects can be negligible. Therefore, including some level of information redundancy should avoid, or at least significantly reduce, erroneous matches in an object comparison with respect to object comparisons in which only a single property is compared between objects, despite the fact that the individual property was intended to be its own Entity (eg person or thing) clearly identified.

Beispielhafte Ausführungsformen werden nachfolgend beschrieben, die das zuvor erläuterte erste Problem lösen, d. h. ein effizientes Vergleichen eines speziellen Objekts (nachfolgend als „Zielobjekt” bezeichnet) mit allen Objekten in einem Korpus. 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. 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.Exemplary embodiments will be described below which solve the first problem explained above, that is, the first problem described above. H. efficiently comparing a specific object (hereinafter referred to as "target object") with all objects in a corpus. The disclosed embodiments use a bloom filter to identify slugs associated with objects in the corpus that do not match the slug for the target object. This quick detection is performed by discarding slugs that are associated with a position in the bloom filter that is different from the position 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. 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.Bloom filters have the property that two slugs that fall into different positions in the bloom filter, certainly have different properties and thus reflect different objects. Therefore, if the slug for the target does not fall into the same position as the slug for a particular object in the body, the target does not match the particular object in the body and thus may be excluded from future consideration in such embodiments.

1 zeigt ein Ablaufdiagramm eines beispielhaften Prozesses 100 zum Vergleichen eines Zielobjekts mit zumindest einigen Objekten in einem Korpus, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Bei einigen Ausführungsformen ist das Zielobjekt, das mit zumindest einigen Objekten im Korpus verglichen werden soll, Teil des Korpus. Bei diesen Ausführungsformen wird ein Vergleich zwischen dem Zielobjekt und allen anderen Objekten in dem Korpus durchgeführt. Bei weiteren Ausführungsformen ist das Objekt, das mit zumindest einigen Objekten im Korpus verglichen werden soll, nicht Teil des Korpus. Bei diesen weiteren Ausführungsformen wird ein Vergleich zwischen dem Zielobjekt und allen Objekten in dem Korpus durchgeführt. 1 shows a flowchart of an exemplary process 100 for comparing a target object with at least some objects in a body, in accordance with some embodiments of the present disclosure. In some embodiments, the target object to be compared with at least some objects in the corpus is part of the corpus. In these embodiments, a comparison is made between the target object and all other objects in the corpus. In further embodiments, the object to be compared with at least some objects in the body is not part of the body. In these further embodiments, a comparison is made between the target object and all objects in the corpus.

Wie dargestellt, wird bei Schritt 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. 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. 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.As shown, at step 102 determines the size of a bloom filter and creates it taking into account the error rate that results for the body size to be processed. For example, increasing the number of positions in a bloom filter may aim to reduce the error rate for a specific body size, while decreasing the number of locations in a bloom filter may aim to increase the error rate for a specific body size. Methods for sizing a bloom filter to achieving a desired error rate for a specific body size is well known in the art, and therefore these methods are not discussed here.

Bei Schritt 104 wird ein Slug für das Zielobjekt (d. h. das Objekt, gegen das alle Objekte im Korpus verglichen werden) erzeugt. Überlegungen, welche Eigenschaften für ein Objekt in einen Slug einzuschließen sind, wurden zuvor erörtert. Bei Schritt 106 wird eine Bloomfilter-Position bestimmt, die dem Slug für das Zielobjekt entspricht. 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.At step 104 a slug is created for the target object (ie the object against which all objects in the corpus are compared). Considerations as to which properties to include in a slug for an object have been discussed previously. At step 106 a Bloom Filter position corresponding to the slug for the target object is determined. In some embodiments, a bloom filter position for a slug may be determined by entering the slug into a bloom filter and instructing the bloom filter to reveal the position in which the slug was 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. 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. Bei weiteren Ausführungsformen können andere Lösungsansätze verwendet werden, um von einem Slug eine Bloomfilter-Position zu liefern. Auf diese Lösungsansätze zum Identifizieren eines Bloomfilters für einen Slug, gemäß den zuvor erläuterten Ausführungsformen, wird insgesamt in Schritten 106, 108 Bezug genommen. 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.In further embodiments, a bloom filter position for a slug may be determined by presenting the slug as an input to a software function associated with the bloom filter without storing the slug in the bloom filter. In further embodiments, a position for a slug may be determined by entering the slug into a software function that reflects a position selection algorithm for a bloom filter, in the absence of using an actual and / or full bloom filter, and the bloom filter position as the output thereof Software function is obtained. In other embodiments, other approaches may be used to provide a bloom position from a slug. These approaches to identifying a bloom filter for a slug, according to the previously discussed embodiments, will be described in total in steps 106 . 108 Referenced. The particular Bloom Filter position is used to identify matches of the Slug Comparison, some of which may be "false positive" using the Bloom Filter discussed below.

Bei Schritt 108 wird ein Slug für jedes Objekt im Korpus erzeugt. Bei Schritt 110 wird eine Bloomfilter-Position für jedes Objekt im Korpus bestimmt. 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.At step 108 a slug is created for each object in the corpus. At step 110 a Bloom Filter position is determined for each object in the corpus. In some embodiments, a bloom filter position for an object may be determined by entering the slug of the object into the bloom filter and instructing the bloom filter to reveal the position to which the slug was added.

Nach Abschluss von Schritt 110 spiegeln Slugs, die der bei Schritt 108 identifizierten Position entsprechen, Übereinstimmungen mit dem Slug für das Zielobjekt wider. Einige dieser Übereinstimmungen können jedoch falsch-positive Übereinstimmungen sein, anstelle von echten Übereinstimmungen. Daher filtern Schritte 112 und 114 diese falsch-positiven Übereinstimmungen mittels Verwendung einer Multimap aus.After completing step 110 reflect slugs that step by step 108 Identified position, matches with the slug for the target object. However, some of these matches may be false-positive matches rather than true matches. Therefore, steps filter 112 and 114 these false-positive matches by using a multimap.

In Schritt 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. 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. Diese Multimap wird verwendet, um falsch-positive Ergebnisse aus der Verarbeitung zu entfernen. In Schritt 114 wird das Verfahren durch Auswählen der echt-positiven Übereinstimmungen, die in der Multimap identifiziert sind, abgeschlossen. 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.In step 112 is added for each slug associated with an object in the corpus and whose position in the bloom filter is the same position as the slug for the target object, the slug associated with an object in the corpus and its associated object in the corpus of a multimap. When adding the slug and its associated object to the multimap, the slug represents the key to the multimap, and the object in the corpus represents the value to the multimap. This multimap is used to remove false-positive results from processing. In step 114 For example, the method is completed by selecting the true-positive matches identified in the multi-map. These non-false-positive matches can be retrieved from the multimap by reading out data from the multimap with the slug for the target object as a key.

Bei einigen Ausführungsformen kann der Prozess 100 über mehrere Prozessoren verteilt werden. Beispielsweise kann ein Bloomfilter auf jedem von mehreren Prozessoren vorhanden sein, und Schritte 102 bis 114 können auf jedem der mehreren Prozessoren ausgeführt werden. 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. Bei derartigen Ausführungsformen führt jeder der mehreren Prozessoren ein Ausgeben eines Teils der mit dem Zielobjekt übereinstimmenden Objekte im Korpus durch.In some embodiments, the process may 100 distributed across multiple processors. For example, a bloom filter may be present on each of multiple processors, and steps 102 to 114 can be run on any of the multiple processors. 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. In such embodiments, each of the plurality of processors performs outputting of a portion of the object matching objects in the corpus.

Beispielhafte Ausführungsformen werden nachfolgend beschrieben, die das zuvor erläuterte zweite Problem lösen, d. h. ein effizientes Vergleichen aller Objekte mit allen Objekten in einem Korpus. 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. Zählende Bloomfilter sind in der Technik allgemein bekannt, und daher wird ihre Struktur und ihr Aufbau hier nicht erörtert.Exemplary embodiments will be described below which solve the second problem explained above, that is, the second embodiment of the present invention. H. an efficient comparison of all objects with all objects in a corpus. These embodiments use a counting Bloom filter to quickly identify slugs that are associated with objects in the corpus that do not match the slug for the target object. Counting bloom filters are well known in the art, and therefore their structure and construction will not be discussed here.

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. 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. 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. 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.Specifically, if a position in the counting Bloom filter has a value of zero or one, after slugs have been entered into the Bloom filter for all objects in the corpus, no object whose slug is associated with that position could match another Slug, and therefore These slugs are excluded from further consideration. These slugs can be excluded because it is clear to those skilled in the art that bloom filters can have false-positive results, but they are not false-positive. can have negative results. Therefore, a counting Bloom filter whose count value is less than two reflects an accurate determination that there is no match between slugs associated with that position since any match would produce a count of at least two. However, false-positive results can occur among objects whose slugs are associated with the same bloom-filter position, and therefore false-positive results can be removed by additional processing, as will be explained later.

2 zeigt ein Ablaufdiagramm eines beispielhaften Prozesses 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. Wie dargestellt, wird in Schritt 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. 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. 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. 2 shows a flowchart of an exemplary process 200 compare all objects in a body with all other objects in the body to determine matches within the body, in accordance with some embodiments of the present disclosure. As shown, in step 202 Sets the size of a scoring Bloom filter and creates it taking into account the error rate that results for the body size to be processed. For example, increasing the number of positions in a counting bloom filter may aim to reduce the error rate for a specific body size, while decreasing the number of positions in a counting bloom filter may aim to increase the error rate for a specific body size. Methods for sizing a scoring bloom filter to achieve a desired 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 (d. h. N = 2). Bei weiteren Ausführungsformen können diese Zähler Ein-Bit-Zähler oder Zähler aus mehr als zwei Bit sein. Bei noch weiteren Ausführungsformen können diese Zähler Sättigungszähler sein; d. h. diese Zähler zählen bis zu einem Maximalwert hoch und überschreiten diesen Wert dann nicht.In some embodiments, the counting bloom filter may include an N-bit counter, and these counters may be implemented as a two-bit counter (i.e., N = 2). In further embodiments, these counters may be one-bit counters or more than two-bit counters. In still other embodiments, these counters may be saturation counters; d. H. these counters count up to a maximum value and then do not exceed this value.

In Schritt 204 wird ein Slug für jedes Objekt im Korpus erzeugt. In Schritt 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. Nach Abschluss von Schritt 206 spiegeln Positionen, deren Zähler einen Wert größer als Eins aufweisen, einen oder mehrere übereinstimmende Slugs wider. Einige dieser Übereinstimmungen können jedoch falsch-positive Übereinstimmungen, anstelle von echten Übereinstimmungen sein. Daher filtern Schritte 208 und 210 die falsch-positiven Übereinstimmungen unter Verwendung einer Multimap aus.In step 204 a slug is created for each object in the corpus. In step 206 Each slug is entered into the counting bloom filter which causes a counter to increment in a position corresponding to a slug. After completing step 206 Positions whose counters have a value greater than one will reflect one or more matching slugs. However, some of these matches may be false-positive matches rather than true matches. Therefore, steps filter 208 and 210 the false-positive matches using a multimap.

In Schritt 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. 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. Diese Multimap wird verwendet, um falsch-positive Ergebnisse aus der Verarbeitung zu entfernen. In Schritt 210 wird der Prozess 200 abgeschlossen, durch Ausgeben eines Wertes für jeglichen Schlüssel in der Multimap, der zwei oder mehr Werte aufweist. Die ausgegebenen Werte spiegeln Objekte wider, deren Slugs mit Slugs von mindestens einem anderen Objekt im Korpus übereinstimmten. 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.In step 208 For slugs associated with positions in the counting bloom filter whose counters have a value greater than one, the slug and its associated object are added to a multi-map. When adding the slug and its associated object to the multimap, the slug represents the key to the multimap, and the object in the corpus represents the value to the multimap. This multimap is used to remove false-positive results from processing. In step 210 becomes the process 200 completed by outputting a value for any key in the multi-map that has two or more values. The output values reflect objects whose slugs matched slugs from at least one other object in the corpus. Thus, the output objects identify those objects in which selected properties, as reflected in a slug of an object, uniquely match at least one other object in the corpus.

Bei einigen Ausführungsformen kann der Prozess 200 über mehrere Prozessoren verteilt werden. Beispielsweise kann ein zählender Bloomfilter auf jedem von mehreren Prozessoren vorhanden sein, und Schritte 202, 204 und 206 können auf jedem der mehreren Prozessoren ausgeführt werden. 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. Bei derartigen Ausführungsformen erfolgt, vor einem Ausführen von Schritt 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. Danach fährt der Prozess 200 mit einem Ausführen von Schritten 208 und 210 auf einem einzelnen Prozessor fort.In some embodiments, the process may 200 distributed across multiple processors. For example, there may be a counting bloom filter on each of several processors, and steps 202 . 204 and 206 can be run on any of the multiple processors. 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. In such embodiments, prior to performing step 208 , summing up counters for each position in the counting bloom filter with counters for the same position in counting bloom filters on other processors. After that, the process continues 200 with a running steps 208 and 210 on a single processor.

Beispielhafte Ausführungsformen werden nachfolgend beschrieben, die das zuvor erläuterte dritte Problem lösen, d. h. ein effizientes Identifizieren von unikalen Objekten in einem Korpus. Diese Ausführungsformen verwenden einen zählenden Bloomfilter und eine Multimap, um ein rasches Identifizieren von unikalen Objekten durchzuführen. 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. Zusätzlich könnten, in dem Maße, dass Positionen Zählwerte von Zwei oder mehr aufweisen, diese Zählwerte falsch-positive Ergebnisse widerspiegeln. Daher ermöglicht eine Multimap eine Bestimmung, ob die Übereinstimmungen, die in den Zählwerten widergespiegelt sind, falsch- oder echt-positiv sind.Exemplary embodiments will be described below that solve the third problem discussed above, that is, the third aspect of the invention. H. an efficient identification of unique objects in a corpus. These embodiments use a counting bloom filter and a multi-map to quickly identify unique objects. When slugs are entered into the counting bloom filter for all objects in the corpus, any position with a count of one reflects a unique object, since bloom filters do not produce false-negative results. Additionally, to the extent that positions have counts of two or more, these counts could reflect false-positive results. Therefore, a multi-map allows a determination of whether the matches reflected in the counts are false or true-positive.

3 zeigt ein Ablaufdiagramm eines beispielhaften Prozesses 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. Wie dargestellt, wird in Schritt 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. 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. 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. 3 shows a flowchart of an exemplary process 300 compare all objects in a corpus with all other objects in the corpus to determine unique objects within the corpus, in accordance with some embodiments of the present disclosure. As shown, in step 302 Sets the size of a scoring Bloom filter and creates it taking into account the error rate that results for the body size to be processed. For example, increasing the number of positions in a counting bloom filter may aim to reduce the error rate for a specific body size, while decreasing the number of positions in a counting bloom filter may aim to increase the error rate for a specific body size. Methods for sizing a scoring bloom filter to achieve a desired 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 (d. h. N = 2). Bei weiteren Ausführungsformen können diese Zähler Ein-Bit-Zähler oder Zähler aus mehr als zwei Bit sein. Bei noch weiteren Ausführungsformen können diese Zähler Sättigungszähler sein; d. h. diese Zähler zählen bis zu einem Maximalwert hoch und überschreiten diesen Wert dann nicht.In some embodiments, the counting bloom filter may include an N-bit counter, and these counters may be implemented as a two-bit counter (i.e., N = 2). In further embodiments, these counters may be one-bit counters or more than two-bit counters. In still other embodiments, these counters may be saturation counters; d. H. these counters count up to a maximum value and then do not exceed this value.

In Schritt 304 wird ein Slug für jedes Objekt im Korpus erzeugt. In Schritt 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. 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. Daher wird in Schritt 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.In step 304 a slug is created for each object in the corpus. In step 306 Each slug is entered into the counting bloom filter which causes a counter to increment in a position corresponding to a slug. As previously discussed, after slugs have been entered into the scoring Bloom filter for all objects in the corpus, any position with a count of one reflects a unique object in the corpus since the scoring Bloom filter does not produce false-negative results. Therefore, in step 308 for each slug whose count in the counting bloom filter is one, output the object associated with the slug as a unique object in the corpus.

Nach Abschluss von Schritt 308 spiegeln Positionen, deren Zählwerte einen Wert größer als Eins aufweisen, einen oder mehrere übereinstimmende Slugs wider; d. h. Slugs, die nicht unikal sind. Einige dieser Übereinstimmungen können jedoch falsch-positive Übereinstimmungen anstelle von echten Übereinstimmungen sein, aufgrund der Beschaffenheit von Bloomfiltern, wie zuvor erläutert wurde. Daher werden in Schritten 310 und 312 die falsch-positiven Übereinstimmungen unter Verwendung einer Multimap ausgefiltert.After completing step 308 positions whose counts have a value greater than one reflect one or more matching slugs; ie slugs that are not unique. However, some of these matches may be false-positive matches instead of true matches due to the nature of bloom filters, as discussed previously. Therefore, in steps 310 and 312 filtered out the false-positive matches using a multimap.

In Schritten 310 und 312 wird bestimmt, ob der zählende Bloomfilter das Vorhandensein von weiteren unikalen Objekten maskiert, da der Bloomfilter falsch-positive Ergebnisse zulässt. In Schritt 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. In Schritt 312 endet der Prozess, nachdem jeweils der Wert in der Multimap für Schlüssel ausgegeben wird, die lediglich einen einzigen Wert haben. Unikale Objekte im Korpus werden durch die Sammlung von Objekten, die von Schritt 308 ausgegeben werden, und die Sammlung von Objekten, die durch Schritt 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.In steps 310 and 312 determines whether the scoring Bloom filter masks the presence of other unique objects, since the Bloom filter allows false-positive results. In step 310 For each slug whose associated position has a count greater than one, the slug is entered as a key to a multimap, and the object associated with the slug is entered as the value to that key. In step 312 The process ends after each value in the multimap is output for keys that have only one value. Unique objects in the corpus are created by the collection of objects by step 308 are output, and the collection of objects by step 312 because the former reflects objects whose slugs were the sole slug in a position in the scoring Bloom filter, and which were therefore uniquely slug-associated with objects in the corpus, whereas the latter reflects slugs, the false-positive results in the counting Bloom filters, but for which the Multimap uniqueness was

Bei einigen Ausführungsformen kann der Prozess 300 über mehrere Prozessoren verteilt werden. Beispielsweise kann ein zählender Bloomfilter auf jedem von mehreren Prozessoren vorhanden sein, und Schritte 302, 304 und 306 können auf jedem der mehreren Prozessoren ausgeführt werden. 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. Bei derartigen Ausführungsformen erfolgt, vor einem Ausführen von Schritt 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. Danach fährt der Prozess 300 mit einem Ausführen von Schritten 308, 310 und 312 auf einem einzelnen Prozessor fort.In some embodiments, the process may 300 distributed across multiple processors. For example, there may be a counting bloom filter on each of several processors, and steps 302 . 304 and 306 can be run on any of the multiple processors. 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. In such embodiments, prior to performing step 308 , summing up counters for each position in the counting bloom filter with counters for the same position in counting bloom filters on other processors. After that, the process continues 300 with a running steps 308 . 310 and 312 on a single processor.

4 zeigt eine beispielhafte Rechnerumgebung, in der die Ausführungsformen der vorliegenden Offenbarung implementiert werden können. 4 FIG. 10 illustrates an example computing environment in which the embodiments of the present disclosure may be implemented.

Computersystem 400 beinhaltet einen Bus 402 oder einen anderen Kommunikationsmechanismus für ein Weiterleiten von Information, und einen Hardware-Prozessor 404, der mit dem Bus 402 zum Verarbeiten von Information verbunden ist. Bei einigen Ausführungsformen kann der Hardwareprozessor 404 beispielsweise ein Universal-Mikroprozessor sein, oder es kann ein Mikroprozessor mit reduziertem Befehlssatz sein.computer system 400 includes a bus 402 or another communication mechanism for forwarding information, and a hardware processor 404 with the bus 402 for processing information. In some embodiments, the hardware processor may 404 for example, a general purpose microprocessor, or it may be a reduced instruction set microprocessor.

Das Computersystem 400 beinhaltet auch einen Hauptspeicher 406, beispielsweise ein RAM (Direktzugriffsspeicher) oder eine andere dynamische Speichervorrichtung, die mit dem Bus 402 verbunden ist, um Information und Anweisungen zu speichern, die durch den Prozessor 404 auszuführen sind. Der Hauptspeicher 406 kann auch verwendet werden, um temporäre Variablen oder andere Zwischeninformationen zu speichern, während eines Ausführens von Anweisungen durch den Prozessor 404. Derartige Anweisungen machen, wenn sie in nicht-transitorischen Speichermedien gespeichert werden, die dem Prozessor 404 zugänglich sind, das Computersystem 400 zu einer Spezialmaschine, die kundenspezifisch angepasst ist, um die in den Anweisungen festgelegten Operationen auszuführen.The computer system 400 also includes a main memory 406 , for example a RAM (Random Access Memory) or another dynamic one Storage device connected to the bus 402 is connected to store information and instructions by the processor 404 are to be executed. The main memory 406 can also be used to store temporary variables or other intermediate information while executing instructions by the processor 404 , Such instructions, when stored in non-transitory storage media, make the processor 404 accessible, the computer system 400 to a specialized machine customized to perform the operations specified in the instructions.

Bei einigen Ausführungsformen beinhaltet das Computersystem 400 weiter ein ROM (Nur-Lese-Speicher) 408 oder eine andere statische Speichervorrichtung, die mit dem Bus 402 verbunden ist, um statische Information und Anweisungen für den Prozessor 404 zu speichern. Eine Speichervorrichtung 410, wie beispielsweise eine Magnetplatte oder eine optische Platte, ist vorgesehen und mit dem Bus 402 verbunden, um Information und Anweisungen zu speichern.In some embodiments, the computer system includes 400 further a ROM (read only memory) 408 or another static storage device connected to the bus 402 is connected to static information and instructions for the processor 404 save. A storage device 410 , such as a magnetic disk or an optical disk, is provided and to the bus 402 connected to store information and instructions.

Das Computersystem 400 kann über den Bus 402 mit einer Anzeige 412 verbunden sein, beispielsweise einer Kathodenstrahlröhre (CRT) oder einem LCD-Bildschirm, um einem Benutzer eines Computers Information anzuzeigen. Eine Eingabevorrichtung 414, die alphanumerische und weitere Tasten beinhaltet, ist mit dem Bus 402 verbunden, um Information und ausgewählte Befehle an den Prozessor 404 zu übermitteln. Ein weiterer Typ von Benutzereingabevorrichtung ist eine Cursor-Steuerung 416, wie beispielsweise eine Maus, ein Trackball oder Cursor-Richtungstasten, um dem Prozessor 404 Richtungsinformation und ausgewählte Befehle mitzuteilen und eine Cursorbewegung auf der Anzeigeeinrichtung 412 zu steuern. 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.The computer system 400 can over the bus 402 with an ad 412 be connected, for example, a cathode ray tube (CRT) or an LCD screen to display information to a user of a computer. An input device 414 , which includes alphanumeric and other keys, is by bus 402 connected to information and selected commands to the processor 404 to convey. Another type of user input device is cursor control 416 such as a mouse, trackball, or cursor direction keys to the processor 404 Direction information and selected commands and a cursor movement on the display device 412 to control. This input device typically has two degrees of freedom in two axes, a first axis (eg x) and a second axis (eg y), which allows the device to designate positions in a plane.

Im Computersystem 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 400 eine Spezialmaschine ist. Bei einigen Ausführungsbeispielen werden die hier beschriebenen Prozesse und Verfahren durch das Computersystem 400 reagierend darauf durchgeführt, dass der Prozessor 404 eine oder mehrere Sequenzen von einer oder mehreren im Hauptspeicher 406 enthaltenen Anweisungen ausführt. Derartige Anweisungen können in den Hauptspeicher 406 aus einem anderen Speichermedium, beispielsweise der Speichervorrichtung 410, eingelesen werden. Eine Ausführung der im Hauptspeicher 406 enthaltenen Anweisungssequenzen veranlasst den Prozessor 404, die hier beschriebenen Prozessschritte auszuführen. Bei weiteren Ausführungsbeispielen können festverdrahtete Schaltkreise verwendet werden, anstelle von Software-Anweisungen oder in Kombination mit diesen.In the computer system 400 For example, the processes and methods described herein may be implemented using custom hardwired logic circuits, one or more ASICs or FPGAs, firmware, and / or program logic that, in combination with the computer system, effect or program the computer system 400 a special machine is. In some embodiments, the processes and methods described herein are implemented by the computer system 400 Responding to that the processor 404 one or more sequences of one or more in main memory 406 executes contained instructions. Such instructions may be in main memory 406 from another storage medium, for example the storage device 410 , are read. An execution of the main memory 406 contained instruction sequences causes the processor 404 to execute the process steps described here. In other embodiments, hardwired circuitry may be used instead of or in combination with software instructions.

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. Derartige Speichermedien können nicht-flüchtige Medien und/oder flüchtige Medien beinhalten. Nicht-flüchtige Medien schließen beispielsweise optische oder magnetische Platten ein, beispielsweise die Speichervorrichtung 410. Flüchtige Medien schließen einen dynamischen Speicher wie beispielsweise den Hauptspeicher 406 ein. Ü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.The term "storage media" as used herein refers to any non-transitory media that stores data and / or instructions that cause a machine to work in a specific manner. Such storage media may include non-volatile media and / or volatile media. Non-volatile media include, for example, optical or magnetic disks, such as the storage device 410 , Volatile media include dynamic memory such as main memory 406 one. Conventional forms of storage media include, for example, a floppy disk, a flexible disk, a hard disk, a semiconductor disk, a magnetic tape, or any other magnetic data storage medium, a CD-ROM, any other optical data storage medium, any hole-patterned physical media, a RAM PROM and an EPROM, a flash EPROM, an NVRAM, and any other memory chip or cartridge.

Speichermedien sind verschieden von Übertragungsmedien, können jedoch in Verbindung mit diesen verwendet werden. Übertragungsmedien nehmen an einer Übertragung von Information zwischen Speichermedien teil. Beispielsweise beinhalten Übertragungsmedien Koaxialkabel, Kupferdraht und Lichtwellenleiter, einschließlich der Drähte, die der Bus 402 beinhaltet. Übertragungsmedien können auch die Form von Schall- oder Lichtwellen annehmen, beispielsweise solche, die bei Funk- und Infrarot-Datenkommunikationen erzeugt werden.Storage media are different from, but may be used in conjunction with, transmission media. Transmission media participate in a transfer of information between storage media. For example, transmission media include coaxial cable, copper wire and optical fiber, including the wires that the bus 402 includes. Transmission media may also take the form of sound or light waves, such as those generated in 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 404 auszuführen sind. Beispielsweise können die Anweisungen anfänglich auf einer Magnetplatte oder einem Halbleiterlaufwerk (Solid-State-Drive) eines entfernt befindlichen Computers gespeichert sein. Der ferne Computer kann die Anweisungen in seinen dynamischen Speicher laden und die Anweisungen über eine Telefonleitung unter Verwendung eines Modem senden. Ein beim Computersystem 400 befindliches Modem kann die Daten über die Telefonleitung empfangen und einen Infrarot-Sender verwenden, um die Daten in ein Infrarotsignal umzuwandeln. Ein Infrarot-Detektor kann die im Infrarot-Signal beförderten Daten empfangen, und geeignete Schaltungen können die Daten auf den Bus 402 legen. Der Bus 402 befördert die Daten zum Hauptspeicher 406, aus dem der Prozessor 404 die Anweisungen abruft und ausführt. Die vom Hauptspeicher 406 empfangenen Anweisungen können optional in der Speichervorrichtung 410 gespeichert werden, entweder vor oder nach einem Ausführen durch den Prozessor 404.Various forms of media may be involved in the execution of one or more sequences of one or more instructions issued by the processor 404 are to be executed. For example, the instructions may initially be stored on a magnetic disk or a solid state drive of a remote computer. The remote computer can load the instructions into its dynamic memory and send the instructions over a telephone line using a modem. One at the computer system 400 The modem in question may receive the data over the telephone line and use an infrared transmitter to convert the data into an infrared signal. An infrared detector can receive the data carried in the infra-red signal and appropriate circuitry can transfer the data to the bus 402 lay. The bus 402 conveys the data to the main memory 406 from which the processor 404 retrieves and executes the instructions. The main memory 406 Instructions received may optionally be in the storage device 410 stored either before or after being executed by the processor 404 ,

Das Computersystem 400 beinhaltet auch eine Kommunikationsschnittstelle 418, die mit dem Bus 402 verbunden ist. Die Kommunikationsschnittstelle 418 stellt eine Zweiweg-Datenkommunikationsverbindung zu einem Netzwerk-Verbindungsglied 420 bereit, das mit einem lokalen Netzwerk 422 verbunden ist. Beispielsweise kann eine Kommunikationsschnittstelle 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. Als weiteres Beispiel kann eine Kommunikationsschnittstelle 418 eine LAN-Karte (LAN = Local Area Network) sein, um eine Datenkommunikationsverbindung zu einem kompatiblen LAN bereitzustellen. Es können auch Drahtlosverbindungen implementiert werden. Bei einer beliebigen derartigen Implementierung sendet und empfängt eine Kommunikationsschnittstelle 418 elektrische, elektromagnetische oder optische Signale, die digitale Datenströme tragen, welche verschiedene Typen von Information repräsentieren.The computer system 400 also includes a communication interface 418 by bus 402 connected is. The communication interface 418 provides a two-way data communication connection to a network link 420 ready with a local network 422 connected is. For example, a communication interface 418 an Integrated Services Digital Network (ISDN) card, a cable modem, a satellite modem, or a modem to provide a data communication connection to a corresponding type of telephone line. As another example, a communication interface 418 a Local Area Network (LAN) card to provide a data communication connection to a compatible LAN. Wireless connections can also be implemented. In any such implementation, a communication interface sends and receives 418 electrical, electromagnetic or optical signals carrying digital data streams representing various types of information.

Das Netzwerk-Verbindungsglied 420 stellt typischerweise eine Datenkommunikation zu anderen Datengeräten über eines oder mehrere Netzwerke bereit. Beispielsweise kann das Netzwerk-Verbindungsglied 420 über ein lokales Netzwerk 422 eine Verbindung zu einem Host-Computer 424 oder zu Datenanlagen bereitstellen, die durch einen Internetdienstanbieter (ISP) 426 betrieben werden. Der ISP 426 stellt seinerseits Datenkommunikationsdienste über das weltweite Paketdaten-Kommunikationsnetz bereit, das jetzt üblicherweise als „Internet” 428 bezeichnet wird. Sowohl das lokale Netz 422 als auch das Internet 428 verwenden elektrische, elektromagnetische oder optische Signale, die digitale Datenströme tragen können. Die über die verschiedenen Netzwerke laufenden Signale und die Signale, die über das Netzwerk-Verbindungsglied 420 und über die Kommunikationsschnittstelle 418 laufen, welche die digitalen Daten zum Computersystem 400 hin und von diesem weg befördern, sind beispielhafte Formen von Übertragungsmedien.The network link 420 typically provides data communication to other data devices over one or more networks. For example, the network link 420 over a local network 422 a connection to a host computer 424 or to data facilities provided by an Internet Service Provider (ISP) 426 operate. The ISP 426 in turn provides data communication services over the worldwide packet data communications network, now commonly referred to as the "Internet" 428 referred to as. Both the local network 422 as well as the internet 428 use electrical, electromagnetic or optical signals that can carry digital data streams. The signals passing through the various networks and the signals passing through the network link 420 and via the communication interface 418 run the digital data to the computer system 400 to and from this are exemplary forms of transmission media.

Das Computersystem 400 kann Nachrichten und Daten, einschließlich Programmcode, senden und empfangen, und zwar über das/die Netzwerk(e), das Netzwerk-Verbindungsglied 420 und die Kommunikationsschnittstelle 418. In dem Beispiel des Internet könnte ein Server 430 einen angeforderten Code für ein Anwendungsprogramm über das Internet 428, den ISP 426, das lokale Netzwerk 422 und die Kommunikationsschnittstelle 418 senden. Der empfangene Code kann durch den Prozessor 404 ausgeführt werden, und zwar unverändert wie empfangen, und/oder er kann in der Speichervorrichtung 410 oder einem anderen nicht-flüchtigen Speicher für eine spätere Ausführung gespeichert werden.The computer system 400 can send and receive messages and data, including code, through the network (s), the network link 420 and the communication interface 418 , In the example of the Internet could be a server 430 a requested code for an application program over the Internet 428 , the ISP 426 , the local network 422 and the communication interface 418 send. The received code can be processed by the processor 404 be executed, as it is received, and / or it may be in the storage device 410 or other non-volatile memory for later execution.

Claims (16)

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; und Eingeben des Slug für das Objekt in einen Bloomfilter; 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.A method of associating a first object with one or more objects within a plurality of objects, wherein each object has a first plurality of properties, each characteristic having data reflecting an identifier of an entity represented by the object, the associated objects having matching data in have corresponding properties for a second plurality of properties, the method comprising the following operations performed by one or more processors: Execute, for each object within the plurality of objects and for the first object, the following: Generating a slug for the object, the slug having the second plurality of properties of the object; and Entering the slug for the object into a bloom filter; and Generating, for a position in the bloom filter corresponding to the slug for the first object, an association between objects whose slugs match the position if the slugs match for those objects. 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 the plurality of objects. 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. 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; und Assoziieren von Objekten in der Multimap, deren Schlüssel mit dem Slug für das erste Objekt übereinstimmt.The method of claim 1, further comprising determining whether the slugs in the position corresponding to the slug for the first object match the slug for the first object, the following operations being performed by a slug or multiple processors: input, for each slug in the position corresponding to the slug for the first object, the respective slug and its associated object into a multimap, the slug for the respective object being a key to the multimap and its associated object is a value to the multimap; and associating objects in the multimap whose key matches the slug for the first object. 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; und Eingeben des Slug für das Objekt in einen zählenden Bloomfilter; 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; und Assoziieren der Objekte, die als Werte für jeden Schlüssel der Multimap gespeichert sind, mit zwei oder mehr zugehörigen Werten.A method of associating objects within one or more groups of objects within a plurality of objects, wherein each object has a first plurality of properties, each property having data reflecting an identifier of an entity represented by the object, the associated objects being within a plurality of objects Group of objects have matching data in corresponding properties for a second plurality of properties, the method comprising the following operations performed by one or more processors: Execute, for each object within the plurality of objects, the following: Generating a slug for the object, the slug having the second plurality of properties of the object; and Entering the slug for the object into a counting bloom filter; Entering, for each slug created, the slug and its associated object into a multi-map if a position in the counting bloom filter corresponding to the slug has a count greater than 1, the slug being a key to the multi-map and the object a value to which Multimap is; and Associate the objects stored as values for each key of the multimap with two or more associated values. 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 the plurality of objects. 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. Verfahren nach einem der Ansprüche 5 bis 7, wobei jeder Eintrag im zählenden Bloomfilter einen 2-Bit-Zähler aufweist.The method of any of claims 5 to 7, wherein each entry in the counting bloom filter comprises a 2-bit counter. 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 saturation counter. 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.The method of any one of claims 1 to 9, wherein the slug comprises a concatenation of two or more character strings separated by a delimiter between each concatenated character string. 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 comprises a character otherwise not present in the strings that have been concatenated. 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 has a sequence of two or more characters and the sequence of two or more characters is not present in any of the two or more strings that have been concatenated. 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.The method of any one of claims 10 to 12, wherein the number of properties in the first plurality of properties is equal to the number of properties in the second plurality of properties. 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.The method of any of claims 10 to 12, wherein the number of properties in the first plurality of properties is greater than the number of properties in the second plurality of properties. System, aufweisend: eine Speichervorrichtung, die einen Satz von Anweisungen speichert; 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.System comprising: a storage device that stores a set of instructions; and at least one processor executing the set of instructions to perform operations involving the operations of any one of claims 1 to 14. 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.A computer readable medium storing instructions that, when executed by at least one processor, cause the at least one processor to perform operations involving 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 Withdrawn DE102014204830A1 (en)

Applications Claiming Priority (4)

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

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 Withdrawn 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 (128)

* 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
US9392008B1 (en) 2015-07-23 2016-07-12 Palantir Technologies Inc. Systems and methods for identifying information related to payment card breaches
US9390086B2 (en) 2014-09-11 2016-07-12 Palantir Technologies Inc. Classification system with methodology for efficient verification
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
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
US10133588B1 (en) 2016-10-20 2018-11-20 Palantir Technologies Inc. Transforming instructions for collaborative updates
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) 2013-03-15 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
US10318630B1 (en) 2016-11-21 2019-06-11 Palantir Technologies Inc. Analysis of large bodies of textual data
US10356032B2 (en) 2013-12-26 2019-07-16 Palantir Technologies Inc. System and method for detecting confidential information emails
US10360238B1 (en) 2016-12-22 2019-07-23 Palantir Technologies Inc. Database systems and user interfaces for interactive data association, analysis, and presentation
US10362133B1 (en) 2014-12-22 2019-07-23 Palantir Technologies Inc. Communication data processing architecture
US10373099B1 (en) 2015-12-18 2019-08-06 Palantir Technologies Inc. Misalignment detection system for efficiently processing database-stored data and automatically generating misalignment information for display in interactive user interfaces
US10402742B2 (en) 2016-12-16 2019-09-03 Palantir Technologies Inc. Processing sensor logs
US10430444B1 (en) 2017-07-24 2019-10-01 Palantir Technologies Inc. Interactive geospatial map and geospatial visualization systems
US10437450B2 (en) 2014-10-06 2019-10-08 Palantir Technologies Inc. Presentation of multivariate data on a graphical user interface of a computing system
US10444940B2 (en) 2015-08-17 2019-10-15 Palantir Technologies Inc. Interactive geospatial map
US10452651B1 (en) 2014-12-23 2019-10-22 Palantir Technologies Inc. Searching charts
US10452678B2 (en) 2013-03-15 2019-10-22 Palantir Technologies Inc. Filter chains for exploring large data sets
US10484407B2 (en) 2015-08-06 2019-11-19 Palantir Technologies Inc. Systems, methods, user interfaces, and computer-readable media for investigating potential malicious communications
US10509844B1 (en) 2017-01-19 2019-12-17 Palantir Technologies Inc. Network graph parser
US10515109B2 (en) 2017-02-15 2019-12-24 Palantir Technologies Inc. Real-time auditing of industrial equipment condition
US10545975B1 (en) 2016-06-22 2020-01-28 Palantir Technologies Inc. Visual analysis of data using sequenced dataset reduction
US10545982B1 (en) 2015-04-01 2020-01-28 Palantir Technologies Inc. Federated search of multiple sources with conflict resolution
US10552994B2 (en) 2014-12-22 2020-02-04 Palantir Technologies Inc. Systems and interactive user interfaces for dynamic retrieval, analysis, and triage of data items
US10552002B1 (en) 2016-09-27 2020-02-04 Palantir Technologies Inc. User interface based variable machine modeling
US10572487B1 (en) 2015-10-30 2020-02-25 Palantir Technologies Inc. Periodic database search manager for multiple data sources
US10579647B1 (en) 2013-12-16 2020-03-03 Palantir Technologies Inc. Methods and systems for analyzing entity performance
US10581954B2 (en) 2017-03-29 2020-03-03 Palantir Technologies Inc. Metric collection and aggregation for distributed software services
US10585883B2 (en) 2012-09-10 2020-03-10 Palantir Technologies Inc. Search around visual queries
US10606872B1 (en) 2017-05-22 2020-03-31 Palantir Technologies Inc. Graphical user interface for a database system
US10628834B1 (en) 2015-06-16 2020-04-21 Palantir Technologies Inc. Fraud lead detection system for efficiently processing database-stored data and automatically generating natural language explanatory information of system results for display in interactive user interfaces
US10636097B2 (en) 2015-07-21 2020-04-28 Palantir Technologies Inc. Systems and models for data analytics
US10691662B1 (en) 2012-12-27 2020-06-23 Palantir Technologies Inc. Geo-temporal indexing and searching
US10698938B2 (en) 2016-03-18 2020-06-30 Palantir Technologies Inc. Systems and methods for organizing and identifying documents via hierarchies and dimensions of tags
US10706434B1 (en) 2015-09-01 2020-07-07 Palantir Technologies Inc. Methods and systems for determining location information
US10706056B1 (en) 2015-12-02 2020-07-07 Palantir Technologies Inc. Audit log report generator
US10721262B2 (en) 2016-12-28 2020-07-21 Palantir Technologies Inc. Resource-centric network cyber attack warning system
US10719527B2 (en) 2013-10-18 2020-07-21 Palantir Technologies Inc. Systems and user interfaces for dynamic and interactive simultaneous querying of multiple data stores
US10728262B1 (en) 2016-12-21 2020-07-28 Palantir Technologies Inc. Context-aware network-based malicious activity warning systems
US10726507B1 (en) 2016-11-11 2020-07-28 Palantir Technologies Inc. Graphical representation of a complex task
US10754946B1 (en) 2018-05-08 2020-08-25 Palantir Technologies Inc. Systems and methods for implementing a machine learning approach to modeling entity behavior
US10754822B1 (en) 2018-04-18 2020-08-25 Palantir Technologies Inc. Systems and methods for ontology migration
US10762471B1 (en) 2017-01-09 2020-09-01 Palantir Technologies Inc. Automating management of integrated workflows based on disparate subsidiary data sources
US10762102B2 (en) 2013-06-20 2020-09-01 Palantir Technologies Inc. System and method for incremental replication
US10769171B1 (en) 2017-12-07 2020-09-08 Palantir Technologies Inc. Relationship analysis and mapping for interrelated multi-layered datasets
US10783162B1 (en) 2017-12-07 2020-09-22 Palantir Technologies Inc. Workflow assistant
US10795749B1 (en) 2017-05-31 2020-10-06 Palantir Technologies Inc. Systems and methods for providing fault analysis user interface
US10795909B1 (en) 2018-06-14 2020-10-06 Palantir Technologies Inc. Minimized and collapsed resource dependency path
US10838987B1 (en) 2017-12-20 2020-11-17 Palantir Technologies Inc. Adaptive and transparent entity screening
US10853454B2 (en) 2014-03-21 2020-12-01 Palantir Technologies Inc. Provider portal
US10866936B1 (en) 2017-03-29 2020-12-15 Palantir Technologies Inc. Model object management and storage system
US10871878B1 (en) 2015-12-29 2020-12-22 Palantir Technologies Inc. System log analysis and object user interaction correlation system
US10877654B1 (en) 2018-04-03 2020-12-29 Palantir Technologies Inc. Graphical user interfaces for optimizations
US10877984B1 (en) 2017-12-07 2020-12-29 Palantir Technologies Inc. Systems and methods for filtering and visualizing large scale datasets
US10885021B1 (en) 2018-05-02 2021-01-05 Palantir Technologies Inc. Interactive interpreter and graphical user interface
US10909130B1 (en) 2016-07-01 2021-02-02 Palantir Technologies Inc. Graphical user interface for a database system
US10956406B2 (en) 2017-06-12 2021-03-23 Palantir Technologies Inc. Propagated deletion of database records and derived data
US10970261B2 (en) 2013-07-05 2021-04-06 Palantir Technologies Inc. System and method for data quality monitors
US11004244B2 (en) 2014-10-03 2021-05-11 Palantir Technologies Inc. Time-series analysis system
US11035690B2 (en) 2009-07-27 2021-06-15 Palantir Technologies Inc. Geotagging structured data
US11061874B1 (en) 2017-12-14 2021-07-13 Palantir Technologies Inc. Systems and methods for resolving entity data across various data structures
US11061542B1 (en) 2018-06-01 2021-07-13 Palantir Technologies Inc. Systems and methods for determining and displaying optimal associations of data items
US11074277B1 (en) 2017-05-01 2021-07-27 Palantir Technologies Inc. Secure resolution of canonical entities
US11106692B1 (en) 2016-08-04 2021-08-31 Palantir Technologies Inc. Data record resolution and correlation system
US11119630B1 (en) 2018-06-19 2021-09-14 Palantir Technologies Inc. Artificial intelligence assisted evaluations and user interface for same
US11126638B1 (en) 2018-09-13 2021-09-21 Palantir Technologies Inc. Data visualization and parsing system
US11150917B2 (en) 2015-08-26 2021-10-19 Palantir Technologies Inc. System for data aggregation and analysis of data from a plurality of data sources
US11216762B1 (en) 2017-07-13 2022-01-04 Palantir Technologies Inc. Automated risk visualization using customer-centric data analysis
US11250425B1 (en) 2016-11-30 2022-02-15 Palantir Technologies Inc. Generating a statistic using electronic transaction data
US11263382B1 (en) 2017-12-22 2022-03-01 Palantir Technologies Inc. Data normalization and irregularity detection system
US11281726B2 (en) 2017-12-01 2022-03-22 Palantir Technologies Inc. System and methods for faster processor comparisons of visual graph features
US11294928B1 (en) 2018-10-12 2022-04-05 Palantir Technologies Inc. System architecture for relating and linking data objects
US11302426B1 (en) 2015-01-02 2022-04-12 Palantir Technologies Inc. Unified data interface and system
US11314721B1 (en) 2017-12-07 2022-04-26 Palantir Technologies Inc. User-interactive defect analysis for root cause
US11373752B2 (en) 2016-12-22 2022-06-28 Palantir Technologies Inc. Detection of misuse of a benefit system
US11521096B2 (en) 2014-07-22 2022-12-06 Palantir Technologies Inc. System and method for determining a propensity of entity to take a specified action
US11954300B2 (en) 2021-01-29 2024-04-09 Palantir Technologies Inc. User interface based variable machine modeling

Cited By (199)

* 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
US10733200B2 (en) 2007-10-18 2020-08-04 Palantir Technologies Inc. Resolving database entity information
US9846731B2 (en) 2007-10-18 2017-12-19 Palantir Technologies, Inc. Resolving database entity information
US10747952B2 (en) 2008-09-15 2020-08-18 Palantir Technologies, Inc. Automatic creation and server push of multiple distinct drafts
US9348499B2 (en) 2008-09-15 2016-05-24 Palantir Technologies, Inc. Sharing objects that rely on local resources with outside servers
US11035690B2 (en) 2009-07-27 2021-06-15 Palantir Technologies Inc. Geotagging structured data
US11693877B2 (en) 2011-03-31 2023-07-04 Palantir Technologies Inc. Cross-ontology multi-master replication
US9880987B2 (en) 2011-08-25 2018-01-30 Palantir Technologies, Inc. System and method for parameterizing documents for automatic workflow generation
US10706220B2 (en) 2011-08-25 2020-07-07 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
US10585883B2 (en) 2012-09-10 2020-03-10 Palantir Technologies Inc. Search around visual queries
US11182204B2 (en) 2012-10-22 2021-11-23 Palantir Technologies Inc. System and method for batch evaluation programs
US9898335B1 (en) 2012-10-22 2018-02-20 Palantir Technologies Inc. System and method for batch evaluation programs
US10691662B1 (en) 2012-12-27 2020-06-23 Palantir Technologies Inc. Geo-temporal indexing and searching
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
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
US10275778B1 (en) 2013-03-15 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
US10452678B2 (en) 2013-03-15 2019-10-22 Palantir Technologies Inc. Filter chains for exploring large data sets
US10977279B2 (en) 2013-03-15 2021-04-13 Palantir Technologies Inc. Time-sensitive cube
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
US10360705B2 (en) 2013-05-07 2019-07-23 Palantir Technologies Inc. Interactive data object map
US9953445B2 (en) 2013-05-07 2018-04-24 Palantir Technologies Inc. Interactive data object map
US10762102B2 (en) 2013-06-20 2020-09-01 Palantir Technologies Inc. System and method for incremental replication
US10970261B2 (en) 2013-07-05 2021-04-06 Palantir Technologies Inc. System and method for data quality monitors
US9785317B2 (en) 2013-09-24 2017-10-10 Palantir Technologies Inc. Presentation and analysis of user interaction data
US10732803B2 (en) 2013-09-24 2020-08-04 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
US10635276B2 (en) 2013-10-07 2020-04-28 Palantir Technologies Inc. Cohort-based presentation of user interaction data
US10719527B2 (en) 2013-10-18 2020-07-21 Palantir Technologies Inc. Systems and user interfaces for dynamic and interactive simultaneous querying of multiple data stores
US11138279B1 (en) 2013-12-10 2021-10-05 Palantir Technologies Inc. System and method for aggregating data from a plurality of data sources
US10198515B1 (en) 2013-12-10 2019-02-05 Palantir Technologies Inc. System and method for aggregating data from a plurality of data sources
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
US10579647B1 (en) 2013-12-16 2020-03-03 Palantir Technologies Inc. Methods and systems for analyzing entity performance
US9734217B2 (en) 2013-12-16 2017-08-15 Palantir Technologies Inc. Methods and systems for analyzing entity performance
US10356032B2 (en) 2013-12-26 2019-07-16 Palantir Technologies Inc. System and method for detecting confidential information emails
US10805321B2 (en) 2014-01-03 2020-10-13 Palantir Technologies Inc. System and method for evaluating network threats and usage
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
US10853454B2 (en) 2014-03-21 2020-12-01 Palantir Technologies Inc. Provider portal
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
US11341178B2 (en) 2014-06-30 2022-05-24 Palantir Technologies Inc. Systems and methods for key phrase characterization of documents
US9619557B2 (en) 2014-06-30 2017-04-11 Palantir Technologies, Inc. Systems and methods for key phrase characterization of documents
US10180929B1 (en) 2014-06-30 2019-01-15 Palantir Technologies, Inc. Systems and methods for identifying key phrase clusters within documents
US10162887B2 (en) 2014-06-30 2018-12-25 Palantir Technologies Inc. Systems and methods for key phrase characterization of 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
US10929436B2 (en) 2014-07-03 2021-02-23 Palantir Technologies Inc. System and method for news events detection and visualization
US11521096B2 (en) 2014-07-22 2022-12-06 Palantir Technologies Inc. System and method for determining a propensity of entity to take a specified action
US11861515B2 (en) 2014-07-22 2024-01-02 Palantir Technologies Inc. System and method for determining a propensity of entity to take a specified action
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
US11004244B2 (en) 2014-10-03 2021-05-11 Palantir Technologies Inc. Time-series analysis system
US10664490B2 (en) 2014-10-03 2020-05-26 Palantir Technologies Inc. Data aggregation and analysis system
US10437450B2 (en) 2014-10-06 2019-10-08 Palantir Technologies Inc. Presentation of multivariate data on a graphical user interface of a computing system
US10191926B2 (en) 2014-11-05 2019-01-29 Palantir Technologies, Inc. Universal data pipeline
US9946738B2 (en) 2014-11-05 2018-04-17 Palantir Technologies, Inc. Universal data pipeline
US10853338B2 (en) 2014-11-05 2020-12-01 Palantir Technologies Inc. Universal data pipeline
US10135863B2 (en) 2014-11-06 2018-11-20 Palantir Technologies Inc. Malicious software detection in a computing system
US10728277B2 (en) 2014-11-06 2020-07-28 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
US9898528B2 (en) 2014-12-22 2018-02-20 Palantir Technologies Inc. Concept indexing among database of documents using machine learning techniques
US10362133B1 (en) 2014-12-22 2019-07-23 Palantir Technologies Inc. Communication data processing architecture
US10552994B2 (en) 2014-12-22 2020-02-04 Palantir Technologies Inc. Systems and interactive user interfaces for dynamic retrieval, analysis, and triage of data items
US9348920B1 (en) 2014-12-22 2016-05-24 Palantir Technologies Inc. Concept indexing among database of documents using machine learning techniques
US11252248B2 (en) 2014-12-22 2022-02-15 Palantir Technologies Inc. Communication data processing architecture
US10452651B1 (en) 2014-12-23 2019-10-22 Palantir Technologies Inc. Searching charts
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
US10552998B2 (en) 2014-12-29 2020-02-04 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
US9870389B2 (en) 2014-12-29 2018-01-16 Palantir Technologies Inc. Interactive user interface for dynamic data analysis exploration and query processing
US11302426B1 (en) 2015-01-02 2022-04-12 Palantir Technologies Inc. Unified data interface and system
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
US10474326B2 (en) 2015-02-25 2019-11-12 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
US10459619B2 (en) 2015-03-16 2019-10-29 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
US10545982B1 (en) 2015-04-01 2020-01-28 Palantir Technologies Inc. Federated search of multiple sources with conflict resolution
US10103953B1 (en) 2015-05-12 2018-10-16 Palantir Technologies Inc. Methods and systems for analyzing entity performance
US10628834B1 (en) 2015-06-16 2020-04-21 Palantir Technologies Inc. Fraud lead detection system for efficiently processing database-stored data and automatically generating natural language explanatory information of system results for display in interactive user interfaces
US10636097B2 (en) 2015-07-21 2020-04-28 Palantir Technologies Inc. Systems and models for data analytics
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
US10484407B2 (en) 2015-08-06 2019-11-19 Palantir Technologies Inc. Systems, methods, user interfaces, and computer-readable media for investigating potential malicious communications
US10444941B2 (en) 2015-08-17 2019-10-15 Palantir Technologies Inc. Interactive geospatial map
US10444940B2 (en) 2015-08-17 2019-10-15 Palantir Technologies Inc. Interactive geospatial map
US11392591B2 (en) 2015-08-19 2022-07-19 Palantir Technologies Inc. Systems and methods for automatic clustering and canonical designation of related data in various data structures
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
US10579950B1 (en) 2015-08-20 2020-03-03 Palantir Technologies Inc. Quantifying, tracking, and anticipating risk at a manufacturing facility based on staffing conditions and textual descriptions of deviations
US11150629B2 (en) 2015-08-20 2021-10-19 Palantir Technologies Inc. Quantifying, tracking, and anticipating risk at a manufacturing facility based on staffing conditions and textual descriptions of deviations
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
US11934847B2 (en) 2015-08-26 2024-03-19 Palantir Technologies Inc. System for data aggregation and analysis of data from a plurality of data sources
US11150917B2 (en) 2015-08-26 2021-10-19 Palantir Technologies Inc. System for data aggregation and analysis of data from a plurality of data sources
US10346410B2 (en) 2015-08-28 2019-07-09 Palantir Technologies Inc. Malicious activity detection system capable of efficiently processing data accessed from databases and generating alerts for display in interactive user interfaces
US11048706B2 (en) 2015-08-28 2021-06-29 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
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
US10706434B1 (en) 2015-09-01 2020-07-07 Palantir Technologies Inc. Methods and systems for determining location information
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
US11080296B2 (en) 2015-09-09 2021-08-03 Palantir Technologies Inc. Domain-specific language for dataset transformations
US9424669B1 (en) 2015-10-21 2016-08-23 Palantir Technologies Inc. Generating graphical representations of event participation flow
US10192333B1 (en) 2015-10-21 2019-01-29 Palantir Technologies Inc. Generating graphical representations of event participation flow
US10572487B1 (en) 2015-10-30 2020-02-25 Palantir Technologies Inc. Periodic database search manager for multiple data sources
US10706056B1 (en) 2015-12-02 2020-07-07 Palantir Technologies Inc. Audit log report generator
US9760556B1 (en) 2015-12-11 2017-09-12 Palantir Technologies Inc. Systems and methods for annotating and linking electronic documents
US10817655B2 (en) 2015-12-11 2020-10-27 Palantir Technologies Inc. Systems and methods for annotating and linking electronic documents
US9514414B1 (en) 2015-12-11 2016-12-06 Palantir Technologies Inc. Systems and methods for identifying and categorizing electronic documents through machine learning
US11106701B2 (en) 2015-12-16 2021-08-31 Palantir Technologies Inc. Systems and methods for attribute analysis of one or more databases
US10114884B1 (en) 2015-12-16 2018-10-30 Palantir Technologies Inc. Systems and methods for attribute analysis of one or more databases
US10373099B1 (en) 2015-12-18 2019-08-06 Palantir Technologies Inc. Misalignment detection system for efficiently processing database-stored data and automatically generating misalignment information for display in interactive user interfaces
US11829928B2 (en) 2015-12-18 2023-11-28 Palantir Technologies Inc. Misalignment detection system for efficiently processing database-stored data and automatically generating misalignment information for display in interactive user interfaces
US10871878B1 (en) 2015-12-29 2020-12-22 Palantir Technologies Inc. System log analysis and object user interaction correlation system
US10460486B2 (en) 2015-12-30 2019-10-29 Palantir Technologies Inc. Systems for collecting, aggregating, and storing data, generating interactive user interfaces for analyzing data, and generating alerts based upon collected 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
US10698938B2 (en) 2016-03-18 2020-06-30 Palantir Technologies Inc. Systems and methods for organizing and identifying documents via hierarchies and dimensions of tags
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
US11106638B2 (en) 2016-06-13 2021-08-31 Palantir Technologies Inc. Data revision control in large-scale data analytic systems
US11269906B2 (en) 2016-06-22 2022-03-08 Palantir Technologies Inc. Visual analysis of data using sequenced dataset reduction
US10545975B1 (en) 2016-06-22 2020-01-28 Palantir Technologies Inc. Visual analysis of data using sequenced dataset reduction
US10909130B1 (en) 2016-07-01 2021-02-02 Palantir Technologies Inc. Graphical user interface for a database system
US11106692B1 (en) 2016-08-04 2021-08-31 Palantir Technologies Inc. Data record resolution and correlation system
US10552002B1 (en) 2016-09-27 2020-02-04 Palantir Technologies Inc. User interface based variable machine modeling
US10942627B2 (en) 2016-09-27 2021-03-09 Palantir Technologies Inc. User interface based variable machine modeling
US10133588B1 (en) 2016-10-20 2018-11-20 Palantir Technologies Inc. Transforming instructions for collaborative updates
US11715167B2 (en) 2016-11-11 2023-08-01 Palantir Technologies Inc. Graphical representation of a complex task
US10726507B1 (en) 2016-11-11 2020-07-28 Palantir Technologies Inc. Graphical representation of a complex task
US11227344B2 (en) 2016-11-11 2022-01-18 Palantir Technologies Inc. Graphical representation of a complex task
US11468450B2 (en) 2016-11-21 2022-10-11 Palantir Technologies Inc. System to identify vulnerable card readers
US10796318B2 (en) 2016-11-21 2020-10-06 Palantir Technologies Inc. System to identify vulnerable card readers
US10318630B1 (en) 2016-11-21 2019-06-11 Palantir Technologies Inc. Analysis of large bodies of textual data
US10176482B1 (en) 2016-11-21 2019-01-08 Palantir Technologies Inc. System to identify vulnerable card readers
US11250425B1 (en) 2016-11-30 2022-02-15 Palantir Technologies Inc. Generating a statistic using electronic transaction data
US10885456B2 (en) 2016-12-16 2021-01-05 Palantir Technologies Inc. Processing sensor logs
US10402742B2 (en) 2016-12-16 2019-09-03 Palantir Technologies Inc. Processing sensor logs
US9886525B1 (en) 2016-12-16 2018-02-06 Palantir Technologies Inc. Data item aggregate probability analysis system
US10839504B2 (en) 2016-12-20 2020-11-17 Palantir Technologies Inc. User interface for managing defects
US10249033B1 (en) 2016-12-20 2019-04-02 Palantir Technologies Inc. User interface for managing defects
US10728262B1 (en) 2016-12-21 2020-07-28 Palantir Technologies Inc. Context-aware network-based malicious activity warning systems
US11373752B2 (en) 2016-12-22 2022-06-28 Palantir Technologies Inc. Detection of misuse of a benefit system
US10360238B1 (en) 2016-12-22 2019-07-23 Palantir Technologies Inc. Database systems and user interfaces for interactive data association, analysis, and presentation
US11250027B2 (en) 2016-12-22 2022-02-15 Palantir Technologies Inc. Database systems and user interfaces for interactive data association, analysis, and presentation
US10721262B2 (en) 2016-12-28 2020-07-21 Palantir Technologies Inc. Resource-centric network cyber attack warning system
US10762471B1 (en) 2017-01-09 2020-09-01 Palantir Technologies Inc. Automating management of integrated workflows based on disparate subsidiary data sources
US11892901B2 (en) 2017-01-18 2024-02-06 Palantir Technologies Inc. Data analysis system to facilitate investigative process
US11126489B2 (en) 2017-01-18 2021-09-21 Palantir Technologies Inc. Data analysis system to facilitate investigative process
US10133621B1 (en) 2017-01-18 2018-11-20 Palantir Technologies Inc. Data analysis system to facilitate investigative process
US10509844B1 (en) 2017-01-19 2019-12-17 Palantir Technologies Inc. Network graph parser
US10515109B2 (en) 2017-02-15 2019-12-24 Palantir Technologies Inc. Real-time auditing of industrial equipment condition
US11526471B2 (en) 2017-03-29 2022-12-13 Palantir Technologies Inc. Model object management and storage system
US10581954B2 (en) 2017-03-29 2020-03-03 Palantir Technologies Inc. Metric collection and aggregation for distributed software services
US10866936B1 (en) 2017-03-29 2020-12-15 Palantir Technologies Inc. Model object management and storage system
US11907175B2 (en) 2017-03-29 2024-02-20 Palantir Technologies Inc. Model object management and storage system
US10915536B2 (en) 2017-04-11 2021-02-09 Palantir Technologies Inc. Systems and methods for constraint driven database searching
US10133783B2 (en) 2017-04-11 2018-11-20 Palantir Technologies Inc. Systems and methods for constraint driven database searching
US11074277B1 (en) 2017-05-01 2021-07-27 Palantir Technologies Inc. Secure resolution of canonical entities
US10606872B1 (en) 2017-05-22 2020-03-31 Palantir Technologies Inc. Graphical user interface for a database system
US10795749B1 (en) 2017-05-31 2020-10-06 Palantir Technologies Inc. Systems and methods for providing fault analysis user interface
US10956406B2 (en) 2017-06-12 2021-03-23 Palantir Technologies Inc. Propagated deletion of database records and derived data
US11216762B1 (en) 2017-07-13 2022-01-04 Palantir Technologies Inc. Automated risk visualization using customer-centric data analysis
US11769096B2 (en) 2017-07-13 2023-09-26 Palantir Technologies Inc. Automated risk visualization using customer-centric data analysis
US10430444B1 (en) 2017-07-24 2019-10-01 Palantir Technologies Inc. Interactive geospatial map and geospatial visualization systems
US11269931B2 (en) 2017-07-24 2022-03-08 Palantir Technologies Inc. Interactive geospatial map and geospatial visualization systems
US11281726B2 (en) 2017-12-01 2022-03-22 Palantir Technologies Inc. System and methods for faster processor comparisons of visual graph features
US10235533B1 (en) 2017-12-01 2019-03-19 Palantir Technologies Inc. Multi-user access controls in electronic simultaneously editable document editor
US11308117B2 (en) 2017-12-07 2022-04-19 Palantir Technologies Inc. Relationship analysis and mapping for interrelated multi-layered datasets
US11314721B1 (en) 2017-12-07 2022-04-26 Palantir Technologies Inc. User-interactive defect analysis for root cause
US11874850B2 (en) 2017-12-07 2024-01-16 Palantir Technologies Inc. Relationship analysis and mapping for interrelated multi-layered datasets
US10769171B1 (en) 2017-12-07 2020-09-08 Palantir Technologies Inc. Relationship analysis and mapping for interrelated multi-layered datasets
US10783162B1 (en) 2017-12-07 2020-09-22 Palantir Technologies Inc. Workflow assistant
US10877984B1 (en) 2017-12-07 2020-12-29 Palantir Technologies Inc. Systems and methods for filtering and visualizing large scale datasets
US11789931B2 (en) 2017-12-07 2023-10-17 Palantir Technologies Inc. User-interactive defect analysis for root cause
US11061874B1 (en) 2017-12-14 2021-07-13 Palantir Technologies Inc. Systems and methods for resolving entity data across various data structures
US10838987B1 (en) 2017-12-20 2020-11-17 Palantir Technologies Inc. Adaptive and transparent entity screening
US11263382B1 (en) 2017-12-22 2022-03-01 Palantir Technologies Inc. Data normalization and irregularity detection system
US10877654B1 (en) 2018-04-03 2020-12-29 Palantir Technologies Inc. Graphical user interfaces for optimizations
US10754822B1 (en) 2018-04-18 2020-08-25 Palantir Technologies Inc. Systems and methods for ontology migration
US10885021B1 (en) 2018-05-02 2021-01-05 Palantir Technologies Inc. Interactive interpreter and graphical user interface
US10754946B1 (en) 2018-05-08 2020-08-25 Palantir Technologies Inc. Systems and methods for implementing a machine learning approach to modeling entity behavior
US11507657B2 (en) 2018-05-08 2022-11-22 Palantir Technologies Inc. Systems and methods for implementing a machine learning approach to modeling entity behavior
US11928211B2 (en) 2018-05-08 2024-03-12 Palantir Technologies Inc. Systems and methods for implementing a machine learning approach to modeling entity behavior
US11061542B1 (en) 2018-06-01 2021-07-13 Palantir Technologies Inc. Systems and methods for determining and displaying optimal associations of data items
US10795909B1 (en) 2018-06-14 2020-10-06 Palantir Technologies Inc. Minimized and collapsed resource dependency path
US11119630B1 (en) 2018-06-19 2021-09-14 Palantir Technologies Inc. Artificial intelligence assisted evaluations and user interface for same
US11126638B1 (en) 2018-09-13 2021-09-21 Palantir Technologies Inc. Data visualization and parsing system
US11294928B1 (en) 2018-10-12 2022-04-05 Palantir Technologies Inc. System architecture for relating and linking data objects
US11954300B2 (en) 2021-01-29 2024-04-09 Palantir Technologies Inc. User interface based variable machine modeling

Also Published As

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

Similar Documents

Publication Publication Date Title
DE102014204830A1 (en) Computer-implemented systems and methods for comparing and associating objects
DE102014204834A1 (en) Computer-implemented systems and methods for comparing and associating objects
DE69831708T2 (en) Efficient detection of computer viruses and other data properties
DE112020002600T5 (en) DISCOVERING A SEMANTIC MEANING OF DATA FIELDS USING PROFILE DATA OF THE DATA FIELDS
DE10300545B4 (en) Device, method, storage medium and data structure for the identification and storage of data
DE102014213036A1 (en) Data Quality Monitors
DE102014204827A1 (en) Explode similar entities from a transactional database
DE202012013462U1 (en) Data processing in a Mapreduce framework
DE102012212999A1 (en) Detecting components of a bundled software product
DE60127889T2 (en) Method of detecting double images in an automatic album system
EP3267625B1 (en) Method for detection of abnormal conditions in a computer network
DE102014116369A1 (en) MANAGEMENT OF LANGUAGE MARKERS IN INTERNATIONAL DATA STORAGE
DE112012004331T5 (en) Use the strength of traceability links to monitor software development integrity
DE102014208212A1 (en) Derive a device-specific value
EP3563261B1 (en) Bit-sequence-based data classification system
CH712988A1 (en) A method of searching data to prevent data loss.
AT522281B1 (en) Procedure for characterizing the operating state of a computer system
EP3134842B1 (en) Computing device and method for detecting attacks on a technical system based on events of an event sequence
DE102019211089A1 (en) Device and method for taking countermeasures against unauthorized access to a vehicle
DE102022102228A1 (en) HASH WITH DIFFERENT HASH SIZE AND COMPRESSION SIZE
DE102014116117B4 (en) Method and system for mining patterns in a data set
EP3961447A1 (en) Method for detecting abnormal operating states of a computer system
DE102012218268A1 (en) Manage digital signatures
DE112012002268B4 (en) Modifying packages to save disk space
EP4345723A1 (en) Detecting misused payment transactions

Legal Events

Date Code Title Description
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0017300000

Ipc: G06F0016000000

R005 Application deemed withdrawn due to failure to request examination