DE102014215621A1 - Template system for generating customized documents - Google Patents

Template system for generating customized documents Download PDF

Info

Publication number
DE102014215621A1
DE102014215621A1 DE201410215621 DE102014215621A DE102014215621A1 DE 102014215621 A1 DE102014215621 A1 DE 102014215621A1 DE 201410215621 DE201410215621 DE 201410215621 DE 102014215621 A DE102014215621 A DE 102014215621A DE 102014215621 A1 DE102014215621 A1 DE 102014215621A1
Authority
DE
Germany
Prior art keywords
template
document
data objects
xml
instructions
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE201410215621
Other languages
German (de)
Inventor
Andy Isaacson
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/148,568 external-priority patent/US9223773B2/en
Application filed by Palantir Technologies Inc filed Critical Palantir Technologies Inc
Publication of DE102014215621A1 publication Critical patent/DE102014215621A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/427Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/186Templates

Abstract

Systeme und Verfahren für ein flexibles Generieren von benutzerangepassten Dokumenten aus Datenobjekten werden hier beschrieben. Vorlagen mit eingebetteten Code-Anweisungen, die getrennt von einem Dokument-Lese- oder -Editierprogramm ausgewertet werden können, können verwendet werden, um benutzerangepasste Dokumente zu generieren. Das Vorlagensystem kann die eingebetteten Code-Anweisungen verwenden, um auf Eigenschaften von Datenobjekten dynamisch zuzugreifen. Ein Editierprogramm kann anfänglich verwendet werden, um ein Testmodell-Dokument (Mockup-Dokument) zu generieren, das als Basis für eine Vorlage verwendet werden kann.Systems and methods for flexibly generating customized documents from data objects are described herein. Templates with embedded code instructions that can be evaluated separately from a document reader or editor can be used to generate customized documents. The template system can use the embedded code instructions to dynamically access properties of data objects. An editing program can initially be used to generate a test model document (mockup document) that can be used as the basis for a template.

Figure DE102014215621A1_0001
Figure DE102014215621A1_0001

Description

Diese Anmeldung beansprucht die Priorität der provisorischen U.S.-Patentanmeldung Serien-Nr. 61/909,949, eingereicht am 27. November 2013, wobei deren Offenbarung hiermit durch Bezugnahme vollinhaltlich in das vorliegende Dokument aufgenommen wird.This application claims the benefit of U.S. Provisional Patent Application Ser. No. 61 / 909,949 filed Nov. 27, 2013, the disclosure of which is hereby incorporated herein by reference in its entirety.

Außerdem beansprucht diese Anmeldung die Priorität der provisorischen U.S.-Patentanmeldung Serien-Nr. 61/863,792 mit dem Titel „Cable Reader Labeling”, eingereicht am 8. August 2013, und die Priorität der provisorischen U.S.-Patentanmeldung Serien-Nr. 61/863,814 mit dem Titel „Cable Reader Snippets and Postboard”, eingereicht am 8. August 2013, wobei deren Offenbarungen hiermit durch Bezugnahme vollinhaltlich in das vorliegende Dokument aufgenommen werden und auf diese Anmeldungen hier insgesamt als „Schnipsel-Quellenangaben” („Snippet References”) Bezug genommen wird.In addition, this application claims the priority of U.S. provisional patent application Ser. No. 61 / 863,792, entitled "Cable Reader Labeling," filed Aug. 8, 2013, and the priority of U.S. Provisional Patent Application Ser. No. 61 / 863,814, entitled "Cable Reader Snippets and Postboard," filed Aug. 8, 2013, the disclosures of which are hereby incorporated herein by reference in their entireties and are incorporated herein by reference in their entirety as "Snippet References." ").

Diese Anmeldung bezieht sich auf das U.S.-Patent 8,489,623 mit dem Titel „Creating Data in a Data Store Using a Dynamic Ontology”, eingereicht am 12. Mai 2011, wobei dessen Offenbarung hiermit durch Bezugnahme vollinhaltlich in das vorliegende Dokument aufgenommen wird und auf das Patent hier als „Ontologie-Quellenangabe” Bezug genommen wird.This application is related to US Pat. No. 8,489,623 entitled "Creating Data in a Data Store Using a Dynamic Ontology" filed on May 12, 2011, the disclosure of which is hereby incorporated herein by reference in its entirety and in the patent here referred to as "ontology citation".

Auf dem Gebiet computerbasierter Plattformen können Dokumente aus strukturierten Daten programmatisch generiert werden.In the field of computer-based platforms, documents can be programmatically generated from structured data.

Die hier beschriebenen Systeme, Verfahren und Techniken haben jeweils mehrere Aspekte, wobei kein einzelner von diesen allein für deren gewünschte Attribute verantwortlich ist. Ohne Einschränkung des Schutzumfangs dieser Offenbarung werden nachfolgend mehrere nicht einschränkende Merkmale kurz erörtert.The systems, methods, and techniques described herein each have several aspects, with no single one being solely responsible for their desired attributes. Without limiting the scope of this disclosure, several non-limiting features are briefly discussed below.

Bei einigen Ausführungsformen weist ein Computersystem zum Generieren von benutzerangepassten vorlagenbasierten Dokumenten eine Vorlagen-Speichervorrichtung auf. Das Computersystem kann weiter einen oder mehrere Hardware-Prozessoren aufweisen, die mittels ausführbarer Code-Anweisungen programmiert werden. Bei ihrer Ausführung können die ausführbaren Code-Anweisungen das Computersystem veranlassen, einen Vorlagengenerator zu implementieren. Der Vorlagengenerator kann konfiguriert sein, um auf eine Platzhalter-Vorlage zuzugreifen, die eine oder mehrere Platzhalter aufweist, welche Orte zum Einfügen von ausführbaren Anweisungen angeben. Der Vorlagengenerator kann weiter konfiguriert sein, ausführbare Anweisungen zu erhalten, die in die Platzhalter-Vorlage zu inkludieren sind. Der Vorlagengenerator kann weiter konfiguriert sein, um in der Vorlagen-Speichervorrichtung eine Vorlage zu speichern, die einen oder mehrere Sätze der erhaltenen ausführbaren Anweisungen beinhaltet, welche in entsprechende Platzhalter der Platzhalter-Vorlage eingefügt sind. Bei weiterer Ausführung der ausführbaren Code-Anweisungen können diese das Computersystem veranlassen, eine Vorlagen-Auswahleinheit zu implementieren. Die Vorlagen-Auswahleinheit kann konfiguriert sein, um eine Auswahl der Vorlage und eine Auswahl eines oder mehrerer Datenobjekte zu empfangen, die in ein generiertes benutzerangepasstes Dokument zu inkludieren sind, basierend auf Eigenschaften des einen oder der mehreren Datenobjekte. Bei weiterer Ausführung der ausführbaren Code-Anweisungen können diese das Computersystem veranlassen, einen Vorlagen-Prozessor zu implementieren. Der Vorlagen-Prozessor kann konfiguriert sein, um den einen oder die mehreren Sätze von ausführbaren Anweisungen, die in die Vorlage inkludiert sind, zu parsen. Der Vorlagen-Prozessor kann weiter konfiguriert sein, um einen jeweiligen Satz von ausführbaren Anweisungen auszuführen, wobei zumindest einige Sätze von ausführbaren Anweisungen Anweisungen beinhalten, um auf Eigenschaften der ausgewählten Datenobjekte zuzugreifen, die in einer oder mehreren Datenquellen gespeichert sind. Der Vorlagen-Prozessor kann weiter konfiguriert sein, um eine Ausgabe für einen jeweiligen Satz von ausführbaren Anweisungen zu generieren. Der Vorlagen-Prozessor kann weiter konfiguriert sein, um das benutzerangepasste Dokument zu generieren, und zwar dadurch, dass Sätze von ausführbaren Anweisungen in der Vorlage durch die Ausgabe ersetzt werden, die durch Ausführen entsprechender Sätze von ausführbaren Anweisungen generiert wird. Zumindest ein Teil der Ausgabe beinhaltet Eigenschaften der ausgewählten Datenobjekte und/oder Übersichtsdaten betreffend die Eigenschaften der ausgewählten Datenobjekte.In some embodiments, a computer system for generating customized template-based documents comprises a template storage device. The computer system may further include one or more hardware processors programmed by executable code instructions. When executed, the executable code instructions may cause the computer system to implement a template generator. The template generator may be configured to access a placeholder template having one or more placeholders indicating locations for inserting executable statements. The template generator may be further configured to receive executable instructions to be included in the wildcard template. The template generator may be further configured to store in the template storage device a template containing one or more sets of the obtained executable instructions inserted into corresponding placeholders of the placeholder template. Upon further execution of the executable code instructions, they may cause the computer system to implement a template selection unit. The template selection unit may be configured to receive a selection of the template and a selection of one or more data objects to be included in a generated user-customized document based on properties of the one or more data objects. Upon further execution of the executable code instructions, these may cause the computer system to implement a template processor. The template processor may be configured to parse the one or more sets of executable instructions included in the template. The template processor may be further configured to execute a respective set of executable instructions, wherein at least some sets of executable instructions include instructions to access properties of the selected data objects stored in one or more data sources. The template processor may be further configured to generate an output for a respective set of executable instructions. The template processor may be further configured to generate the customized document by replacing sets of executable instructions in the template with the output generated by executing corresponding sets of executable instructions. At least part of the output includes properties of the selected data objects and / or summary data concerning the properties of the selected data objects.

Bei einigen Ausführungsformen kann ein Verfahren zum Generieren von benutzerangepassten vorlagenbasierten Dokumenten ein Empfangen einer Auswahl einer Vorlage umfassen, wobei die Vorlage einen oder mehrere Sätze von ausführbaren Anweisungen beinhaltet. Das Verfahren kann weiter ein Empfangen einer Auswahl von einem oder mehreren Datenobjekten umfassen, auf die zuzugreifen ist, ansprechend darauf, dass der eine oder die mehreren Sätze von ausführbaren Anweisungen ausgeführt werden. Das Verfahren kann weiter umfassen, dass durch ein Computersystem, das einen oder mehrere Computerprozessoren und eine elektronische Speichervorrichtung aufweist, ein jeweiliger Satz von ausführbaren Anweisungen ausgeführt wird, wobei zumindest einige Sätze von ausführbaren Anweisungen Anweisungen beinhalten, um auf Eigenschaften zumindest einiger der ausgewählten Datenobjekte zuzugreifen. Das Verfahren kann weiter ein Generieren einer Ausgabe für einen jeweiligen Satz von ausführbaren Anweisungen umfassen. Das Verfahren kann weiter ein Generieren eines benutzerangepassten Dokuments umfassen, dadurch, dass Sätze von ausführbaren Anweisungen in der Vorlage durch die entsprechende generierte Ausgabe ersetzt werden, einschließlich Eigenschaften der ausgewählten Datenobjekte und/oder Übersichtsdaten betreffend die Eigenschaften der ausgewählten Datenobjekte.In some embodiments, a method of generating customized template-based documents may include receiving a selection of a template, wherein the template includes one or more sets of executable instructions. The method may further comprise receiving a selection of one or more data objects to be accessed in response to executing the one or more sets of executable instructions. The method may further comprise executing, by a computer system having one or more computer processors and an electronic memory device, a respective set of executable instructions, wherein at least some sets of executable instructions include instructions to access properties of at least some of the selected data objects , The method may further generate an output for a respective set of include executable instructions. The method may further comprise generating a customized document by replacing sets of executable instructions in the template with the corresponding generated output, including properties of the selected data objects and / or summary data relating to the properties of the selected data objects.

Bei einigen Ausführungsformen enthält eine transitorische oder nicht-transitorische Computerspeichereinrichtung Anweisungen, um ein Computersystem zu veranlassen, benutzerangepasste vorlagenbasierte Dokumente zu generieren. Bei ihrer Ausführung können die Anweisungen eine Vorlage erhalten, die mittels Ersetzen von Platzhaltern durch Sätze von ausführbaren Anweisungen modifiziert wurde. Bei ihrer Ausführung können die Anweisungen eine Auswahl der Vorlage empfangen. Bei ihrer Ausführung können die Anweisungen eine Auswahl von einem oder mehreren Datenobjekten erhalten, die in ein generiertes benutzerangepasstes Objekt zu inkludieren sind, basierend auf Eigenschaften von dem einen oder den mehreren Datenobjekten. Bei ihrer Ausführung können die Anweisungen den einen oder die mehreren Sätze von ausführbaren Anweisungen aus der Vorlage mittels des Computersystems parsen. Bei ihrer Ausführung können die Anweisungen einen jeweiligen Satz von ausführbaren Anweisungen ausführen, wobei zumindest einige Sätze von ausführbaren Anweisungen Anweisungen beinhalten, um auf Eigenschaften der ausgewählten Datenobjekte zuzugreifen, die von einer oder mehreren Datenquellen gespeichert werden. Bei ihrer Ausführung können die Anweisungen eine Ausgabe für jeden Satz von ausführbaren Anweisungen generieren. Bei ihrer Ausführung können die Anweisungen ein benutzerangepasstes Dokument generieren und zwar durch Ersetzen von Sätzen von ausführbaren Anweisungen in der Vorlage durch die entsprechende generierte Ausgabe, einschließlich Eigenschaften der ausgewählten Datenobjekte und/oder Übersichtsdaten betreffend die Eigenschaften der ausgewählten Datenobjekte.In some embodiments, a transitory or non-transitory computer storage device includes instructions to cause a computer system to generate customized template-based documents. When executed, the instructions may be given a template that has been modified by replacing wildcards with sets of executable instructions. When executed, the instructions may receive a selection of the template. When executed, the instructions may receive a selection of one or more data objects to be included in a generated user-adapted object based on properties of the one or more data objects. When executed, the instructions may parse the one or more sets of executable instructions from the template using the computer system. When executed, the instructions may execute a respective set of executable instructions, wherein at least some sets of executable instructions include instructions to access properties of the selected data objects stored by one or more data sources. When executed, the statements can generate an output for each set of executable statements. When executed, the instructions may generate a customized document by replacing sets of executable instructions in the template with the corresponding generated output, including properties of the selected data objects and / or summary data regarding the properties of the selected data objects.

Gewisse Aspekte der Offenbarung werden anhand der folgenden detaillierten Beschreibung, und zwar bei Betrachtung in Verbindung mit den anliegenden Zeichnungen, leichter verständlich.Certain aspects of the disclosure will become more readily apparent from the following detailed description, taken in conjunction with the accompanying drawings.

1 ist ein Blockdiagramm, das ein beispielhaftes Vorlagensystem darstellt, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. 1 FIG. 10 is a block diagram illustrating an exemplary template system, in accordance with some embodiments of the present disclosure. FIG.

2 ist ein Ablaufdiagramm, das einen beispielhaften Prozess zum Generieren eines Dokuments aus einer Vorlage darstellt, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. 2 FIG. 10 is a flowchart illustrating an example process for generating a document from a template, in accordance with some embodiments of the present disclosure.

3A zeigt eine beispielhafte Platzhalter-Vorlage, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. 3A FIG. 12 shows an example wildcard template, in accordance with some embodiments of the present disclosure. FIG.

3B zeigt ein beispielhaftes XML-Dokument (XML = Extensible Markup Language = erweiterbare Auszeichnungssprache) der Platzhalter-Vorlage, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. 3B FIG. 12 illustrates an Extensible Markup Language (XML) document of the wildcard template, in accordance with some embodiments of the present disclosure.

3C zeigt ein beispielhaftes XML-Dokument einer Vorlage mit ausführbaren Code-Anweisungen, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. 3C FIG. 10 shows an exemplary XML document of a template with executable code instructions, in accordance with some embodiments of the present disclosure.

3D zeigt ein beispielhaftes XML-Dokument eines Ausgabedokuments, folgend auf die Ausführung von eingebetteten Code-Anweisungen, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. 3D FIG. 12 shows an exemplary XML document of an output document following the execution of embedded code instructions, in accordance with some embodiments of the present disclosure.

3E zeigt ein beispielhaftes benutzerangepasstes Dokument, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. 3E FIG. 10 illustrates an example user-customized document, in accordance with some embodiments of the present disclosure. FIG.

4A zeigt eine beispielhafte Benutzerschnittstelle des Vorlagensystems zum Laden und/oder Betrachten von Datenobjekten, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. 4A FIG. 10 illustrates an exemplary user interface of the template system for loading and / or viewing data objects, in accordance with some embodiments of the present disclosure.

4B zeigt eine beispielhafte Benutzerschnittstelle des Vorlagensystems zum Auswählen einer Vorlage, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. 4B FIG. 12 illustrates an exemplary user interface of the template system for selecting a template, in accordance with some embodiments of the present disclosure.

4C zeigt eine beispielhafte Benutzerschnittstelle des Vorlagensystems zum Auswerten von Code-Anweisungen, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. 4C FIG. 12 shows an exemplary user interface of the template system for evaluating code instructions, in accordance with some embodiments of the present disclosure.

5 ist ein Blockdiagramm, das ein beispielhaftes Vorlagensystem darstellt, mit dem verschiedene hier erläuterte Verfahren und Systeme implementiert werden können. 5 Figure 3 is a block diagram illustrating an example template system that may implement various methods and systems discussed herein.

Berichte und/oder Dokumente können aus strukturierten Daten programmatisch generiert werden. Beispielsweise kann ein Computersystem mit Code-Anweisungen programmiert werden, um Berichte und/oder Dokumente aus strukturierten Daten in einheitlicher Weise zu generieren. Um das Format eines Berichts und/oder eines Dokuments zu modifizieren, kann eine Ausgabe von neuer Software erforderlich sein, um Änderungen an dem Bericht und/oder dem Dokument vorzunehmen. Bei einem weiteren Beispiel kann ein Bericht und/oder ein Dokument aus den eingebetteten Merkmalen einer Dokumentverarbeitungsanwendung generiert werden. In Microsoft Word können Funktionen zum Ausführen von Code-Anweisungen in ein Dokument eingebaut sein, beispielsweise Makros zum Ausführen von Visual Basic.Reports and / or documents can be programmatically generated from structured data. For example, a computer system may be programmed with code instructions to uniformly generate reports and / or documents from structured data. To modify the format of a report and / or a document, new software may be required to make changes to the report and / or the document. In another example, a report and / or a document may be generated from the embedded features of a document processing application. In Microsoft Word, functions for executing code statements can be incorporated into a document for example, macros to run Visual Basic.

Zusätzlich zu Computersystemen, die zum Generieren einheitlicher Berichte und/oder den eingebetteten Merkmalen einer Dokumentverarbeitungsanwendung programmiert sind, sind hier Systeme, Verfahren, Techniken und Vorrichtungen zum dynamischen Generieren von benutzerangepassten Dokumenten offenbart, die Information betreffend eines oder mehrere Datenobjekte und/oder Eigenschaften dieser Datenobjekte beinhalten. Unter Verwendung der hier beschriebenen Techniken und Systeme kann eine effiziente, flexible, skalierbare und benutzerangepasste Dokumentgenerierung bewerkstelligt werden. Bei einer speziellen beispielhaften Implementierung der hier erläuterten Systeme und Verfahren können benutzerangepasste Dokumente basierend auf Eigenschaften eines oder mehrerer vom Benutzer ausgewählter Datenobjekte und basierend auf Microsoft Word-Vorlagen generiert werden, die eingebettete ausführbare Code-Anweisungen beinhalten, welche außerhalb von Microsoft Word ausgewertet werden können. Zwar betreffen gewisse hier angeführte Beispiele Microsoft Word, jedoch sind die Systeme und Verfahren auf ein beliebiges Datenformat und eine beliebige Lese- und/oder Editier-Software anwendbar.In addition to computer systems programmed to generate consistent reports and / or the embedded features of a document processing application, disclosed herein are systems, methods, techniques, and apparatus for dynamically generating customized documents containing information regarding one or more data objects and / or properties of those data objects include. Using the techniques and systems described herein, efficient, flexible, scalable, and customized document generation can be accomplished. In a specific exemplary implementation of the systems and methods discussed herein, customized documents may be generated based on properties of one or more user-selected data objects and based on Microsoft Word templates that include embedded executable code instructions that may be evaluated outside of Microsoft Word , While certain examples cited herein relate to Microsoft Word, the systems and methods are applicable to any data format and any reading and / or editing software.

Generierung einer beispielhaften VorlageGeneration of an exemplary template

1 zeigt ein Vorlagensystem gemäß einigen Ausführungsformen der vorliegenden Offenbarung. In der beispielhaften Ausführungsform von 1 weist die Vorlagen-Umgebung 190 ein Netzwerk 160, ein Vorlagensystem 100, eine Benutzer-Rechnervorrichtung 102, und eine Objektspeichervorrichtung 130 auf. Verschiedene Kommunikationen zwischen diesen Vorrichtungen sind dargestellt. Beispielsweise ist eine Kommunikation einer Platzhalter-Vorlage 110, einer Datenauswahl 120, von Objektdaten 140 und eines benutzerangepassten Dokuments 150 in verschiedenen Aktionen 1 bis 5 dargestellt, wie in den eingekreisten Zahlen in der Figur dargestellt ist. Bei dieser Ausführungsform beinhaltet das Vorlagensystem 100 einen Vorlagengenerator 104, eine Vorlagenspeichervorrichtung 106, eine Auswahleinheit 108 und einen Vorlagenprozessor 109, wobei jeder von diesen nachfolgend detaillierter beschrieben wird. 1 FIG. 12 illustrates a template system according to some embodiments of the present disclosure. FIG. In the exemplary embodiment of 1 indicates the template environment 190 a network 160 , a template system 100 , a user computing device 102 , and an object storage device 130 on. Various communications between these devices are shown. For example, a communication is a placeholder template 110 , a data selection 120 , of object data 140 and a custom document 150 shown in various actions 1 to 5, as shown in the circled numbers in the figure. In this embodiment, the template system includes 100 a template generator 104 , a template storage device 106 , a selection unit 108 and a template processor 109 each of which will be described in more detail below.

Wie in 1 dargestellt, wird bei Aktion 1 eine Vorlage mit Code-Platzhaltern, der hier als „Platzhalter-Vorlage” bezeichnet wird, von der Benutzer-Rechnervorrichtung 102 zum Vorlagengenerator 104 des Vorlagensystems 100 übertragen. Bei einigen Ausführungsformen beinhaltet die Platzhalter-Vorlage 110 Code-Platzhalter, die Orte in einem Vorlagen-Dokument angeben, an denen der Benutzer ein dynamisches Hinzufügen von Inhalt wünscht, basierend auf den Eigenschaften eines oder mehrerer ausgewählter Datenobjekte. Beispielsweise stellt 3A eine beispielhafte Platzhalter-Vorlage 300 dar, wobei Platzhalter hinzugefügt wurden und/oder mittels einer Dokumentverarbeitungsanwendung angezeigt werden. Die Platzhalter-Vorlage 300 kann der Platzhalter-Vorlage 110 von 1 entsprechen. Möglicherweise wurde die Platzhalter-Vorlage 300 von einer Bedienperson in einer Dokumentverarbeitungsanwendung erzeugt, beispielsweise in, jedoch nicht eingeschränkt auf, Microsoft Word. Die Platzhalter-Vorlage 300 kann statischen Text und/oder Merkmale beinhalten, die in allen Berichten und/oder Dokumenten verwendet werden können, welche aus Vorlagen basierend auf der Platzhalter-Vorlage 300 erzeugt wurden, beispielsweise statische Texte 312. Bei weiteren Beispielen kann die Kopf- oder Fußzeile des Dokuments in allen Berichten die gleiche Information enthalten, beispielsweise ein Firmenlogo.As in 1 In action 1, a template with code wildcards, referred to herein as a "wildcard template", is presented by the user computing device 102 to the template generator 104 of the template system 100 transfer. In some embodiments, the wildcard template includes 110 Code placeholders that specify locations in a template document where the user desires to dynamically add content based on the properties of one or more selected data objects. For example 3A an exemplary placeholder template 300 where placeholders have been added and / or displayed by a document processing application. The placeholder template 300 can be the placeholder template 110 from 1 correspond. The placeholder template may have been 300 generated by an operator in a document processing application, such as, but not limited to, Microsoft Word. The placeholder template 300 may include static text and / or features that may be used in all reports and / or documents resulting from templates based on the placeholder template 300 generated, such as static texts 312 , In other examples, the header or footer of the document may contain the same information in all reports, such as a company logo.

Möglicherweise hat die Bedienperson die Platzhalter-Vorlage 300 erzeugt, um Spezifikationen für einen benutzerangepassten Bericht zu genügen. Die Gestaltung kann an die Spezifikationen des Berichts und/oder an die Vorlieben der Bedienperson angepasst werden. Beispielsweise können der Bezeichner 304 und/oder die Tabelle 302 fluchtend angeordnet, formatiert und/oder in einer Schriftart vorliegen, die den Vorlieben der Bedienperson entspricht. In ähnlicher Weise kann das Bild 306 gemäß den Vorlieben der Bedienperson positioniert und/oder ausgerichtet sein.The operator may have the placeholder template 300 to meet specifications for a custom report. The design can be adapted to the specifications of the report and / or to the preferences of the operator. For example, the identifier 304 and / or the table 302 aligned, formatted and / or in a font that matches the preferences of the operator. Similarly, the picture may 306 be positioned and / or aligned according to the preferences of the operator.

Elemente der Platzhalter-Vorlage 300, wie beispielsweise der Bezeichner 304, das Bild 306 und/oder die Tabelle 302 können Platzhalterelemente beinhalten. Die Platzhalterelemente repräsentieren Aspekte und/oder Merkmale des Dokuments, bei denen die Bedienperson möchte, dass sie dynamisch eingesetzt und/oder aktualisiert werden, und zwar durch Eigenschaften von Datenobjekten und/oder basierend auf den Eigenschaften von Datenobjekten. Beispielsweise kann der Bezeichner-Platzhalter 304 ein Platzhalter sein, der durch einen Bezeichner ersetzt wird, welcher mit einem Objekt assoziiert ist, das durch die ein Dokument anfordernde Person ausgewählt wird, und zwar basierend auf der Vorlage. Beispielsweise kann der Bezeichner-Platzhalter 304 durch den Namen einer Person ersetzt werden, der einer oder mehreren mit einem Person-Datenobjekt assoziierten Namen-Eigenschaften entsprechen kann. In ähnlicher Weise sollten die weiteren Platzhalter-Elemente, wie beispielsweise das Bild 306 und der Größe-Platzhalter, der Kontakt-Platzhalter und der Partner-Platzhalter in Tabelle 302 Eigenschaften eines oder mehrerer Objekte (z. B. Person-Objekte) entsprechen, die von der anfordernden Bedienperson ausgewählt wurden.Elements of the placeholder template 300 , such as the identifier 304 , the picture 306 and / or the table 302 may include placeholder elements. The placeholder elements represent aspects and / or features of the document where the operator wishes to be dynamically deployed and / or updated by properties of data objects and / or based on the properties of data objects. For example, the identifier wildcard 304 a placeholder, which is replaced by an identifier associated with an object selected by the person requesting a document, based on the template. For example, the identifier wildcard 304 be replaced by the name of a person who may correspond to one or more name properties associated with a person data object. Similarly, the other placeholder elements, such as the image 306 and the size placeholder, the contact placeholder, and the partner placeholder in table 302 Properties of one or more objects (eg, person objects) selected by the requesting operator.

Eine Vorlage kann in verschiedenen Formaten vorliegen. Beispielsweise kann eine Vorlage Dokumente und/oder Formate, wie beispielsweise, jedoch nicht eingeschränkt auf, Microsoft Word, Microsoft Powerpoint, Microsoft Excel, HTML (Hypertext-Auszeichnungssprache), ein Datenbankformat, XML (erweiterbare Auszeichnungssprache), JSON, CSV-Dateiformate (delimited file formats), ein proprietäres Dateiformat des Vorlagensystems 100, und/oder ein beliebiges anderes Format beinhalten. 3B zeigt beispielsweise ein XML-Dokument einer Platzhalter-Vorlage in einem XML-basierten Dokumentformat. Beispielsweise können die Microsoft Office-Dokumentformate, wie beispielsweise, jedoch nicht eingeschränkt auf, Microsoft Word, Powerpoint, Excel oder ein beliebiges anderes Dokumentformat, XML-basierte Dokumentformate beinhalten. Mit anderen Worten kann beispielsweise ein Word-Dokument eine Archivdatei sein, entsprechend einem, jedoch nicht eingeschränkt auf ein, Zip-Format von XML-Dokumenten. Als solches kann eine Bedienperson, unter Verwendung einer Archivieranwendung oder irgendeiner anderen Anwendung, ein Dokument-Dateiarchiv öffnen, um das eine oder die mehreren XML-Dokumente, die das Dokument beinhalten, zu betrachten und/oder zu editieren. A template can be in various formats. For example, a template may contain documents and / or formats such as, but not limited to, Microsoft Word, Microsoft Powerpoint, Microsoft Excel, HTML (Hypertext Markup Language), a database format, XML (extensible markup language), JSON, CSV file formats (delimited file formats), a proprietary file format of the template system 100 , and / or any other format. 3B For example, shows an XML document of a placeholder template in an XML-based document format. For example, the Microsoft Office document formats, such as, but not limited to, Microsoft Word, Powerpoint, Excel, or any other document format, may include XML-based document formats. In other words, for example, a Word document may be an archive file, corresponding to, but not limited to, a Zip format of XML documents. As such, an operator, using an archival application or any other application, may open a document file archive to view and / or edit the one or more XML documents containing the document.

Das beispielhafte XML-Dokument 310A kann der Platzhalter-Vorlage 300 von 3A entsprechen, die in einem Dokument-Archivformat vorliegen kann, das eine oder mehrere XML-Dateien enthält, einschließlich des XML-Dokuments 301A. Die beispielhaften Auszeichner im XML-Dokument 310 sind illustrativ und entsprechen möglicherweise nicht einem spezifischen XML-Format eines Dokuments.The sample XML document 310A can be the placeholder template 300 from 3A which may be in a document archive format containing one or more XML files, including the XML document 301A , The example markers in the XML document 310 are illustrative and may not correspond to a specific XML format of a document.

Wie durch das XML-Dokument 310A dargestellt, kann eine Bedienperson beim Öffnen des XML-Dokuments 310A mit einer Texteditieranwendung, einer XML-Editieranwendung und/oder irgendeiner anderen Anwendung, die Platzhalterelemente identifizieren. Beispielsweise kann „<Text> NAME-PLATZHALTER </Text>” aufgrund des Textes „PLATZHALTER” identifizierbar sein. Somit kann eine Bedienperson eines oder mehrere Dokumente 310, welche die Vorlage enthalten (z. B. können mehrere XML- und/oder andere Dokumenttypen vorhanden sein, die Teil eines einzigen Microsoft Word-Dokuments sind), nach der speziellen Zeichenkette durchsuchen, die in der Vorlage verwendet wird, um Platzhalter zu identifizieren. In dem Beispiel von 3 kann die Bedienperson nach der Zeichenkette „PLATZHALTER” suchen, um Dateien und/oder Orte in den Dateien, an denen Platzhalter vorhanden sind und an denen ausführbarer Code eingesetzt werden sollte, problemlos zu identifizieren, um diese Platzhalter in die Lage zu versetzen, Daten zu erhalten, die mit einem oder mehreren Objekten assoziiert sind. Somit kann die Verwendung von Platzhaltern nützlich sein, da die verschiedenen Dateien, aus denen ein einziges Ausgabeformat (z. B. ein Microsoft Word-Dokument) besteht, sehr groß und komplex sein kann und/oder ein sich Zurechtfinden anderweitig schwierig sein kann, um die passenden Orte zu identifizieren, an denen Platzhalter mit ausführbarem Code zu ersetzen sind. Beispielsweise kann ein einzelnes XML-Dokument Tausende von Zeilen mit Hunderten unterschiedlicher Auszeichner umfassen. Somit kann ein Identifizieren von Teilbereichen des XML-Dokuments dadurch bewerkstelligt werden, dass man im XML-Dokument nach Platzhaltern sucht. Außerdem kann eine Bedienperson das XML-Dokument editieren und/oder modifizieren, ohne ein komplexes XML-basiertes Dokumentformat vollständig zu verstehen, da aufgrund der Platzhalter die Bedienperson sich für ein Editieren und/oder Modifizieren auf die wichtigen Abschnitte des XML konzentrieren kann.As by the XML document 310A An operator can view this when opening the XML document 310A with a text editing application, an XML editing application, and / or any other application identifying wildcard elements. For example, "<text> NAME PLACEHOLDER </ text>" may be identifiable based on the text "PLACEHOLDER". Thus, an operator may have one or more documents 310 that contain the template (for example, there may be multiple XML and / or other document types that are part of a single Microsoft Word document) search the special string used in the template to identify wildcards , In the example of 3 For example, the operator may search for the string "PLACEHOUSE" to easily identify files and / or locations in the files where wildcards exist and executable code should be used to enable those wildcards to access data obtained associated with one or more objects. Thus, the use of wildcards may be useful because the various files that make up a single output format (eg, a Microsoft Word document) can be very large and complex and / or otherwise difficult to navigate identify the matching locations where placeholders with executable code are to be replaced. For example, a single XML document can contain thousands of rows with hundreds of different markers. Thus, identifying portions of the XML document can be accomplished by searching for wildcards in the XML document. In addition, an operator can edit and / or modify the XML document without completely understanding a complex XML-based document format because, due to the placeholders, the operator can concentrate on editing and / or modifying the important portions of the XML.

Es ist zwar XML in dem Dokument 310A dargestellt, jedoch kann das Vorlagensystem weitere zuvor erwähnte Dokumentformate und/oder ein beliebiges anderes Dokumentformat unterstützen. Beispielsweise kann eine HTML-Vorlage verwendet werden, und die Platzhalter können in ein HTML-Dokument eingesetzt werden.It is XML in the document 310A however, the template system may support other previously mentioned document formats and / or any other document format. For example, an HTML template can be used, and the placeholders can be inserted into an HTML document.

Erneut Bezug nehmend auf 1 erzeugt bei Aktion 2 der Vorlagengenerator 104 eine Vorlage, dadurch, dass die Platzhalter in der Platzhalter-Vorlage 110 (oder der Platzhalter-Vorlage 300 von 3A) durch ausführbare Codesegmente ersetzt werden, um Daten als Ersetzungsdaten für diese Platzhalter zu erhalten. Bei einigen Ausführungsformen können einige oder alle der eingebetteten Code-Anweisungen, die mit Platzhaltern assoziiert sind, in die Platzhalter-Vorlage 110, die von der Benutzer-Rechnervorrichtung 102 über das Netzwerk 160 an den Vorlagengenerator 104 gesendet wird, eingesetzt werden oder in diese inkludiert werden. Beispielsweise kann der Benutzer 102 die Codesegmente basierend auf einer Verwendung einer durch den Vorlagengenerator 104 bereitgestellten Programmierschnittstelle schreiben, die bei verschiedenen Ausführungsformen auf der Benutzer-Rechnervorrichtung 102 teilweise oder vollständig implementiert sein kann. Somit kann der Vorlagengenerator 104 konfiguriert sein, um ausführbare Anweisungen zu empfangen, die in eine Dokumentvorlage zu inkludieren sind, und zwar entweder durch den Benutzer 102 und/oder durch einen anderen Benutzer, der über größere Programmierfertigkeiten verfügt, die beim Schreiben und/oder Auswählen von Code, der mit einem jeweiligen Platzhalter assoziiert ist, von Nutzen sind. Beispielsweise kann der Vorlagengenerator 104 eine Texteditieranwendung sein, die durch eine Bedienperson bedient wird, welche basierend auf den Code-Platzhaltern die eingebetteten Code-Anweisungen einfügt. Bei einigen Ausführungsformen kann der Vorlagengenerator 104 ein automatisierter Prozess sein, der die Vorlage 110 mit Code-Platzhaltern entgegennimmt und die Codeanweisungs-Platzhalter durch eingebettete Anweisungen ersetzt. Bei einigen Ausführungsformen erfolgt die Vorlagenerzeugung automatisch, manuell, oder durch irgendeine Kombination von diesen. Der Vorlagengenerator 104 kann die generierte Vorlage mit eingebetteten Code-Anweisungen ausgeben und/oder in der Vorlagen-Speichervorrichtung 106 speichern.Referring again to 1 generates the template generator in action 2 104 a template, in that the placeholder in the placeholder template 110 (or the placeholder template 300 from 3A ) are replaced by executable code segments to obtain data as replacement data for these wildcards. In some embodiments, some or all of the embedded code instructions associated with wildcards may be in the wildcard template 110 provided by the user computing device 102 over the network 160 to the template generator 104 is sent, used or included in this. For example, the user may 102 the code segments based on using one by the template generator 104 provided programming interface, which in various embodiments on the user computing device 102 partially or fully implemented. Thus, the template generator 104 be configured to receive executable instructions to be included in a document template, either by the user 102 and / or by another user having greater programming skills who are useful in writing and / or selecting code associated with a respective placeholder. For example, the template generator 104 a text editing application operated by an operator who inserts the embedded code instructions based on the code placeholders. In some embodiments, the template generator may be 104 an automated process that is the template 110 with code placeholders and receives the Code statement wildcards replaced with embedded statements. In some embodiments, template generation is automatic, manual, or any combination of these. The template generator 104 can output the generated template with embedded code instructions and / or in the template storage device 106 to save.

3C zeigt die Vorlage mit eingefügten ausführbaren Codeanweisungen, die von der Platzhalter-Vorlage (z. B. 3B) unterschieden werden kann. Das XML-Dokument 310A von 3B kann modifiziert worden sein, um das mit Code versehene XML-Dokument 310B zu erzeugen. Die ausführbaren Code-Anweisungen in dem mit Code versehenen XML-Dokument 310 sind illustrativ und entsprechen daher möglicherweise keiner spezifischen Programmiersprache oder beinhalten keine syntaktisch vollständigen und/oder korrekten Anweisungen. Das Vorlagensystem kann konfiguriert sein, um eine oder mehrere interpretierte Programmiersprachen zu unterstützen, beispielsweise, jedoch nicht eingeschränkt auf, eRuby (embedded Ruby), JRuby, Groovy, BASIC, Perl, Python, Jython und/oder LISP. Das Vorlagensystem kann auch so konfiguriert sein, dass es weitere Programmiersprachen unterstützt, beispielsweise, jedoch nicht eingeschränkt auf, Java, Lua, C, C++ und/oder C#. 3C shows the template with inserted executable code statements that are used by the wildcard template (eg. 3B ) can be distinguished. The XML document 310A from 3B may have been modified to be the coded XML document 310B to create. The executable code statements in the coded XML document 310 are illustrative and therefore may not correspond to any specific programming language or include syntactically complete and / or correct instructions. The template system may be configured to support one or more interpreted programming languages, such as, but not limited to, eRuby (embedded Ruby), JRuby, Groovy, BASIC, Perl, Python, Jython, and / or LISP. The template system may also be configured to support other programming languages such as, but not limited to, Java, Lua, C, C ++, and / or C #.

Die Verwendung von eingebetteten Code-Anweisungen in dem mit Code versehenen XML-Dokument 310B kann eine dynamische Dokumentgenerierung basierend auf Datenobjekten ermöglichen. Beispielsweise kann die Code-Anweisung „<% print(Objekt.getName) %>” das Vorlagensystem 100 von 1 (und/oder den später noch erläuterten Vorlagen-Prozessor 109) veranlassen, die Name-Eigenschaft eines ausgewählten Objektes (oder Objekten) auszulesen und ein Drucken dieser Nameneigenschaft in das Dokument durchzuführen. Wie zuvor erwähnt, kann die Bedienperson und/oder ein Vorlagengenerator erkennen, wo die spezielle Code-Anweisung in dieses XML-Elementes einzusetzen ist, und zwar aufgrund des Anzeigers „Name-Platzhalter” von dem XML-Dokument 310A in 3B. In ähnlicher Weise können die Bedienperson und/oder der Vorlagengenerator eingebettete Code-Anweisungen hinzufügen, dadurch, dass sie auf Datenobjekt-Eigenschaften basierend auf den Platzhaltern in der Vorlage zugreifen, die dem Bild 306, und/oder der Tabelle 302 von 3A entspricht.The use of embedded code statements in the coded XML document 310B can enable dynamic document generation based on data objects. For example, the code statement "<% print (object.getName)%>" may be the template system 100 from 1 (and / or the later explained template processor 109 ) to read the Name property of a selected object (or objects) and to print that name property into the document. As previously mentioned, the operator and / or a template generator may recognize where to place the special code statement in this XML element due to the "name placeholder" indicator of the XML document 310A in 3B , Similarly, the operator and / or the template generator may add embedded code instructions by accessing data object properties based on the placeholders in the template that correspond to the image 306 , and / or the table 302 from 3A equivalent.

Bei einigen Ausführungsformen gibt es möglicherweise einige Variationen, wie die eingebetteten Codeanweisungen ausgeführt werden. Beispielsweise kann das Vorlagensystem 100 von 1 (und/oder der später noch erläuterte Vorlagenprozessor 109), zur Ausführung von interpretierte Programmiersprachen wie beispielsweise, jedoch nicht eingeschränkt auf, Ruby und/oder Groovy, die eingebetteten Code-Anweisungen zur Laufzeit ausführen, ohne die eingebetteten Code-Anweisungen zu kompilieren. Bei einigen Ausführungsformen kann das Vorlagensystem 100 von 1 (und/oder der später noch erläuterte Vorlagenprozessor 109) zur Ausführung von kompilierten oder teilweise kompilierten Programmiersprachen wie beispielsweise, jedoch nicht eingeschränkt auf, Java und/oder C++ auszuführen, eine Compiler-Einheit aufweisen, welche die extrahierten Code-Anweisungen kompiliert, um zur Ausführung dieser Code-Anweisungen fähig zu sein.In some embodiments, there may be some variation in how the embedded code instructions are executed. For example, the template system 100 from 1 (and / or the later explained template processor 109 ) for executing interpreted programming languages such as, but not limited to, Ruby and / or Groovy, which execute embedded code instructions at runtime without compiling the embedded code instructions. In some embodiments, the template system 100 from 1 (and / or the later explained template processor 109 ) for executing compiled or partially compiled programming languages such as, but not limited to, Java and / or C ++, have a compiler unit that compiles the extracted code instructions to be able to execute those code instructions.

Bei einigen Ausführungsformen kann der Vorlagengenerator 104 und/oder das Vorlagensystem 100 von 1 Werkzeuge und/oder Anwendungen zum Editieren von XML-basierten Dokumentformaten und/oder weiteren Dokumentformaten aufweisen. Beispielsweise kann eine XML-basierte Dokumentformatieranwendung einer Bedienperson ermöglichen, ein XML-basiertes Dokumentformat zu öffnen und die XML-Dateien des XML-basierten Dokumentformats direkt zu editieren. Wie zuvor erläutert, kann ein XML-basiertes Dokumentformat ein Dateiarchiv aus XML-Dokumenten aufweisen. Somit muss eine Bedienperson, ohne eine Anwendung und/oder ein Werkzeug zum Formatieren eines XML-basierten Dokuments, möglicherweise das das XML-basierte Dokument enthaltende Dateiarchiv vor einem Editieren der XML-Dateien öffnen und/oder die XML-Dateien erneut archivieren, nachdem sie die Änderungen an der XML vorgenommen hat. Eine Anwendung und/oder ein Werkzeug zum Formatieren eines XML-basierten Dokuments kann der Bedienperson ermöglichen, ein Öffnen, Editieren und/oder Speichern von XML-Dokumenten in einem XML-basierten Dokumentformat ohne Weiteres durchzuführen, dadurch dass die Schritte zum Archivieren und/oder erneuten Archivieren automatisch durchgeführt werden.In some embodiments, the template generator may be 104 and / or the template system 100 from 1 Have tools and / or applications for editing XML-based document formats and / or other document formats. For example, an XML-based document formatting application may allow an operator to open an XML-based document format and directly edit the XML-based document format XML files. As previously discussed, an XML-based document format may include a file library of XML documents. Thus, without an application and / or a tool for formatting an XML-based document, an operator may need to open the file library containing the XML-based document prior to editing the XML files and / or re-archive the XML files after they made the changes to the XML. An application and / or tool for formatting an XML-based document may allow the operator to readily perform opening, editing, and / or storing of XML documents in an XML-based document format, comprising the steps of archiving and / or re-archiving automatically.

Die Verwendung von eingebetteten Code-Anweisungen im Dokument 310B kann eine benutzerangepasste Programmierlogik zur Dokumentgenerierung ermöglichen. Beispielsweise beinhaltet die Code-Anweisung 312 „if Objekt.getTelefonnummer is not null” eine if-Anweisung. Daher kann die folgende Code-Anweisung 314 „println(,Telefonnummer:' + Objekt.getTelefonnummer)” lediglich ausgeführt werden, falls die Auswertung der if-Anweisung 312 den Booleschen Wert „Wahr” ergibt. Somit kann eine Programmierlogik im Dokument 310B eine Bedingungslogik basierend auf Datenobjekt-Eigenschaften ermöglichen. Der Code-Anweisungsblock 316 kann eine weitere Programmierlogik illustrieren. Beispielsweise kann ein Person-Objekt mehrere mit der Person assoziierte Datensätze aufweisen, und jeder Datensatz kann eine Größe-Eigenschaft aufweisen, und daher kann eine Person mehrere Größe-Eigenschaften aufweisen. Jedoch kann es erwünscht sein, die am häufigsten benutzte („most common”) Größe einer Person anzuzeigen. Daher kann die Code-Anweisung „Größe = frequencyMap(Datensätze, ,Größe').getMostCommon” bei 316 die am häufigsten benutzte Größe-Eigenschaft bestimmen, die dann im Dokument abgedruckt werden.The use of embedded code statements in the document 310B can provide user-customized programming logic for document generation. For example, the code statement includes 312 "If object.getphone number is not null" an if statement. Therefore, the following code statement 314 "Println (, phone number: '+ object.getphone number)" will only be executed if the evaluation of the if statement 312 returns the Boolean value True. Thus, a programming logic in the document 310B enable condition logic based on data object properties. The code statement block 316 can illustrate another programming logic. For example, a person's object may have multiple records associated with the person, and each record may have a size property, and therefore a person may have multiple size properties. However, it may be desired be to display the most commonly used ("most common") size of a person. Therefore, the code statement "size = frequencyMap (records, 'size'). GetMostCommon" at 316 determine the most commonly used size property, which will then be printed in the document.

Die Verwendung von eingebetteten Code-Anweisungen im Dokument 310B kann eine effizientes Generieren eines benutzerangepassten Dokuments ermöglichen. Beispielsweise können die erste und letzte dargestellte Code-Anweisung <% für jedes Objekt in Objekten %> bzw. <% Ende %> die eine Schleife darstellen können, den Vorlagenprozessor 109 bei Ausführung des Code veranlassen, innerhalb der Schleife für jedes von dem einen oder den mehreren Datenobjekten Operationen durchzuführen. Die Verwendung einer For-Schleife kann effizient sein, da durch diese zwei Zeilen eingebetteter Code-Anweisungen das Vorlagensystem veranlasst wird, eine Schleife über eine beliebige Anzahl von Objekten auszuführen und den statischen Text und/oder die ausführbaren Code-Anweisungen innerhalb der For-Schleife zu wiederholen. Beispielsweise kann die For-Schleife die jeweiligen Elemente, entsprechend dem Bezeichner 304, dem Bild 306 und/oder der Tabelle 302 von 3A umschließen. Daher wird, beim Ausführen der eingebetteten Code-Anweisungen in einer Vorlage, je Datenobjekt eine Seite und/oder ein Abschnitt erzeugt (die/der jeweils einer einzigen Schleife der For-Schleife entspricht). Beispielsweise können, wenn für zehn Person-Objekte ein Auswählen, Bestimmen, Zugreifen auf und/oder Laden und Senden an das Vorlagensystem erfolgt ist, zehn Seiten und/oder Abschnitte, die jeweils einem einzigen Person-Objekt entsprechen, generiert werden.The use of embedded code statements in the document 310B can enable efficient generation of a customized document. For example, the first and last shown code statement <% for any object in objects%> or <% end%> that can loop, can be the template processor 109 upon execution of the code, causing operations to be performed within the loop for each of the one or more data objects. Using a For loop can be efficient, as these two lines of embedded code instructions cause the template system to loop across any number of objects and the static text and / or code within the For loop to repeat. For example, the For loop may be the respective elements, according to the identifier 304 , the picture 306 and / or the table 302 from 3A enclose. Therefore, when executing the embedded code statements in a template, a page and / or section is created for each data object (each corresponding to a single loop of the For loop). For example, if ten-person objects have been selected, designated, accessed, and / or loaded and sent to the template system, ten pages and / or sections, each corresponding to a single person object, can be generated.

Beispielhafte Auswahl und Ausführung einer VorlageExemplary selection and execution of a template

Erneut Bezug nehmend auf 1 beschreiben die Aktionen 1 bis 2 Operationen, die beim Generieren einer Code aufweisenden Vorlage durchgeführt werden können. Sobald eine Code aufweisende Vorlage generiert wurde und in der Vorlagen-Speichervorrichtung 106 gespeichert wurde, kann diese Code aufweisende Vorlage durch die Bedienperson und/oder beliebige andere Benutzer zur Verwendung bei einer Erzeugung eines auf der Vorlage basierenden Dokuments ausgewählt werden. Die Aktionen 3 bis 5 von 1 zeigen beispielhafte Prozesse, die von einem Benutzer durchgeführt werden können, und zwar beim Auswählen einer Vorlage, beim Auswählen eines oder mehrerer Objekte, von denen Information in dem basierend auf der Vorlage generierten Dokument verwendet werden soll, und beim Generieren des Dokuments basierend auf den Objekteigenschaften.Referring again to 1 describe the actions 1 to 2 operations that can be performed when generating a code-containing template. Once a code-containing template has been generated and stored in the template storage device 106 has been stored, this template having the code may be selected by the operator and / or any other user for use in creating a document based on the template. The actions 3 to 5 of 1 show exemplary processes that may be performed by a user when selecting a template, selecting one or more objects from which to use information in the document generated based on the template, and generating the document based on the object properties ,

Bei Aktion 3 wählt der Benutzer der Benutzer-Rechnervorrichtung 102 eines oder mehrere Objekte aus, die in das Dokument/den Bericht inkludiert werden sollen. Falls der Benutzer beispielsweise ein Strafverfolgungsbeamter ist und einen Bericht wünscht, der jeweils Information betreffend zehn Verdächtige enthält, können diese zehn Verdächtigen ausgewählt werden. Bezug nehmend auf 4A ist beispielsweise eine Benutzerschnittstelle 400 einer Software-Anwendung gezeigt, die konfiguriert ist, Daten betreffend Objekte zu liefern und dem Benutzer zu ermöglichen, eines oder mehrere der Datenobjekte auszuwählen. Die beispielhafte Benutzerschnittstelle 400 weist ein Suchfeld 402, einen Objektanzeigebereich 404 und eine Menüleiste 406 auf. Eine Bedienperson, z. B. der Benutzer der Benutzer-Rechnervorrichtung 102, kann mittels einer per Tastatur und/oder anderweitig erfolgenden Eingabe von Daten in das Suchfeld 402, eines oder mehrere Datenobjekte laden, nachschlagen und/oder abrufen. Beispielsweise kann, durch Tastatureingabe des Namens einer Person, beispielsweise „John Doe”, das Person-Objekt 410 im Objekt-Anzeigebereich 404 angezeigt werden. Die weiteren Person-Objekte 412 (welche die Objekte 412A, 412B und/oder 412C beinhalten) können automatisch und/oder nach Benutzerinteraktion der Bedienperson mit dem Person-Objekt 410 angezeigt werden. Beispielsweise kann eine Bedienperson das Person-Objekt 410 auswählen und eine Option wählen, um Partner und/oder Personen, die mit dem Person-Objekt 410 in Beziehung stehen, anzuzeigen. Die Links 414A, 414B und/oder 414C können Beziehungen zwischen dem Person-Objekt 410 und den in Beziehung stehenden Person-Objekten 412A, 412B bzw. 412C anzeigen. Beispielsweise können die Person-Objekte 412 in Beziehung stehen zum Person-Objekt 410, beispielsweise, jedoch nicht eingeschränkt auf, Partner, Bekannte bzw. Familienmitglieder. Die Benutzerschnittstelle 400 kann fähig sein, einen beliebigen Typ von Datenobjekt anzuzeigen und/oder kann nicht auf ein Anzeigen von Person-Datenobjekten eingeschränkt sein.In action 3, the user selects the user computing device 102 one or more objects to be included in the document / report. For example, if the user is a law enforcement officer and wants a report containing information regarding ten suspects each, these ten suspects may be selected. Referring to 4A is for example a user interface 400 a software application configured to provide data regarding objects and to allow the user to select one or more of the data objects. The exemplary user interface 400 has a search box 402 , an object display area 404 and a menu bar 406 on. An operator, for. B. the user of the user computing device 102 , can by means of a keyboard and / or otherwise entering data in the search box 402 load, look up, and / or retrieve one or more data objects. For example, by keystroke the name of a person, such as "John Doe," the Person object 410 in the object display area 404 are displayed. The other person objects 412 (which the objects 412A . 412B and or 412C can) automatically and / or after user interaction of the operator with the person object 410 are displayed. For example, an operator may select the person object 410 Select and choose an option to partner and / or persons with the person object 410 are related to display. The links 414A . 414B and or 414C can relationships between the person object 410 and the related person objects 412A . 412B respectively. 412C Show. For example, the person objects 412 related to the person object 410 For example, but not limited to, partners, acquaintances or family members. The user interface 400 may be able to display any type of data object and / or may not be limited to displaying person-data objects.

Bei einigen Ausführungsformen können die eingebetteten Code-Anweisungen eines oder mehrere zusätzliche Datenobjekte basierend auf dem einen oder den mehreren ausgewählten Objekten bestimmen. Beispielsweise können, für ein gewähltes Person-Objekt, bekannte Partner-Objekte und/oder die Verhaftungsregister-Objekte aus den eingebetteten Code-Anweisungen programmatisch bestimmt werden, beispielsweise unter Verwendung von Verfahren, die erörtert werden in der U.S.-Patentanmeldung Serien-Nr. 13/968,265 und der U.S.-Patentanmeldung Serien-Nr. 13/968,123, deren Offenbarungen hiermit durch Bezugnahme vollinhaltlich in das vorliegende Dokument aufgenommen werden. Beispielsweise kann das ausgewählte Person-Datenobjekt ein Ausgangspunkt sein, um eines oder mehrere zusätzliche in Beziehung stehende Datenobjekte zu bestimmen. Beispielsweise kann ein Diebstahlsfahrzeugregister-Objekt, das die Farbeigenschaft „Rot” hat, durch die Bedienperson ausgewählt werden, und die eingebetteten Code-Anweisungen einer Vorlage können Datenobjekte identifizieren, die mit Bildern von roten Autos assoziiert sind, welche mit überhöhter Geschwindigkeit fahrend in der Nähe des Standortes des gestohlenen Fahrzeugs beobachtet wurden (z. B. wie in den Objekteigenschaften dieser Datenobjekte angegeben).In some embodiments, the embedded code instructions may determine one or more additional data objects based on the one or more selected objects. For example, for a selected person object, known partner objects and / or the arrest register objects may be programmatically determined from the embedded code instructions, for example, using methods discussed in U.S. Patent Application Serial Number. 13 / 968,265 and US patent application serial no. 13 / 968,123, the disclosures of which are hereby incorporated herein by reference in their entirety. For example, the selected person data object may be a starting point for associating one or more additional related data objects determine. For example, a theft vehicle register object having the color property "red" may be selected by the operator, and the embedded code instructions of a template may identify data objects associated with images of red cars driving at excessive speed nearby the location of the stolen vehicle (for example, as indicated in the object properties of these data objects).

Bei einigen Ausführungsformen können die eingebetteten Code-Anweisungen auf Daten von weiteren Server und/oder Websites zugreifen, die sich entweder innerhalb und/oder außerhalb des Vorlagensystems befinden. Beispielsweise kann durch die eingebetteten Code-Anweisungen auf ein Bild von „Google Street View” zugegriffen werden und/oder dieses geladen werden. Das Bild von Google Street View kann mit der Ort-Eigenschaft eines Datenobjekts assoziiert sein. Durch Ausführung der Code-Anweisung mittels des Vorlagensystems 100 von 1 (und/oder des später noch erläuterten Vorlagen-Prozessors 109) kann auf weitere Daten zugegriffen werden und/oder diese geladen werden, beispielsweise, jedoch nicht eingeschränkt auf, Währungskurse, Wetterdaten, Nachrichtenmeldungen und/oder eine beliebige andere verfügbare Information.In some embodiments, the embedded code instructions may access data from other servers and / or Web sites located either within and / or outside the template system. For example, the embedded code instructions may access and / or load an image of "Google Street View". The image of Google Street View may be associated with the location property of a data object. By executing the code statement using the template system 100 from 1 (and / or the later explained template processor 109 ), other data may be accessed and / or loaded, including, but not limited to, currency rates, weather data, news stories, and / or any other information available.

Zusätzlich zu einem visuellen Suchen und/oder Darstellen von Datenobjekten und/oder Beziehungen zwischen Datenobjekten kann die Benutzerschnittstelle 400 verschiedene weitere Handhabungen ermöglichen. Beispielsweise können Datenobjekte durchgesehen werden (z. B. durch Betrachten von Eigenschaften und/oder assoziierten Daten der Datenobjekte), gefiltert werden (z. B. durch Eingrenzen der Gesamtheit von Objekten in Mengen und Teilmengen anhand von Eigenschaften oder Beziehungen), und statistisch aggregiert werden (z. B. basierend auf Summierungskriterien numerisch aufsummiert werden), neben weiteren Operationen und Visualisierungen.In addition to visually searching and / or presenting data objects and / or relationships between data objects, the user interface may 400 allow various other manipulations. For example, data objects may be reviewed (eg, by viewing properties and / or associated data of the data objects), filtered (eg, by narrowing down the set of objects into sets and subsets by properties or relationships), and statistically aggregated will be numerically summed based on summation criteria, among other operations and visualizations.

Wenn ein Benutzer die passenden Objekte zur Verwendung in dem generierten Dokument ausgewählt hat, kann er dann eine oder mehrere von verschiedenen verfügbaren Vorlagen auswählen, die beim Generieren eines Dokuments zu verwenden sind, das Eigenschaften der ausgewählten Objekte beinhaltet. Beispielsweise stellt 4B die Benutzerschnittstelle 400 von 4A dar, wobei eine spezielle Vorlage ausgewählt ist, zur Verwendung beim Generieren eines Dokuments basierend auf den ausgewählten Objekten (bei dieser Ausführungsform allen angezeigten Objekten). Bei diesem Beispiel hat die Bedienperson die Vorlage „Meine Vorlage” 426 ausgewählt, und zwar durch Zugreifen auf ein ausgewähltes „ERMITTLUNG”-Menü 420, Auswählen des „Datenexport”-Menüelementes 422, und dann durch Auswählen der Vorlage 426 aus einer Liste 424 jeglicher dem Benutzer zur Verfügung stehender Vorlagen. Bei einigen Ausführungsformen erfolgt durch Auswählen einer speziellen Vorlage (z. B. „Meine Vorlage” 426), die Einleitung des Prozesses einer Generierung eines benutzerangepassten Dokuments basierend auf allen Datenobjekten, die in den Objekten im Anzeigebereich 404 angezeigt werden. Bei einigen Ausführungsformen kann die Vorlagen-Benutzerschnittstelle 400 der Bedienperson ermöglichen, Datenobjekte einzeln oder in einer Gruppe auszuwählen, unabhängig davon, ob diese Objekte im Anzeigebereich 404 sichtbar bleiben oder nicht. Somit kann, beim Auswählen des Vorlagen-Menüelementes 426, ein benutzerangepasstes Dokument aus den ausgewählten Datenobjekten generiert werden.If a user has selected the appropriate objects for use in the generated document, he may then select one or more of various available templates to use in generating a document that includes properties of the selected objects. For example 4B the user interface 400 from 4A with a specific template selected for use in generating a document based on the selected objects (all displayed objects in this embodiment). In this example, the operator has the template "My template" 426 selected by accessing a selected "DETERMINATION" menu 420 , Selecting the "Data Export" menu item 422 , and then by selecting the template 426 from a list 424 any templates available to the user. In some embodiments, selecting a specific template (eg, "My Template") 426 ), the initiation of the process of generating a customized document based on all data objects in the objects in the display area 404 are displayed. In some embodiments, the template user interface may 400 allow the operator to select data objects individually or in a group, regardless of whether these objects are in the display area 404 stay visible or not. Thus, when selecting the template menu item 426 , a custom document will be generated from the selected data objects.

Bei einigen Ausführungsformen kann das Vorlagensystem eine Schnittstelle aufweisen, die das Senden und/oder Hochladen von Vorlagen akzeptiert, derart, dass die Vorlagen in der Menüliste 424 vorhanden sein können. Beispielsweise kann, nach der Erzeugung und/oder Generierung einer Vorlage mit eingebetteten Code-Anweisungen, die einem XML-basierten Dokumentformat entsprechen kann, welches das XML-Dokument 310B in 3C aufweist, eine Bedienperson dann die Vorlage zum Vorlagensystem hochladen. Die Menüliste 424 der Benutzerschnittstelle kann dann automatisch mit der neuesten Liste von verfügbaren Vorlagen befüllt werden.In some embodiments, the template system may include an interface that accepts the sending and / or uploading of templates, such that the templates are in the menu list 424 can be present. For example, after creating and / or generating a template with embedded code instructions, which may correspond to an XML-based document format containing the XML document 310B in 3C an operator then upload the template to the template system. The menu list 424 The user interface can then be automatically populated with the latest list of available templates.

Erneut Bezug nehmend auf 1 werden, sobald die Vorlage und die Objekte, die in das generierte Dokument zu inkludieren sind, ausgewählt sind, Angaben über die getroffene Auswahl an das Vorlagensystem 100 übertragen, zur Verwendung durch die Auswahleinheit 108, um Eigenschaften der ausgewählten Objekte zur Verwendung im generierten Dokument zu beschaffen und um auf die ausgewählte Vorlage zuzugreifen. Beispielsweise kann die getroffene Datenauswahl 120 von der Benutzer-Rechnervorrichtung 102 über das Netzwerk an die Auswahleinheit 108 gesendet werden. Wie zuvor angemerkt, kann die getroffene Datenauswahl 120 eines oder mehrere gewählte Datenobjekte und/oder gewählte Vorlagen beinhalten. Die Auswahleinheit 108 kann die Vorlage aus der Vorlagen-Speichervorrichtung 106 laden und/oder abrufen, basierend auf der Datenauswahl 120. Die Auswahleinheit 108 kann Daten betreffend die in der Auswahl 120 identifizierten Datenobjekte aus der Objekt-Speichervorrichtung 130 anfordern, empfangen und/oder laden. Die Auswahleinheit 108 kann die Vorlage und/oder die Datenobjekte an den Vorlagen-Prozessor 109 senden.Referring again to 1 As soon as the template and the objects to be included in the generated document are selected, the selection made to the template system will be made 100 transferred for use by the selection unit 108 to get properties of the selected objects for use in the generated document and to access the selected template. For example, the data selection made 120 from the user computing device 102 over the network to the selection unit 108 be sent. As noted previously, the data selection made 120 include one or more selected data objects and / or selected templates. The selection unit 108 Can the template from the template storage device 106 load and / or retrieve based on the data selection 120 , The selection unit 108 may have data regarding those in the selection 120 identified data objects from the object storage device 130 request, receive and / or load. The selection unit 108 can copy the template and / or the data objects to the template processor 109 send.

Bei Aktion 5 generiert der Vorlagen-Prozessor das benutzerangepasste Dokument 150 basierend auf der Vorlage mit eingebetteten ausführbaren Anweisungen und den Datenobjekten 140 (und/oder Eigenschaften von Datenobjekten), auf die bei der Objekt-Speichervorrichtung 130 zugegriffen wurde. Das benutzerangepasste Dokument 150 mit Eigenschaften von den Datenobjekten, die vom Vorlagen-Prozessor 109 ausgegeben werden, können über das Netzwerk 160 an die Benutzer-Rechnervorrichtung 120 gesendet werden. Somit ist der Vorlagen-Prozessor 109 konfiguriert, um ausführbaren Code in der Vorlage zu identifizieren, auf Eigenschaften der ausgewählten, bestimmten und/oder geladenen Objekte basierend auf dem ausführbaren Code zuzugreifen, und den ausführbaren Code durch die Ausgabe des speziellen ausführbaren Codesegmentes zu ersetzen. 3D zeigt das beispielhafte XML-Dokument von 3C, wobei die eingebetteten Code-Anweisungen durch Information betreffend ausgewählte Datenobjekte ersetzt sind. Das ausgegebene XML-Dokument kann für eine Interpretation durch eine Betrachtersoftware konfiguriert sein, beispielsweise eine Textverarbeitung (z. B. Microsoft Word), einen Browser und/oder eine andere Software, um ein benutzerangepasstes Dokument, das die Objektdaten beinhaltet, bildlich darzustellen.In action 5, the template processor generates the custom document 150 based on the template with embedded executables Instructions and the data objects 140 (and / or properties of data objects) referenced by the object storage device 130 was accessed. The custom document 150 with properties of the data objects used by the template processor 109 can be issued over the network 160 to the user computing device 120 be sent. Thus, the template processor is 109 configured to identify executable code in the template, access properties of the selected, determined and / or loaded objects based on the executable code, and replace the executable code with the output of the particular executable code segment. 3D shows the exemplary XML document of 3C wherein the embedded code instructions are replaced by information concerning selected data objects. The output XML document may be configured for interpretation by viewer software, such as a word processor (eg, Microsoft Word), a browser, and / or other software to display a customized document containing the object data.

In diesem Beispiel illustriert das Element „<Text> John Doe </Text>”, dass das, was ursprünglich der BEZEICHNER-PLATZHALTER der Platzhalter-Vorlage war, durch den Namen-Eigenschaftswert eines Person-Objektes ersetzt wurde, auf das basierend auf einer Ausführung des ausführbaren Code „<%= print(Objekt.getName) %>” in der Vorlage zugegriffen wurde. In ähnlicher Weise ist ein Bild-Name, der dem Person-Objekt „John Doe” entspricht, anstelle des Bild-Platzhalters im ausgegebenen XML-Dokument 320 enthalten. Die anderen PLATZHALTER-Elemente der Tabelle 302 wurden ebenfalls durch Eigenschaften des gewählten Objektes ersetzt, ansprechend auf eine Ausführung der entsprechenden Codesegmente, durch die mittels des Vorlagen-Prozessors 109 die Platzhalter ersetzt wurden.In this example, the element "<text> John Doe </ text>" illustrates that what was originally the DESIGNARY PLACEHOLDER of the placeholder template has been replaced with the name property value of a person object based on a Execution of executable code "<% = print (object.getName)%>" was accessed in the template. Similarly, an image name corresponding to the person object "John Doe" is used instead of the image placeholder in the output XML document 320 contain. The other PLACEHOLDER elements of the table 302 were also replaced by properties of the selected object, in response to execution of the corresponding code segments by the template processor 109 the placeholders have been replaced.

Zwar illustriert das ausgegebene XML-Dokument 320 eine Ausgabe, die von einem Ausführen von eingebetteten Anweisungen von einem einzelnen Person-Datenobjekt herrührt, jedoch zeigt das Auslassungszeichen 322, dass möglicherweise ein Zugreifen auf mehrere Person-Datenobjekte erfolgt ist und entsprechende eingebettete Code-Anweisungen ausgeführt wurden. Als Ergebnis kann das Auslassungszeichen 322 mehrere Abschnitte und/oder Seiten des Ausgabedokuments umfassen, die mehreren Person-Datenobjekten entsprechen können. Wenn beispielsweise die Objektauswahl 120 die vier in 4A identifizierten Person-Objekte beinhaltet, kann das ausgegebene XML-Dokument 320 separate Abschnitte (z. B. entsprechend separaten Abschnitten eines Dokuments, Seiten des Dokuments oder separaten Dokumenten) für jedes der ausgewählten Objekte beinhalten.Although illustrates the output XML document 320 however, an output that results from executing embedded instructions from a single person data object shows the ellipsis 322 that multiple person data objects may have been accessed and appropriate embedded code instructions executed. As a result, the ellipsis 322 include multiple sections and / or pages of the output document that may correspond to multiple person-data objects. For example, if the object selection 120 the four in 4A contains identified person-objects, the output XML-document 320 include separate sections (eg, corresponding to separate sections of a document, pages of the document, or separate documents) for each of the selected objects.

3E zeigt ein beispielhaftes benutzerangepasstes Dokument, das einem Benutzer zurückgegeben werden kann, beispielsweise das benutzerangepasste Dokument 150 von 1. Bei einer Ausführungsform wird das benutzerangepasste Dokument 330 durch den Vorlagen-Prozessor 109 generiert, was mit Bezug auf Block 210 von 2 weiter erläutert wird. Das beispielhafte benutzerangepasste Dokument 330 zeigt, wie ein ausgegebenes benutzerangepasstes Dokument von einer Bedienperson wahrgenommen wird, die das benutzerangepasste Dokument 330 in einer Dokumentverarbeitungsanwendung betrachtet (z. B. der Benutzer der Benutzer-Rechnervorrichtung 102, der das Dokument in einer Textverarbeitung betrachtet). Beispielsweise entsprechen der Bezeichner 332, das Bild 334 und/oder die Tabelle 336 den XML-Elementen des benutzerangepassten XML-Dokuments 320 von 3D. Wie dargestellt, umfasst das benutzerangepasste Dokument 330 mehrere Seiten, die mehreren Person-Objekten entsprechen können, welche durch das Vorlagensystem verarbeitet werden, wie beispielsweise die vier beispielhaften Objekte, die in der Benutzerschnittstelle von 4A ausgewählt wurden. 3E shows an exemplary user-customized document that may be returned to a user, such as the customized document 150 from 1 , In one embodiment, the customized document becomes 330 through the template processor 109 generated what with regard to block 210 from 2 will be explained further. The exemplary user-customized document 330 Figure 4 shows how an output user-customized document is perceived by an operator holding the user-customized document 330 in a document processing application (e.g., the user of the user computing device 102 looking at the document in a word processor). For example, the identifier matches 332 , the picture 334 and / or the table 336 the XML elements of the custom XML document 320 from 3D , As shown, the customized document includes 330 a plurality of pages that may correspond to multiple person objects processed by the template system, such as the four example objects included in the user interface of FIG 4A were selected.

Das Vorlagensystem kann das benutzerangepasste Dokument 330 in effizienter Weise ausgeben, da es auf einer Vorlage basieren kann. Beispielsweise kann das Vorlagensystem die eingebetteten Code-Anweisungen des Vorlagendokuments ausführen und/oder ersetzen, wie durch das modifizierte XML-Dokument 310B dargestellt. Somit kann das Vorlagensystem den gesamten statischen Text und/oder alles abgesehen von den eingebetteten Anweisungen des Vorlagendokuments erneut verwenden, um das benutzerangepasste Dokument zu generieren. Außerdem ist es möglich, dass das Vorlagensystem die spezifischen Details eines speziellen Dokumentformats wie beispielsweise, jedoch nicht eingeschränkt auf, Microsoft Word, nicht kennt. Ähnlich einer Vorlage, die ein XML-basiertes Dokumentformat beinhalten kann, kann das benutzerangepasste Dokument 330 ebenfalls ein XML-basiertes Dokumentformat beinhalten. Somit kann das benutzerangepasste Dokument 330 das benutzerangepasste XML-Dokument 320 von 3D beinhalten.The template system can be the user-customized document 330 efficiently, as it can be based on a template. For example, the template system may execute and / or replace the embedded code instructions of the template document, such as by the modified XML document 310B shown. Thus, the template system may reuse all of the static text and / or all but the embedded instructions of the template document to generate the customized document. It is also possible that the template system does not know the specific details of a particular document format such as, but not limited to, Microsoft Word. Similar to a template that may include an XML-based document format, the customized document 330 also include an XML-based document format. Thus, the customized document 330 the custom XML document 320 from 3D include.

Das Vorlagensystem kann das benutzerangepasste Dokument 330 ausgeben, in das Eigenschaften von Datenobjekten eingesetzt wurden und/oder dessen Dokumentformat, Aufbereitung, Layout etc. mit dem Vorlagendokument 300 von 3A übereinstimmt, das von der Bedienperson ursprünglich erzeugt worden sein kann.The template system can be the user-customized document 330 in which properties of data objects were used and / or its document format, format, layout etc. with the template document 300 from 3A which may have been originally generated by the operator.

Bei einigen Ausführungsformen kann sich die Benutzer-Rechnervorrichtung 102, das Vorlagensystem 100 und die Objekt-Speichervorrichtung 130 auf derselben Rechnervorrichtung oder mehreren Rechnervorrichtungen befinden. Bei einigen Ausführungsformen kann die Kommunikation zwischen der Benutzer-Rechnervorrichtung 102, dem Vorlagensystem 100 und der Objekt-Speichervorrichtung 130 ohne Verwendung des Netzwerkes 160 erfolgen. Falls sich beispielsweise die Benutzer-Rechnervorrichtung 102, das Vorlagensystem 100 und die Objekt-Speichervorrichtung 130 auf derselben Rechnervorrichtung befinden, könnte die Kommunikation ohne Verwendung eines Netzwerkes erfolgen.In some embodiments, the user computing device may 102 , the master system 100 and the object storage device 130 on the same computing device or multiple computing devices. For some Embodiments may include communication between the user computing device 102 , the master system 100 and the object storage device 130 without using the network 160 respectively. For example, if the user computing device 102 , the master system 100 and the object storage device 130 On the same computing device, the communication could be done without using a network.

Datenobjektedata objects

Bei einigen Ausführungsformen sind Daten konzeptionell gemäß einem Objekt-Datenmodell strukturiert, das durch eine Ontologie repräsentiert wird. Das konzeptionelle Datenmodell kann von jeglichem speziellen und/oder spezifischen Typ von Datenspeicher (Data Store) unabhängig sein. Beispielsweise kann jedes Objekt des konzeptionellen Datenmodells einer oder mehreren Zeilen in einer relationalen Datenbank und/oder einem Objekt in einem In-Memory-Cache entsprechen.In some embodiments, data is conceptually structured according to an object data model represented by an ontology. The conceptual data model may be independent of any specific and / or specific type of data store. For example, each object of the conceptual data model may correspond to one or more rows in a relational database and / or an object in an in-memory cache.

Bei einigen Ausführungsformen kann eine Ontologie, wie zuvor angemerkt, gespeicherte Information beinhalten, die ein Datenmodell für ein Speichern von Daten in einem Datenspeicher (Data Store) liefert. Die Ontologie kann durch einen oder mehrere Objekttypen definiert sein, die jeweils mit einem oder mehreren Eigenschaftstypen assoziiert sein können.In some embodiments, as noted above, an ontology may include stored information that provides a data model for storing data in a data store. The ontology may be defined by one or more object types, each of which may be associated with one or more property types.

Auf der höchsten Abstraktionsebene ist ein Datenobjekt ein Container für Information, der Dinge in der materiellen Welt repräsentiert. Beispielsweise kann ein Datenobjekt eine Entität wie beispielsweise eine Person, einen Platz, eine Organisation, ein Marktinstrument und/oder dergleichen repräsentieren. Datenobjekte können ein Ereignis repräsentieren, das zu einem Zeitpunkt und/oder während einer Zeitdauer auftritt. Datenobjekte können ein Dokument und/oder weitere unstrukturierte Datenquellen wie beispielsweise eine E-Mail-Nachricht, einen Nachrichtenreport, ein Schriftstück und/oder einen Artikel repräsentieren. Jedem Datenobjekt kann eine eindeutige Kennung zugehörig sein, die das Datenobjekt im Datenspeicher (Data Store) eindeutig identifiziert.At the highest level of abstraction, a data object is a container of information that represents things in the material world. For example, a data object may represent an entity such as a person, a place, an organization, a market instrument, and / or the like. Data objects may represent an event occurring at a time and / or during a period of time. Data objects may represent a document and / or other unstructured data sources, such as an e-mail message, a news report, a document, and / or an article. Each data object may have a unique identifier that uniquely identifies the data object in the data store.

Unterschiedliche Typen von Datenobjekten können unterschiedliche Eigenschaftstypen aufweisen. Beispielsweise könnte ein „Person”-Datenobjekt einen „Augenfarbe”-Eigenschaftstyp aufweisen, und ein „Ereignis”-Datenobjekt könnte einen „Daten”-Eigenschaftstyp aufweisen. Jede Eigenschaft, wie durch Daten im Datenspeicher (Data Store) repräsentiert, kann einen Eigenschaftstyp aufweisen, der durch die im Datenspeicher (Data Store) verwendete Ontologie definiert ist.Different types of data objects can have different property types. For example, a "person" data object might have an "eye color" property type, and an "event" data object might have a "data" property type. Each property, as represented by data in the data store, can have a property type defined by the ontology used in the data store.

Objekte können im Datenspeicher (Data Store) gemäß der entsprechenden Objektdefinition für das entsprechende Objekt in der Ontologie instanziiert sein. Beispielsweise kann eine spezifische Geldzahlung (z. B. ein Objekt vom Typ „Ereignis”) von US$ 30,00 (z. B. eine Eigenschaft vom Typ „Währung”), die am 27.03.2009 stattfindet (z. B. eine Eigenschaft vom Typ „Datum”) im Datenspeicher (Data Store) als Ereignis-Objekt mit assoziierten Währungs- und Datumseigenschaften, wie in der Ontologie definiert, gespeichert werden.Objects can be instantiated in the data store according to the corresponding object definition for the corresponding object in the ontology. For example, a specific monetary payment (for example, an event-type object) may be $ 30.00 (for example, a currency type property) that takes place on March 27, 2009 (e.g. Date property) in the data store as an event object with associated currency and date properties as defined in the ontology.

Die in der Ontologie definierten Datenobjekte können eine Eigenschaftsmultiplizität unterstützen. Beispielsweise kann es zulässig sein, dass ein Datenobjekt mehr als eine Eigenschaft von dem gleichen Eigenschaftstyp aufweist. Beispielsweise könnte ein „Person”-Datenobjekt mehrere „Adresse”-Eigenschaften oder mehrere „Name”-Eigenschaften aufweisen.The data objects defined in the ontology can support a property multiplicity. For example, a data object may have more than one property of the same property type. For example, a "person" data object might have multiple "address" properties or multiple "name" properties.

Bei einigen Ausführungsformen können die Datenobjekte, die das Vorlagensystem erhält, einer Ontologie entsprechen, gemäß den Systemen, Verfahren und/oder Techniken, die in der Ontologie-Quellenangabe offenbart sind.In some embodiments, the data objects that the template system receives correspond to an ontology according to the systems, methods, and / or techniques disclosed in the ontology citation.

Beispielhafter DokumentgenerierungsprozessExemplary document generation process

2 ist ein Ablaufdiagramm, das einen Prozess einer Generierung eines Dokuments aus einer Vorlage darstellt, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Das Verfahren von 2 kann durch das Vorlagensystem 100 von 1 durchgeführt werden, beispielsweise die verschiedenen Komponenten von 1, die zuvor erläutert wurden, einschließlich des Vorlagen-Prozessors 109. Abhängig von der Ausführungsform kann das Verfahren von 2 eine geringere oder eine größere Anzahl von Blöcken beinhalten und/oder die Blöcke können in einer unterschiedlichen Reihenfolge als dargestellt ausgeführt werden. 2 FIG. 10 is a flowchart illustrating a process of generating a document from a template, in accordance with some embodiments of the present disclosure. The procedure of 2 can through the template system 100 from 1 be performed, for example, the various components of 1 previously discussed, including the template processor 109 , Depending on the embodiment, the method of 2 include a smaller or larger number of blocks and / or the blocks may be executed in a different order than shown.

Beginnend bei Block 202 wird auf Eigenschaften von einem oder mehreren Datenobjekten zugegriffen. Beispielsweise kann ein Person-Objekt, das einige oder alle von den Eigenschaften dieses Person-Objektes beinhaltet, vom Vorlagensystem 100 empfangen werden. Das Person-Objekt kann eine oder mehrere Eigenschaften besitzen, beispielsweise eines oder mehrere der Folgenden, und zwar Namen, Adressen und weitere Daten.Starting at block 202 The properties of one or more data objects are accessed. For example, a person object that includes some or all of the properties of that person object may be from the template system 100 be received. The Person object may have one or more properties, such as one or more of the following, including names, addresses, and other data.

Bei Block 204 wird eine Vorlage empfangen und/oder auf diese zugegriffen. Die Vorlage kann einem oder mehreren der zuvor erläuterten Formate entsprechen. Beispielsweise kann die Vorlage ein Word-Dokument sein.At block 204 a template is received and / or accessed. The template may correspond to one or more of the previously explained formats. For example, the template may be a Word document.

Bei Block 206 werden ausführbare Code-Anweisungen von der Vorlage geparst. Eines oder mehrere Escape-Zeichen können verwendet werden, um einen Block einer ausführbaren Code-Anweisung in der Vorlage zu bezeichnen. Beispielsweise können die Zeichen „<%” und „%>” jeweils den Anfang und das Ende eines Blockes einer ausführbaren Code-Anweisung und/oder einen Satz von ausführbaren Code-Anweisungen bezeichnen. Weitere Escape-Zeichen und/oder Auszeichnungen können verwendet werden, um ausführbare Code-Anweisungen in einer Vorlage zu bezeichnen. Die ausführbaren Code-Anweisungen können einer oder mehreren Programmiersprachen entsprechen. At block 206 Executable code statements are parsed from the template. One or more escape characters may be used to designate a block of an executable code statement in the template. For example, the characters "<%" and "%>" may designate, respectively, the beginning and the end of a block of executable code instruction and / or a set of executable code instructions. Additional escape characters and / or awards may be used to designate executable code statements in a template. The executable code instructions may correspond to one or more programming languages.

Bei Block 208 werden die ausführbaren Code-Anweisungen von der Vorlage ausgeführt. Auf Datenobjekte und/oder Eigenschaften der Datenobjekte kann durch die ausführbaren Code-Anweisungen zugegriffen werden. Die ausführbaren Code-Anweisungen können auch Programmierlogik enthalten. Beispielsweise können ausführbare Code-Anweisungen auf ein Person-Objekt zugreifen, eine Überprüfung auf Eigenschaften wie beispielsweise Wohnsitze vornehmen, und/oder lediglich die Adresse des letzten Wohnsitzes ausdrucken.At block 208 The executable code statements are executed by the template. Data objects and / or properties of the data objects can be accessed through the executable code instructions. The executable code instructions may also include programming logic. For example, executable code instructions may access a person object, check for properties such as residences, and / or print only the address of the most recent residence.

Bei Block 210 wird ein benutzerangepasstes Dokument generiert. Das benutzerangepasste Dokument kann Eigenschaften der empfangenen Datenobjekte und/oder Übersichtsdaten betreffend die Eigenschaften der empfangenen Datenobjekte beinhalten. Das Dokument kann von Format und/oder Typ dem Format und/oder Typ der Vorlage entsprechen. Falls beispielsweise es sich bei der Vorlage um ein Word-Dokument handelte, kann das Dokument auch ein Word-Dokument sein. Das Dokument kann dadurch generiert werden, dass die ausführbaren Code-Anweisungen in der Vorlage durch die entsprechende generierte Ausgabe ersetzt wird. Es ist möglich, dass das eigentliche Vorlagendokument nicht modifiziert wird. Beispielsweise kann eine Kopie des Vorlagendokuments erstellt werden, und die ausführbaren Code-Anweisungen in der Vorlagenkopie können ersetzt werden.At block 210 a user-customized document is generated. The customized document may include properties of the received data objects and / or summary data regarding the properties of the received data objects. The document may be of the same format and / or type as the template and / or type. For example, if the template was a Word document, the document could also be a Word document. The document can be generated by replacing the executable code statements in the template with the corresponding generated output. It is possible that the actual template document will not be modified. For example, a copy of the template document can be created, and the executable code instructions in the template copy can be replaced.

Vornehmen von Änderungen an einer fertigen VorlageMake changes to a finished template

Es ist möglich, dass es von eine Bedienperson gewünscht, gewollt ist, und/oder es notwendig ist, das Aussehen, die Gestaltung, die Formatierung und/oder das Layout einer fertigen Vorlage zu modifizieren, nachdem die eingebetteten Anweisungen zur Vorlage hinzugefügt wurden. Beispielsweise kann die Bedienperson die ursprüngliche Platzhalter-Vorlage, die noch keine der eingebetteten Codeanweisungen enthielt, in einer Textverarbeitungsanwendung, beispielsweise, jedoch nicht eingeschränkt auf, Microsoft Word, modifizieren. Die Bedienperson oder ein automatisierter Prozess und/oder ein Werkzeug können dann die eingebetteten Anweisungen aus der bestehenden Vorlage in die neue Platzhalter-Vorlage kopieren. Als Ergebnis wird eine neue Vorlage mit der Gestaltung, Formatierung und/oder Layout-Änderungen in dem aktualisierten Dokumentformat erzeugt, wobei diese jedoch weiterhin die passenden eingebetteten Code-Anweisungen enthält. Somit kann eine Bedienperson die erforderlichen Änderungen in der Textverarbeitungsanwendung vornehmen, wodurch es möglicherweise kaum noch erforderlich ist, dass die Bedienperson ein komplexes Dokumentformat, beispielsweise, jedoch nicht eingeschränkt auf, ein XML-basiertes Dokumentformat versteht und/oder Änderungen an diesem vornehmen muss.It is possible that it may be desired, desired, and / or necessary for an operator to modify the appearance, design, formatting, and / or layout of a completed template after the embedded instructions have been added to the template. For example, the operator may modify the original placeholder template, which did not yet contain any of the embedded code instructions, in a word processing application such as, but not limited to, Microsoft Word. The operator or an automated process and / or tool can then copy the embedded instructions from the existing template to the new template template. As a result, a new template is created with the design, formatting, and / or layout changes in the updated document format, but still contains the appropriate embedded code instructions. Thus, an operator may make the necessary changes in the word processing application, which may make it almost unnecessary for the operator to understand and / or make changes to a complex document format such as, but not limited to, an XML-based document format.

Beispielhafte BenutzerschnittstellenExemplary User Interfaces

4A, 4B und 4C zeigen beispielhafte Benutzerschnittstellen des Vorlagensystems, oder eine Teilmenge von diesen, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Bei einigen Ausführungsformen können die zuvor und nachfolgend beschriebenen Benutzerschnittstellen in einem beliebigen geeigneten Computersystem und/oder einer -anwendung angezeigt werden, unter anderem beispielsweise in einem Fenster eines Web-Browsers und/oder einer eigenständigen Software-Anwendung. Zusätzlich können die Funktionalität und/oder Benutzerschnittstellen des Systems, wie in 4A, 4B und/oder 4C dargestellt, in einem oder mehreren Computer-Prozessoren und/oder Rechnervorrichtungen implementiert sein, wie mit Bezug auf 5 beschrieben wurde. Wie zuvor angemerkt, kann bei einigen Ausführungsformen die Benutzerschnittstelle 400 verwendet werden für die Objekt- und Datenauswahl 120, wie in 1 dargestellt. Bei einigen Ausführungsformen wird beim Auswählen eines spezifischen Vorlagen-Menüelementes 426 ein benutzerangepasstes Dokument erzeugt, das Objektdaten beinhaltet, die mit den ausgewählten Objekten assoziiert sind. Wie zuvor angemerkt, stellt 4A die Benutzerschnittstelle 400 dar, die mehrere Objekte 410, 412 sowie Verbindungen 414 zwischen den Objekten anzeigt. Abhängig von der Software-Anwendung (z. B. die Software Gotham von Palantir) können Objekte auf verschiedene Weise ausgewählt werden. Wie zuvor erläutert, stellt 4B beispielhafte Menüoptionen dar, die verwendet werden können, um eine spezielle Vorlage auszuwählen, die beim Generieren eines Ausgabedokuments zu verwenden ist, das Information betreffend die ausgewählten Objekte beinhaltet. 4A . 4B and 4C show exemplary user interfaces of the template system, or a subset thereof, in accordance with some embodiments of the present disclosure. In some embodiments, the user interfaces described above and below may be displayed in any suitable computer system and / or application, including but not limited to, for example, a window of a web browser and / or a stand-alone software application. In addition, the functionality and / or user interfaces of the system, as in 4A . 4B and or 4C illustrated, implemented in one or more computer processors and / or computing devices as described with reference to FIG 5 has been described. As noted previously, in some embodiments, the user interface 400 used for object and data selection 120 , as in 1 shown. In some embodiments, when selecting a specific template menu item 426 creates a custom document containing object data associated with the selected objects. As noted before 4A the user interface 400 representing multiple objects 410 . 412 as well as connections 414 between the objects. Depending on the software application (eg the Gotham software from Palantir), objects can be selected in different ways. As previously explained 4B exemplary menu options that may be used to select a particular template to use in generating an output document containing information regarding the selected objects.

Bezug nehmend auf 4C weist die beispielhafte Benutzerschnittstelle 400 ein Auswertungswerkzeug 430 auf, das ein Eingabefeld 432, eine Ausführen-Schaltfläche 434 und/oder ein Ausgabefeld 436 beinhaltet. Eine Bedienperson kann das Auswertungswerkzeug 430 verwenden, um ausführbare Code-Anweisungen auszuwerten und/oder zu testen, um deren probeweise Druckausgabe zu betrachten, bevor diese und/oder ähnliche Anweisungen in eine Vorlage eingebettet werden.Referring to 4C has the exemplary user interface 400 an evaluation tool 430 on, that is an input field 432 , a Run button 434 and / or an output field 436 includes. An operator can do that evaluation tool 430 use to evaluate and / or test executable code statements to view their trial printout before embedding them and / or similar instructions in a template.

Ein beispielhafter Verwendungsfall und/oder ein Szenario für das Auswertungswerkzeug 430 kann das Folgende sein. Wie zuvor erläutert, kann eine Bedienperson Datenobjekte 410 und/oder 412 laden und/oder abrufen, und dann keines, eines, einige oder alle Datenobjekte auswählen. Eine Bedienperson kann dann eine Tastatureingabe und/oder eine anderweitige Eingabe von Code-Anweisungen in das Eingabefeld 432 durchführen. Beispielsweise können einige oder alle Code-Anweisungen von 3C und/oder beliebige weitere Code-Anweisungen in das Eingabefeld 432 eingegeben werden. Eine Bedienperson kann dann ein Anklicken, Antippen und/oder Berühren der Ausführen-Schaltfläche 432 ausführen, was das Vorlagensystem veranlassen kann, die Codeanweisungen im Eingabefeld 432 auszuführen. Bei einigen Ausführungsformen kann, nachdem das Vorlagensystem die Code-Anweisungen ausgeführt hat, das Ausgabefeld automatisch mit der Ausgabe der ausgeführten Code-Anweisungen befüllt werden. Falls beispielsweise die Codeanweisungen im Eingabefeld 432 „<%= print(Objekt.getName) %>” waren, könnte im Ausgabefeld 436 „John Doe” angezeigt werden, was der Name-Eigenschaft eines gewählten Datenobjektes entsprechen kann. Bei einigen Ausführungsformen kann der Vorlagen-Prozessor 109 von 1 die Code-Anweisungen von dem Eingabefeld 432 ausführen.An exemplary use case and / or a scenario for the evaluation tool 430 can be the following. As previously explained, an operator may use data objects 410 and or 412 load and / or retrieve, and then select none, one, some or all of the data objects. An operator may then enter a keyboard input and / or otherwise enter code instructions into the input field 432 carry out. For example, some or all of the code statements of 3C and / or any other code statements in the input field 432 be entered. An operator may then click, tap, and / or touch the execute button 432 perform what the template system can do, the code statements in the input field 432 perform. In some embodiments, after the template system has executed the code instructions, the output field may be automatically populated with the output of the executed code instructions. For example, if the code statements in the input field 432 "<% = Print (object.getName)%>" could be in the output field 436 "John Doe" will be displayed, which may correspond to the Name property of a selected data object. In some embodiments, the template processor 109 from 1 the code statements from the input field 432 To run.

Bei einigen Ausführungsformen kann eine Bedienperson das Auswertungswerkzeug 430 verwenden, um in effizienter Weise ein Vorlagendokument zu generieren. Beispielsweise kann eine Bedienperson einen Test, eine Erprobung und/oder eine Vorschau von Code-Anweisungen durchführen, dadurch dass er ansieht, wie die Ausgabe dieser Code-Anweisungen aussehen könnte, bevor diese Anweisungen in eine Vorlage eingebettet werden. Das Auswertungswerkzeug 430 kann der Bedienperson ermöglichen, bei den Code-Anweisungen auftretende Problemfälle und/oder Probleme zu beheben, bevor eine Vorlage in das Vorlagensystem hochgeladen wird. Ohne das Auswertungswerkzeug 430 wäre es erforderlich, dass die Bedienperson eine Vorlage erzeugt, diese zum Vorlagensystem hochlädt, und dann die Vorlage bei Datenobjekten ausführt, um zu sehen, wie die Ausgabe dieser Code-Anweisungen aussehen würde. Somit kann das Auswertungswerkzeug 430 der Bedienperson Zeit sparen und/oder den Zeitaufwand verringern, der zum Generieren einer Vorlage benötigt wird.In some embodiments, an operator may use the evaluation tool 430 to efficiently generate a template document. For example, an operator may perform a test, test, and / or preview of code instructions by looking at what the output of those code instructions might look like before embedding those instructions in a template. The evaluation tool 430 may allow the operator to resolve any problem cases and / or issues with the code instructions before uploading a template to the template system. Without the evaluation tool 430 It would be necessary for the operator to create a template, upload it to the template system, and then run the template on data objects to see what the output of those code statements would look like. Thus, the evaluation tool 430 save the operator time and / or reduce the time required to generate a template.

Schnipsel (Snippets)Snippets

Bei einigen Ausführungsformen kann das Vorlagensystem verwendet werden, um Schnipsel (Snippets) in ein benutzerangepasstes Dokument einzufügen, gemäß den Systemen, Verfahren und/oder Techniken, die in den Schnipsel-Quellenangaben offenbart sind. Beispielsweise können die eingebetteten Code-Anweisungen einer Vorlage ausgewertet werden, um in Bezug zu Schnipsel-Objekten stehende Daten in das Dokument zu importieren, beispielsweise den Textteil der zurückgegebenen Schnipsel in den Hauptteil des Berichts zu importieren und/oder den Zitierteil des Schnipsels in eine Fußnote zu importieren. Auf diese Weise kann ein jeweiliges Schnipsel automatisch, ohne menschliches Eingreifen, zu dem Bericht hinzugefügt werden (sowie künftigen Berichten, die auf derselben Vorlage basieren).In some embodiments, the template system may be used to insert snippets into a customized document in accordance with the systems, methods, and / or techniques disclosed in the snippet references. For example, the embedded code instructions of a template may be evaluated to import data related to snippet objects into the document, for example to import the text portion of the returned snippets into the body of the report and / or the citation portion of the snippet into a footnote to import. In this way, a particular snippet can be automatically added to the report (and future reports based on the same template) without human intervention.

Implementierungsmechanismenimplementation mechanisms

Die verschiedenen hier erläuterten Rechnervorrichtung(en), beispielsweise das Vorlagensystem 100 von 1 wird/werden generell durch Betriebssystemsoftware wie beispielsweise, jedoch nicht eingeschränkt auf, iOS, Android, Chrome OS, Windows XP, Windows Vista, Windows 7, Windows 8, Windows Server, Windows CE, Unix, Linux, SunOS, Solaris, Macintosh OS X, VxWorks, oder andere kompatible Betriebssysteme gesteuert und koordiniert. Bei weiteren Ausführungsbeispielen können die Rechnervorrichtungen durch ein proprietäres Betriebssystem gesteuert werden. Herkömmliche Betriebssysteme steuern, unter anderem, auszuführende Berechnungsprozesse sowie deren zeitlichen Ablauf, führen eine Arbeitsspeicherverwaltung durch, stellen ein Dateisystem, eine Netzwerkfunktionalität und Ein-/Ausgabedienste bereit, und stellen eine Benutzerschnittstellenfunktionalität wie beispielsweise eine grafische Benutzerschnittstelle („GUI”) bereit. Das Vorlagensystem 100 kann auf einer oder mehreren Rechnervorrichtungen mit einem oder mehreren Hardware-Prozessoren und mit einer beliebigen zuvor erwähnten Betriebssystem-Software gehostet und/oder ausgeführt werden.The various illustrated here computing device (s), for example, the template system 100 from 1 Generally, operating system software such as, but not limited to, iOS, Android, Chrome OS, Windows XP, Windows Vista, Windows 7, Windows 8, Windows Server, Windows CE, Unix, Linux, SunOS, Solaris, Macintosh OS X , VxWorks, or other compatible operating systems controlled and coordinated. In further embodiments, the computing devices may be controlled by a proprietary operating system. Conventional operating systems control, among other things, computation processes to be executed and their timing, perform memory management, provide a file system, network functionality and input / output services, and provide user interface functionality such as a graphical user interface ("GUI"). The template system 100 may be hosted and / or executed on one or more computing devices having one or more hardware processors and any of the aforementioned operating system software.

5 ist ein Blockdiagramm, das beispielhafte Komponenten des Vorlagensystems 100 darstellt. Zwar bezieht sich 5 auf das Vorlagensystem 100, jedoch können eine oder alle Komponenten bei jedweder der anderen hier erläuterten Rechnervorrichtungen gleich oder ähnlich sein. 5 Figure 3 is a block diagram illustrating example components of the template system 100 represents. True, it does 5 on the template system 100 However, any or all of the components in any of the other computing devices discussed herein may be the same or similar.

Das Vorlagensystem 100 kann Software ausführen, z. B. eigenständige Softwareanwendungen, Anwendungen innerhalb Browsern, Netzwerkanwendungen etc., sei es durch die spezielle Anwendung, das Betriebssystem oder anderweitig. Jedwede der hier erläuterten Systeme können durch das Vorlagensystem 100 und/oder ein ähnliches Rechnersystem durchgeführt werden, das einige oder alle der Komponenten aufweist, die mit Bezug auf 5 erläutert wurden.The template system 100 can run software, eg. For example, stand-alone software applications, applications within browsers, network applications, etc., whether by the specific application, the operating system or otherwise. Any of the systems discussed here may be replaced by the template system 100 and / or a similar computer system comprising some or all of the components described with respect to 5 were explained.

Das Vorlagensystem 100 beinhaltet einen Bus 502 oder einen anderen Kommunikationsmechanismus zum Kommunizieren von Information, und einen Hardware-Prozessor oder mehrere Prozessoren 504, die mit Bus 502 verbunden sind und zum Verarbeiten von Information dienen. Bei dem/den Hardware-Prozessor(en) 504 kann es sich beispielsweise um einen oder mehrere Universal-Mikroprozessoren handeln.The template system 100 includes a bus 502 or another communication mechanism for communicating information, and a hardware processor or multiple processors 504 by bus 502 are connected and used for processing information. The hardware processor (s) 504 For example, it may be one or more general-purpose microprocessors.

Das Vorlagensystem 100 beinhaltet auch einen Hauptspeicher 506, beispielsweise ein RAM (Direktzugriffsspeicher), einen Cache und/oder andere dynamische Speichervorrichtungen, die mit dem Bus 502 verbunden sind, um Information und Anweisungen zu speichern, die durch den/die Prozessor(en) 504 auszuführen sind. Der Hauptspeicher 506 kann auch verwendet werden, um temporäre Variablen oder andere Zwischeninformationen während eines Ausführens von durch den/die Prozessor(en) 504 auszuführenden Anweisungen zu speichern. Derartige Anweisungen machen, wenn sie in Speichermedien gespeichert werden, die dem/den Prozessor(en) 504 zugänglich sind, das Vorlagensystem 100 zu einer Spezialmaschine, die benutzerspezifisch angepasst ist, um die in den Anweisungen festgelegten Operationen auszuführen. Derartige Anweisungen, etwa durch Hardware-Prozessoren ausgeführt, können die hier beschriebenen Verfahren und Systeme implementieren, um Sicherheitsinformation gemeinsam zu nutzen.The template system 100 also includes a main memory 506 For example, RAM (Random Access Memory), a cache, and / or other dynamic storage devices connected to the bus 502 to store information and instructions issued by the processor (s). 504 are to be executed. The main memory 506 can also be used to store temporary variables or other intermediate information during execution by the processor (s) 504 save instructions to be executed. Such instructions, when stored in storage media, make the processor (s) 504 accessible, the template system 100 to a special machine customized to perform the operations specified in the instructions. Such instructions, such as performed by hardware processors, may implement the methods and systems described herein to share security information.

Das Vorlagensystem 100 beinhaltet weiter ein ROM (Nur-Lese-Speicher) 508 oder eine andere statische Speichervorrichtung, die mit dem Bus 502 verbunden ist, um statische Information und Anweisungen für den/die Prozessor(en) 504 zu speichern. Eine Speichervorrichtung 510, wie beispielsweise eine Magnetplatte, eine optische Platte oder ein USB-Stick (Flash-Drive) etc., ist vorgesehen und mit dem Bus 502 verbunden, um Information und Anweisungen zu speichern. Die Vorlagen-Speichervorrichtung 106 und/oder die Objekt-Speichervorrichtung 130 von 1 kann im Hauptspeicher 506 und/oder der Speichervorrichtung 510 gespeichert werden.The template system 100 further includes a ROM (read-only memory) 508 or another static storage device connected to the bus 502 static information and instructions for the processor (s) 504 save. A storage device 510 , such as a magnetic disk, an optical disk or a USB stick (flash drive), etc., is provided and to the bus 502 connected to store information and instructions. The master storage device 106 and / or the object storage device 130 from 1 can in main memory 506 and / or the storage device 510 get saved.

Bei einigen Ausführungsformen ist die Vorlagen-Speichervorrichtung 106 und/oder die Objekt-Speichervorrichtung 130 von 1 ein Dateisystem, eine relationale Datenbank wie beispielsweise, jedoch nicht eingeschränkt auf, MySql, Oracle, Sybase oder DB2, und/oder ein verteiltes In-Memory-Caching-System, wie beispielsweise, jedoch nicht eingeschränkt auf Memcache, Memcached oder Java Caching System.In some embodiments, the template storage device is 106 and / or the object storage device 130 from 1 a file system, a relational database such as, but not limited to, MySql, Oracle, Sybase, or DB2, and / or a distributed in-memory caching system such as, but not limited to, Memcache, Memcached, or Java Caching System.

Das Vorlagensystem 100 kann über den Bus 502 mit einer Anzeige 512 verbunden sein, beispielsweise einer Kathodenstrahlröhre (CRT) oder einer LCD-Anzeige oder einem Sensorbildschirm (Touchscreen), um einem Benutzer des Computers Information anzuzeigen. Eine Eingabevorrichtung 514 ist mit dem Bus 502 verbunden, um Information und ausgewählte Befehle an den Prozessor 504 zu übermitteln. Ein Typ von Eingabevorrichtung 514 ist eine Tastatur, die alphanumerische Tasten und weitere Tasten beinhaltet. Ein weiterer Typ von Eingabevorrichtung 514 ist ein Sensorbildschirm. Ein weiterer Typ von Benutzereingabevorrichtung ist eine Cursor-Steuerung 516, wie beispielsweise eine Maus, ein Trackball, ein Sensorbildschirm, oder Cursor-Richtungstasten, um dem Prozessor 504 Richtungsinformation und ausgewählte Befehle mitzuteilen und eine Cursorbewegung auf der Anzeigeeinrichtung 512 zu steuern. Diese Eingabevorrichtung kann zwei Freiheitsgrade in zwei Achsen haben, einer ersten Achse (beispielsweise x) und einer zweiten Achse (beispielsweise y), was der Vorrichtung ermöglicht, Positionen in einer Ebene zu bezeichnen. Bei einigen Ausführungsbeispielen kann die gleiche Richtungsinformation und Befehlsauswahl wie bei einer Cursorsteuerung mittels Empfangen von Berührungen auf einem Sensorbildschirm (Touchscreen) ohne einen Cursor implementiert werden.The template system 100 can over the bus 502 with an ad 512 For example, a cathode ray tube (CRT) or an LCD display or a touch screen may be used to display information to a user of the computer. An input device 514 is by bus 502 connected to information and selected commands to the processor 504 to convey. A type of input device 514 is a keyboard that contains alphanumeric keys and additional keys. Another type of input device 514 is a touch screen. Another type of user input device is cursor control 516 such as a mouse, a trackball, a touch screen, or cursor direction keys to the processor 504 Direction information and selected commands and a cursor movement on the display device 512 to control. This input device may have 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. In some embodiments, the same directional information and command selection as in cursor control may be implemented by receiving touchscreen touches without a cursor.

Das Vorlagensystem 100 kann eine Benutzerschnittstelleneinheit beinhalten, um eine GUI zu implementieren, beispielsweise 4A, 4B und/oder 4C, die in einem Massenspeichergerät als ausführbare Softwarecodes gespeichert werden kann, welche durch die Rechnervorrichtung(en) ausgeführt werden. Diese und weitere Einheiten können beispielsweise Komponenten wie etwa Softwarekomponenten, objektorientierte Softwarekomponenten, Klassenkomponenten und Task-Komponenten, Prozesse, Funktionen, Attribute, Prozeduren, Subroutinen, Segmente von Programmcode, Treiber, Firmware, Mikrocode, Schaltkreise, Daten, Datenbanken, Datenstrukturen, Tabellen, Felder und Variablen beinhalten.The template system 100 may include a user interface unit to implement a GUI, for example 4A . 4B and or 4C which may be stored in a mass storage device as executable software code executed by the computing device (s). These and other entities may include, for example, components such as software components, object-oriented software components, class components and task components, processes, functions, attributes, procedures, subroutines, segments of program code, drivers, firmware, microcode, circuits, data, databases, data structures, tables, Fields and variables include.

Generell bezieht sich das Wort „Anweisungen”, wie hier verwendet, auf Logik, die als Hardware oder Firmware ausgeführt ist, oder auf eine Sammlung von Softwareeinheiten, die möglicherweise Eintritts- und Austrittspunkte aufweisen und in einer Programmiersprache wie beispielsweise, jedoch nicht eingeschränkt auf, Java, Lua, C, C++, oder C# geschrieben sind. Eine Softwareeinheit kann kompiliert und in ein ausführbares Programm verlinkt werden, in eine dynamische Programmbibliothek (Dynamic Link Library) eingebaut werden, oder in einer interpretierten Programmiersprache wie beispielsweise, jedoch nicht eingeschränkt auf, BASIC, Perl oder Python geschrieben werden. Es versteht sich, dass Software-Einheiten von anderen Einheiten oder von sich selbst aufrufbar sein können, und/oder sie ansprechend auf erfasste Ereignisse oder Interrupts aufgerufen werden können. Software-Einheiten, die für eine Ausführung auf Rechnervorrichtungen bzw. deren Hardware-Prozessoren konfiguriert sind, können auf einem computerlesbaren Medium bereitgestellt werden, beispielsweise einer CD (Compact Disk), einer DVD (Digital Video Disk), einem Flashspeicher-Laufwerk, einer Magnetplatte, oder einem beliebigen anderen greifbare Form aufweisenden Medium, oder als digitaler Download (und können ursprünglich in einem komprimierten oder installierbaren Format gespeichert sein, das ein Installieren, Dekomprimieren oder Entschlüsseln vor einer Ausführung erfordert). Derartiger Softwarecode kann, teilweise oder vollständig, in einem Speicherbauteil der ausführenden Rechnervorrichtung gespeichert sein, für eine Ausführung durch die Rechnervorrichtung. Softwareanweisungen können in Firmware, beispielsweise ein EPROM, eingebettet sein. Es versteht sich weiter, dass Hardwaremodule verbundene Logikeinheiten beinhalten können, beispielsweise Gatter (Gates) und Flipflops, und/oder programmierbare Einheiten beinhalten können, beispielsweise programmierbare Gatter-Anordnungen (Gate-Arrays) oder Prozessoren. Generell beziehen sich die hier beschriebenen Anweisungen auf logische Module, die mit anderen Modulen kombiniert oder in Untermodule unterteilt sein können, ungeachtet ihrer physischen Organisation oder ihres Speicherortes.Generally, the word "instructions" as used herein refers to logic embodied as hardware or firmware, or to a collection of software units that may have entry and exit points and in a programming language such as, but not limited to, Java, Lua, C, C ++, or C # are written. A software unit can be compiled and linked into an executable program, incorporated into a dynamic program library (Dynamic Link Library), or in an interpreted programming language such as, but not limited to writing BASIC, Perl or Python. It is understood that software units may be invocable by other entities or by themselves, and / or may be invoked in response to detected events or interrupts. Software units configured for execution on computing devices or their hardware processors may be provided on a computer readable medium, such as a CD (compact disk), a DVD (digital video disk), a flash memory drive, a magnetic disk , or any other tangible form of medium, or as a digital download (and may initially be stored in a compressed or installable format requiring installation, decompression or decryption prior to execution). Such software code may be stored, in part or in full, in a memory component of the executing computing device for execution by the computing device. Software instructions may be embedded in firmware, such as an EPROM. It is further understood that hardware modules may include interconnected logic devices, such as gates and flip-flops, and / or may include programmable devices, such as programmable gate arrays or processors. In general, the instructions described here refer to logical modules that may be combined with other modules or sub-modules, regardless of their physical organization or location.

Das Vorlagensystem 100, oder Komponenten von diesem, wie beispielsweise die Auswahleinheit 108 und/oder der Vorlagenprozessor 109 von 1, können mittels ausführbaren Code-Anweisungen in einer Programmiersprache programmiert werden.The template system 100 , or components thereof, such as the selection unit 108 and / or the template processor 109 from 1 , can be programmed using executable code instructions in a programming language.

Der Begriff „nicht-transitorische Medien” und ähnliche Begriffe, wie hier verwendet, beziehen sich auf jegliche Medien, die Daten und/oder Anweisungen speichern, welche eine Maschine veranlassen, in spezifischer Weise zu arbeiten. Derartige nicht-transitorische Medien können nicht-flüchtige Medien und/oder flüchtige Medien beinhalten. Nichtflüchtige Medien schließen beispielsweise optische oder magnetische Platten ein, beispielsweise die Speichervorrichtung 510. Flüchtige Medien schließen einen dynamischen Speicher wie beispielsweise den Hauptspeicher 506 ein. Übliche Formen nicht-transitorischer Medien beinhalten beispielsweise eine Diskette, eine flexible Platte, eine Festplatte, ein Halbleiterlaufwerk (Solid-State-Drive), 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, sowie über Netzwerk verbundene Versionen von diesen.The term "non-transitory media" and similar terms as used herein refers to any media that stores data and / or instructions that cause a machine to work in a specific manner. Such non-transitory 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 510 , Volatile media include dynamic memory such as main memory 506 one. Common forms of non-transitory media include, for example, a floppy disk, a flexible disk, a hard disk, a solid state drive, a magnetic tape, or any other magnetic data storage medium, a CD-ROM, any other optical data storage medium, any hole pattern physical media, a RAM, a PROM and an EPROM, a Flash EPROM, an NVRAM, and any other memory chip or cartridge, as well as network connected versions thereof.

Nicht-transitorische Medien 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 502 beinhaltet. Übertragungsmedien können auch die Form von Schall- oder Lichtwellen annehmen, beispielsweise solche, die bei Funk- und Infrarot-Datenkommunikationen erzeugt werden.Non-transitory 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 502 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/die Prozessor(en) 504 auszuführen sind. Beispielsweise können die Anweisungen anfänglich auf einer Magnetplatte oder einem Halbleiterlaufwerk eines entfernt befindlichen Computers gespeichert sein. Der ferne Computer kann die Anweisungen in seinen dynamischen Speicher laden und die Anweisungen über eine Telefonleitung oder eine Kabelverbindung unter Verwendung eines Modem senden. Ein beim Vorlagensystem 100 befindliches Modem kann die Daten über die Telefonleitung oder eine Kabelverbindung 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 502 legen. Der Bus 502 befördert die Daten zum Hauptspeicher 506, aus dem der/die Prozessor(en) 504 die Anweisungen abrufen und ausführen. Die vom Hauptspeicher 506 empfangenen Anweisungen können die Anweisungen abrufen und ausführen. Die vom Hauptspeicher 506 empfangenen Anweisungen können optional in der Speichervorrichtung 510 gespeichert werden, entweder vor oder nach einem Ausführen durch den/die Prozessor(en) 504.Different forms of media may be involved in the execution of one or more sequences of one or more instructions issued by the processor (s). 504 are to be executed. For example, the instructions may initially be stored on a magnetic disk or a semiconductor drive of a remote computer. The remote computer can load the instructions into its dynamic memory and send the instructions over a telephone line or cable connection using a modem. One at the template system 100 The modem in question may receive the data over the telephone line or a cable connection 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 502 lay. The bus 502 conveys the data to the main memory 506 from which the processor (s) 504 retrieve and execute the instructions. The main memory 506 received instructions can retrieve and execute the instructions. The main memory 506 Instructions received may optionally be in the storage device 510 stored either before or after being executed by the processor (s) 504 ,

Das Vorlagensystem 100 beinhaltet auch eine Kommunikationsschnittstelle 518, die mit dem Bus 502 verbunden ist. Die Kommunikationsschnittstelle 518 stellt eine Zweiweg-Datenkommunikationsverbindung zu einem Netzwerk-Verbindungsglied 520 bereit, das mit einem lokalen Netzwerk 522 verbunden ist. Beispielsweise kann eine Kommunikationsschnittstelle 518 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 518 eine LAN-Karte (LAN = Local Area Network) sein, um eine Datenkommunikationsverbindung zu einem kompatiblen LAN bereitzustellen (oder kann ein WAN-Bauelement sein, um mit einem WAN zu kommunizieren. Es können auch Drahtlosverbindungen implementiert werden. Bei einer beliebigen derartigen Implementierung sendet und empfängt eine Kommunikationsschnittstelle 518 elektrische, elektromagnetische oder optische Signale, die digitale Datenströme tragen, welche verschiedene Typen von Information repräsentieren.The template system 100 also includes a communication interface 518 by bus 502 connected is. The communication interface 518 provides a two-way data communication connection to a network link 520 ready with a local network 522 connected is. For example, a communication interface 518 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 518 A Local Area Network (LAN) card to provide a data communication link to a compatible LAN (or may be a WAN device to communicate with a WAN) Wireless connections can also be implemented and receives a communication interface 518 electrical, electromagnetic or optical signals carrying digital data streams representing various types of information.

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

Ein Netzwerk, wie beispielsweise das Netzwerk 160 von 1, kann aufweisen, ist jedoch nicht eingeschränkt auf, eines oder mehrere LANs (LAN = Local Area Network – Lokales Rechnernetz), ein WAN (Wide Area Network – Weitverkehrsnetz), ein WLAN (Wireless Local Area Network – Lokales Drahtlosnetzwerk), ein WWAN (Wireless Wide Area Network – Weitverkehrsfunknetz), das Internet, oder eine beliebige Kombination von diesen.A network, such as the network 160 from 1 , may include, but is not limited to, one or more local area networks (LANs), a Wide Area Network (WAN), a Wireless Local Area Network (WLAN), a WWAN ( Wireless Wide Area Network), the Internet, or any combination of these.

Das Vorlagensystem 100 kann Nachrichten und Daten, einschließlich Programmcode, senden und empfangen, und zwar über das/die Netzwerk(e), das Netzwerk-Verbindungsglied 520 und die Kommunikationsschnittstelle 518. In dem Beispiel des Internet könnte ein Server 530 einen angeforderten Code für ein Anwendungsprogramm über das Internet 528, den ISP 526, das lokale Netzwerk 522 und die Kommunikationsschnittstelle 518 senden.The template system 100 can send and receive messages and data, including code, through the network (s), the network link 520 and the communication interface 518 , In the example of the Internet could be a server 530 a requested code for an application program over the Internet 528 , the ISP 526 , the local network 522 and the communication interface 518 send.

Der empfange Code kann durch den/die Prozessor(en) 504 unverändert wie empfangen ausgeführt werden, und/oder in der Speichervorrichtung 510 oder einem anderen nichtflüchtigen Speicher zur späteren Ausführung gespeichert werden.The received code can be processed by the processor (s) 504 unchanged as received, and / or in the storage device 510 or other nonvolatile memory for later execution.

Jeder der in den vorhergehenden Abschnitten beschriebenen Prozessen, Verfahren und Algorithmen können durch Codeanweisungen verkörpert werden, und vollständig oder teilweise durch diese automatisiert werden, wobei die Codeanweisungen durch eines oder mehrere Computersysteme oder Computerprozessoren, die Computer-Hardware beinhalten, ausgeführt werden. Die Prozesse und Algorithmen können teilweise oder vollständig in anwendungsspezifischen Schaltungen implementiert werden.Each of the processes, methods, and algorithms described in the preceding paragraphs may be embodied by and fully or partially automated by code instructions, wherein the code instructions are executed by one or more computer systems or computer processors that include computer hardware. The processes and algorithms may be partially or fully implemented in application specific circuits.

Die zuvor beschriebenen verschiedenen Merkmale und Prozesse können unabhängig voneinander verwendet werden, oder können auf verschiedene Weisen kombiniert werden. Alle möglichen Kombination und Unterkombinationen sollen innerhalb des Schutzumfangs dieser Offenbarung liegen. Zusätzlich können gewisse Verfahren oder Prozessblöcke bei einigen Implementierungen weggelassen werden. Die hier beschriebenen Verfahren und Prozesse sind auch nicht auf irgendeine spezielle Abfolge eingeschränkt, und die in Bezug damit stehenden Blöcke oder Zustände können in anderen geeigneten Abfolgen durchgeführt werden. Beispielsweise können die beschriebenen Blöcke oder Zustände in einer anderen als der spezifisch offenbarten Reihenfolge durchgeführt werden, oder mehrere Blöcke oder Zustände können zu einem einzelnen Block oder Zustand kombiniert werden. Die beispielhaften Blöcke oder Zustände können in serieller, in paralleler oder in irgendeiner anderen Weise durchgeführt werden. Blöcke oder Zustände können zu den offenbarten beispielhaften Ausführungsformen hinzugefügt oder von diesen entfernt werden. Die hier beschriebenen beispielhaften Systeme und Komponenten können in anderer Weise als beschrieben durchgeführt werden. Beispielsweise können, verglichen mit den offenbarten beispielhaften Ausführungsformen, Elemente hinzugefügt werden, entfernt werden oder neu angeordnet werden.The various features and processes described above may be used independently or may be combined in various ways. All possible combinations and subcombinations are intended to be within the scope of this disclosure. In addition, certain methods or process blocks may be omitted in some implementations. Also, the methods and processes described herein are not limited to any particular sequence, and the related blocks or states may be performed in other suitable sequences. For example, the described blocks or states may be performed in a different order than that specifically disclosed, or multiple blocks or states may be combined into a single block or state. The example blocks or states may be performed in serial, in parallel, or in any other way. Blocks or states may be added to or removed from the disclosed exemplary embodiments. The exemplary systems and components described herein may be performed in ways other than those described. For example, as compared to the disclosed exemplary embodiments, elements may be added, removed, or rearranged.

Einen Vorbehalt ausdrückende Sprache, wie unter anderem beispielsweise „können”, „könnten”, „könnten möglicherweise” oder „können möglicherweise”, soll, wenn nicht speziell anders angegeben oder es im verwendeten Kontext anders zu verstehen ist, generell zum Ausdruck bringen, dass gewisse Ausführungsformen gewisse Merkmale, Elemente, und/oder Schritte beinhalten, während dies bei anderen Ausführungsformen nicht der Fall ist. Daher soll eine solche einen Vorbehalt enthaltende Sprache nicht generell implizieren, dass Merkmale, Elemente und/oder Schritte in irgendeiner Weise für eine oder mehrere Ausführungsformen erforderlich sind, oder dass eine oder mehrere Ausführungsformen notwendigerweise Logik beinhalten, um, mit oder ohne eine Eingabe oder eine Abfrage des Benutzers, zu entscheiden, ob diese Merkmale, Elemente und/oder Schritte enthalten sind oder in irgendeiner speziellen Ausführungsform durchzuführen sind.Any language expressing a reservation, such as, but not limited to, such as, but not limited to, "may," "possibly," or "may be," shall, unless specifically stated otherwise or otherwise understood in the context used, as indicating that: Certain embodiments include certain features, elements, and / or steps, while other embodiments do not. Therefore, such language containing a proviso is not intended to generally imply that features, elements, and / or steps are in any way required for one or more embodiments, or that one or more embodiments necessarily include logic to, with, or without input or input Inquiring the user to decide if these features, elements and / or steps are included or to be performed in any particular embodiment.

Jegliche Prozessbeschreibungen, Elemente oder Blöcke in den Ablaufdiagrammen, die hier beschrieben sind und/oder in den anliegenden Zeichnungen dargestellt sind, sollten so verstanden werden, dass sie potenziell Einheiten, Segmente oder Abschnitte von Code repräsentieren, die eine oder mehrere ausführbare Anweisungen für ein Implementieren von spezifischen logischen Funktionen oder Schritten in dem Prozess beinhalten. Alternative Implementierungen sind im Schutzumfang der hier beschriebenen Ausführungsformen eingeschlossen, wobei Elemente oder Funktionen entfernt werden können, und in einer anderen als der dargestellten oder erörterten Reihenfolge ausgeführt werden können, einschließlich im Wesentlichen gleichzeitig oder in umgekehrter Reihenfolge, in Abhängigkeit von der einhergehenden Funktionalität, wie für Fachleute klar ist.Any process descriptions, elements or blocks in the flowcharts described herein and / or illustrated in the accompanying drawings should be understood to potentially represent units, segments or portions of code that include one or more executable instructions for implementation of specific logical functions or steps in the process. Alternative implementations are included within the scope of the embodiments described herein, wherein elements or functions may be removed and may be performed in an order other than shown or discussed, including substantially simultaneously or in reverse order, depending on the associated functionality, such as for professionals is clear.

Es ist hervorzuheben, dass viele Variationen und Modifikationen an den zuvor beschriebenen Ausführungsformen vorgenommen werden können, deren Elemente als neben weiteren geeigneten Beispielen bestehend zu verstehen sind. Alle derartigen Modifikationen und Variationen verstehen sich als hier in den Schutzumfang dieser Offenbarung eingeschlossen. Die vorhergehende Beschreibung beschreibt detailliert gewisse Ausführungsformen der Erfindung. Es versteht sich jedoch, dass unabhängig davon, wie detailliert in dem vorhergehenden Text die Erfindung beschrieben wurde, sie auf viele Weisen ausgeführt werden kann. Wie zuvor ebenfalls angegeben wurde, ist zu beachten, dass die Verwendung einer speziellen Terminologie beim Beschreiben gewisser Merkmale oder Aspekte der Erfindung nicht so zu verstehen ist, dass hier impliziert wird, dass die Terminologie so neu definiert wird, dass sie darauf eingeschränkt ist, irgendwelche spezifische Kennzeichen der Merkmale oder Aspekte der Erfindung zu enthalten, mit denen diese Terminologie assoziiert ist. Der Schutzumfang der Erfindung sollte daher gemäß den anliegenden Ansprüchen und jeglichen Äquivalenten von diesen interpretiert werden.It is to be noted that many variations and modifications can be made to the above-described embodiments, the elements of which are to be understood as being among other suitable examples. All such modifications and variations are to be understood as included within the scope of this disclosure. The foregoing description describes in detail certain embodiments of the invention. It should be understood, however, that regardless of how detailed the invention has been described in the preceding text, it can be implemented in many ways. As previously indicated, it should be understood that the use of particular terminology in describing certain features or aspects of the invention is not to be understood as implicating the terminology to be redefined to be limited to any to contain specific characteristics of the features or aspects of the invention with which this terminology is associated. The scope of the invention should, therefore, be interpreted in accordance with the appended claims and any equivalents thereof.

Claims (20)

Computersystem zum Generieren von benutzerangepassten vorlagenbasierten Dokumenten, wobei das Computersystem aufweist: eine Vorlagen-Speichervorrichtung; und einen oder mehrere Hardware-Prozessoren, die mittels ausführbarer Code-Anweisungen programmiert sind, um zu implementieren: einen Vorlagengenerator, der konfiguriert ist, um: auf eine Platzhalter-Vorlage zuzugreifen, die einen oder mehrere Platzhalter enthält, welche Orte zum Einfügen von ausführbaren Anweisungen angeben; ausführbare Anweisungen zu empfangen, die in die Platzhalter-Vorlage aufzunehmen sind; und in der Vorlagen-Speichervorrichtung eine Vorlage zu speichern, die einen oder mehrere Sätze der empfangenen ausführbaren Anweisungen beinhaltet, welche in entsprechende Platzhalter der Platzhalter-Vorlage eingefügt sind; eine Vorlagen-Auswahleinheit, die konfiguriert ist, um eine Auswahl der Vorlage und eine Auswahl von einem oder mehreren Datenobjekten zu empfangen, die in ein generiertes benutzerangepasstes Dokument aufzunehmen sind, basierend auf Eigenschaften des einen oder der mehreren Datenobjekte; einen Vorlagen-Prozessor, der konfiguriert ist, um: den einen oder die mehreren Sätze von ausführbaren Anweisungen zu parsen, die in der Vorlage enthalten sind; jeden Satz von ausführbaren Anweisungen auszuführen, wobei zumindest einige Sätze von ausführbaren Anweisungen Anweisungen beinhalten, um auf Eigenschaften der ausgewählten Datenobjekte zuzugreifen, die in einer oder mehreren Datenquellen gespeichert sind; eine Ausgabe für jeden Satz von ausführbaren Anweisungen zu generieren; und das benutzerangepasste Dokument zu generieren, indem Sätze von ausführbaren Anweisungen in der Vorlage durch die Ausgabe ersetzt werden, die durch Ausführen von entsprechenden Sätzen von ausführbaren Anweisungen generiert wird, wobei zumindest ein Teil der Ausgabe Eigenschaften der ausgewählten Datenobjekte und/oder Übersichtsdaten betreffend die Eigenschaften der ausgewählten Datenobjekte beinhaltet.A computer system for generating customized template-based documents, the computer system comprising: a template storage device; and One or more hardware processors programmed using executable code instructions to implement: a template generator configured to: access a placeholder template containing one or more placeholders indicating locations for inserting executable statements; to receive executable instructions to be included in the placeholder template; and storing, in the template storage device, a template containing one or more sets of received executable instructions inserted into corresponding wildcard template placeholders; a template selection unit configured to receive a selection of the template and a selection of one or more data objects to be included in a generated user-customized document based on properties of the one or more data objects; a template processor configured to: parse the one or more sets of executable statements contained in the template; execute each set of executable instructions, wherein at least some sets of executable instructions include instructions to access properties of the selected data objects stored in one or more data sources; generate an output for each set of executable instructions; and generate the customized document by replacing sets of executable instructions in the template with the output generated by executing corresponding sets of executable instructions, wherein at least a part of the output has properties of the selected data objects and / or summary data concerning the properties of the includes selected data objects. System nach Anspruch 1, wobei die Vorlage ein XML-basiertes Dokumentformat aufweist.The system of claim 1, wherein the template has an XML-based document format. System nach Anspruch 1 oder Anspruch 2, wobei das benutzerangepasste Dokument ein Strafverfolgungsdokument aufweist.The system of claim 1 or claim 2, wherein the customized document comprises a law enforcement document. System nach einem der Ansprüche 1 bis 3, wobei die Platzhalter-Vorlage aufweist: einen Namen-Platzhalter; einen Bild-Platzhalter; einen Kontaktinformation-Platzhalter; und einen Adresse-Platzhalter.The system of any one of claims 1 to 3, wherein the wildcard template comprises: a name placeholder; an image placeholder; a contact information placeholder; and an address placeholder. System nach Anspruch 4, wobei die Platzhalter-Vorlage weiter aufweist: einen Deckname-Platzhalter; einen Partner-Platzhalter; und einen Verhaftungsvorgeschichte-Platzhalter.The system of claim 4, wherein the wildcard template further comprises: a cover name placeholder; a partner placeholder; and an arrest history placeholder. System nach einem der Ansprüche 1 bis 5, wobei der Vorlagen-Prozessor aufweist: eine Code-Schnittstelle, die konfiguriert ist, um Code in mehreren Programmiersprachen zu parsen.The system of any one of claims 1 to 5, wherein the template processor comprises: a code interface that is configured to parse code in multiple programming languages. System nach Anspruch 6, wobei die Code-Schnittstelle für Groovy konfiguriert ist. The system of claim 6, wherein the code interface is configured for Groovy. System nach einem der Ansprüche 1 bis 7, wobei die Datenobjekte Schnipsel-Objekte (Snippet-Objekte) aufweisen, wobei die Schnipsel-Objekte Dateneigenschaften für Vorladungen aufweisen.The system of any one of claims 1 to 7, wherein the data objects comprise snippet objects, the snippet objects having precharge data properties. System nach einem der Ansprüche 1 bis 8, weiter aufweisend: eine Benutzerschnittstelleneinheit, die konfiguriert ist, eine oder mehrere Benutzerschnittstellen zu erzeugen, die konfiguriert sind, eines oder mehrere auswählbare Datenobjekte anzuzeigen, wobei die Auswahl des einen oder der mehreren Datenobjekte, die in das benutzerangepasste Dokument aufzunehmen sind, über die eine oder die mehreren Benutzerschnittstellen empfangen wird.The system of any one of claims 1 to 8, further comprising: a user interface unit configured to generate one or more user interfaces configured to display one or more selectable data objects, the selection of the one or more data objects to be included in the user-customized document via the one or more user interfaces Will be received. System nach Anspruch 9, wobei die eine oder die mehreren Benutzerschnittstellen konfiguriert sind, um: ausführbare Code-Anweisungen von einer interaktiven Kommandozeile zu empfangen, wobei zumindest einige der ausführbaren Code-Anweisungen konfiguriert sind, um das System zu veranlassen, bei deren Ausführung auf Eigenschaften der ausgewählten Datenobjekte zuzugreifen; und eine Ausgabe der empfangenen ausführbaren Code-Anweisungen anzuzeigen, ansprechend auf eine Eingabe von der interaktiven Kommandozeile.The system of claim 9, wherein the one or more user interfaces are configured to: receiving executable code instructions from an interactive command line, wherein at least some of the executable code instructions are configured to cause the system to access properties of the selected data objects when executed; and display an output of the received executable code instructions in response to an input from the interactive command line. System nach Anspruch 2, weiter aufweisend: einen XML-Dokumenteditor, wobei der XML-Dokumenteditor konfiguriert ist, eine Benutzereingabe zu empfangen, um die XML-Dokumente eines XML-basierten Dokuments zu modifizieren.The system of claim 2, further comprising: an XML document editor, wherein the XML document editor is configured to receive user input to modify the XML documents of an XML-based document. Verfahren zum Generieren von benutzerangepassten vorlagenbasierten Dokumenten, wobei das Verfahren umfasst: Empfangen einer Auswahl einer Vorlage, wobei die Vorlage einen oder mehrere Sätze von ausführbaren Anweisungen beinhaltet; Empfangen einer Auswahl von einem oder mehreren Datenobjekten, auf die zuzugreifen ist, ansprechend auf ein Ausführen des einen oder der mehreren Sätze von ausführbaren Anweisungen; Ausführen, durch ein Computersystem, jedes Satzes von ausführbaren Anweisungen, wobei zumindest einige Sätze von ausführbaren Anweisungen Anweisungen beinhalten, um auf Eigenschaften zumindest einiger der ausgewählten Datenobjekte zuzugreifen; Generieren einer Ausgabe für jeden Satz von ausführbaren Anweisungen; und Generieren eines benutzerangepassten Dokuments, und zwar durch Ersetzen von Sätzen ausführbarer Anweisungen in der Vorlage durch die entsprechende generierte Ausgabe, einschließlich Eigenschaften der ausgewählten Datenobjekte und/oder Übersichtsdaten betreffend die Eigenschaften der ausgewählten Datenobjekte.A method of generating customized template-based documents, the method comprising: Receiving a selection of a template, the template including one or more sets of executable instructions; Receiving a selection of one or more data objects to be accessed in response to executing the one or more sets of executable instructions; Executing, by a computer system, each set of executable instructions, wherein at least some sets of executable instructions include instructions to access properties of at least some of the selected data objects; Generating an output for each set of executable instructions; and Generating a customized document by replacing sets of executable instructions in the template with the corresponding generated output, including properties of the selected data objects and / or summary data relating to the properties of the selected data objects. Verfahren nach Anspruch 12, wobei die Vorlage ein XML-basiertes Dokumentformat aufweist.The method of claim 12, wherein the template comprises an XML-based document format. Verfahren nach Anspruch 13, weiter umfassend: einem Benutzer des Computersystems wird eine XML-Editier-Benutzerschnittstelle bereitgestellt, wobei die XML-Editier-Benutzerschnittstelle konfiguriert ist, eine Benutzereingabe zu empfangen, um die XML-Dokumente eines XML-basierten Dokuments zu modifizieren; Empfangen einer Eingabe vom Benutzer, und zwar von statischem Text in einer Platzhalter-Vorlage, wobei der statische Text in das generierte benutzerangepasste Dokument aufzunehmen ist; Empfangen einer Eingabe einer Platzhalter-Zeichenkette an einem speziellen Ort einer Platzhalter-Vorlage; Liefern einer XML-Ansicht der Platzhalter-Vorlage, wobei die XML-Ansicht Elemente beinhaltet, die von einer Textverarbeitung genutzt werden können, um eine bildliche Darstellung der Platzhalter-Vorlage zu generieren; Vorsehen von Kennungen, um die Platzhalter-Zeichenkette in der XML-Ansicht aufzufinden; Empfangen eines ersten Satzes von ausführbaren Anweisungen, welche die Platzhalter-Zeichenkette in der XML-Ansicht ersetzen; Speichern, als die Vorlage, der Platzhalter-Vorlage mit dem ersten Satz von ausführbaren Anweisungen, welche die Platzhalter-Zeichenkette ersetzen.The method of claim 13, further comprising: a user of the computer system is provided with an XML editing user interface, wherein the XML editing user interface is configured to receive user input to modify the XML documents of an XML based document; Receiving an input from the user of static text in a placeholder template, wherein the static text is to be included in the generated user-adapted document; Receiving an entry of a wildcard string at a particular location of a wildcard template; Providing an XML view of the placeholder template, the XML view including elements that can be used by a word processor to generate a visual representation of the placeholder template; Providing identifiers to locate the wildcard string in the XML view; Receiving a first set of executable instructions that replace the wildcard string in the XML view; Save as the template, the placeholder template with the first set of executable statements that replace the placeholder string. Verfahren nach einem der Ansprüche 12 bis 14, wobei die Auswahl des einen oder der mehreren Datenobjekte, die in das benutzerangepasste Dokument aufzunehmen sind, über eine oder mehrere Benutzerschnittstellen empfangen wird.The method of any one of claims 12 to 14, wherein the selection of the one or more data objects to be included in the customized document is received via one or more user interfaces. Verfahren nach einem der Ansprüche 12 bis 15, wobei das benutzerangepasste Dokument ein Strafregister aufweist, das eine Person betreffende Vorstrafeninformation beinhaltet.The method of any of claims 12 to 15, wherein the customized document comprises a criminal record containing criminal record relating to a person. Computer-Speichervorrichtung, die Anweisungen enthält, um ein Computersystem zu veranlassen, benutzerangepasste vorlagenbasierte Dokumente zu generieren, und zwar durch: Empfangen einer Vorlage, die mittels Ersetzen von Platzhaltern durch Sätze von ausführbaren Anweisungen modifiziert wurde; Empfangen einer Auswahl der Vorlage; Empfangen einer Auswahl von einem oder mehreren Datenobjekten, die in ein generiertes benutzerangepasstes Dokument aufzunehmen sind, basierend auf Eigenschaften des einen oder der mehreren Datenobjekte; Parsen des einen oder der mehreren Sätze ausführbarer Anweisungen der Vorlage durch das Computersystem; Ausführen eines jeden Satzes von ausführbaren Anweisungen, wobei zumindest einige Sätze von ausführbaren Anweisungen Anweisungen beinhalten, um auf Eigenschaften der ausgewählten Datenobjekte zuzugreifen, die von einer oder mehreren Datenquellen gespeichert werden; Generieren einer Ausgabe für jeden Satz von ausführbaren Anweisungen; und Generieren eines benutzerangepassten Dokuments, und zwar durch Ersetzen von Sätzen ausführbarer Anweisungen in der Vorlage durch die entsprechende generierte Ausgabe, einschließlich Eigenschaften der ausgewählten Datenobjekte und/oder Übersichtsdaten betreffend die Eigenschaften der ausgewählten Datenobjekte.A computer storage device containing instructions for causing a computer system to generate customized template-based documents by: receiving a template that has been modified by replacing wildcards with sets of executable instructions; Receiving a selection of the template; Receiving a selection of one or more data objects to be included in a generated user-customized document based on properties of the one or more data objects; Parsing the one or more sets of executable instructions of the template by the computer system; Executing each set of executable instructions, wherein at least some sets of executable instructions include instructions to access properties of the selected data objects stored by one or more data sources; Generating an output for each set of executable instructions; and generating a customized document by replacing sets of executable instructions in the template with the corresponding generated output, including properties of the selected data objects and / or summary data concerning the properties of the selected data objects. Computer-Speichervorrichtung nach Anspruch 17, wobei die Vorlage ein XML-basiertes Dokumentformat aufweist.The computer storage device of claim 17, wherein the template comprises an XML-based document format. Computer-Speichervorrichtung nach Anspruch 17 oder Anspruch 18, wobei das benutzerangepasste Dokument ein Strafverfolgungsdokument aufweist.The computer storage device of claim 17 or claim 18, wherein the customized document comprises a law enforcement document. Computer-Speichervorrichtung nach einem der Ansprüche 17 bis 19, wobei die Auswahl des einen oder der mehreren Datenobjekte, die in das benutzerangepasste Dokument aufzunehmen sind, über eine oder mehrere Benutzerschnittstellen empfangen wird.The computer storage device of any one of claims 17 to 19, wherein the selection of the one or more data objects to be included in the customized document is received via one or more user interfaces.
DE201410215621 2013-08-08 2014-08-07 Template system for generating customized documents Pending DE102014215621A1 (en)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US201361863792P 2013-08-08 2013-08-08
US201361863814P 2013-08-08 2013-08-08
US61/863,814 2013-08-08
US61/863,792 2013-08-08
US201361909949P 2013-11-27 2013-11-27
US61/909,949 2013-11-27
US14/148,568 US9223773B2 (en) 2013-08-08 2014-01-06 Template system for custom document generation
US14/148,568 2014-01-06

Publications (1)

Publication Number Publication Date
DE102014215621A1 true DE102014215621A1 (en) 2015-02-12

Family

ID=51587823

Family Applications (1)

Application Number Title Priority Date Filing Date
DE201410215621 Pending DE102014215621A1 (en) 2013-08-08 2014-08-07 Template system for generating customized documents

Country Status (2)

Country Link
DE (1) DE102014215621A1 (en)
GB (1) GB2518745A (en)

Cited By (103)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9081975B2 (en) 2012-10-22 2015-07-14 Palantir Technologies, Inc. Sharing information between nexuses that use different classification schemes for information access control
US9116975B2 (en) 2013-10-18 2015-08-25 Palantir Technologies Inc. Systems and user interfaces for dynamic and interactive simultaneous querying of multiple data stores
US9123086B1 (en) 2013-01-31 2015-09-01 Palantir Technologies, Inc. Automatically generating event objects from images
US9223773B2 (en) 2013-08-08 2015-12-29 Palatir Technologies Inc. Template system for custom document generation
US9229952B1 (en) 2014-11-05 2016-01-05 Palantir Technologies, Inc. History preserving data pipeline system and method
US9256664B2 (en) 2014-07-03 2016-02-09 Palantir Technologies Inc. System and method for news events detection and visualization
US9335911B1 (en) 2014-12-29 2016-05-10 Palantir Technologies Inc. Interactive user interface for dynamic data analysis exploration and query processing
US9367872B1 (en) 2014-12-22 2016-06-14 Palantir Technologies Inc. Systems and user interfaces for dynamic and interactive investigation of bad actor behavior based on automatic clustering of related data in various data structures
US9383911B2 (en) 2008-09-15 2016-07-05 Palantir Technologies, Inc. Modal-less interface enhancements
US9449035B2 (en) 2014-05-02 2016-09-20 Palantir Technologies Inc. Systems and methods for active column filtering
US9454281B2 (en) 2014-09-03 2016-09-27 Palantir Technologies Inc. System for providing dynamic linked panels in user interface
US9454785B1 (en) 2015-07-30 2016-09-27 Palantir Technologies Inc. Systems and user interfaces for holistic, data-driven investigation of bad actor behavior based on clustering and scoring of related data
US9483162B2 (en) 2014-02-20 2016-11-01 Palantir Technologies Inc. Relationship visualizations
US9495353B2 (en) 2013-03-15 2016-11-15 Palantir Technologies Inc. Method and system for generating a parser and parsing complex data
US9501851B2 (en) 2014-10-03 2016-11-22 Palantir Technologies Inc. Time-series analysis system
US9552615B2 (en) 2013-12-20 2017-01-24 Palantir Technologies Inc. Automated database analysis to detect malfeasance
US9558352B1 (en) 2014-11-06 2017-01-31 Palantir Technologies Inc. Malicious software detection in a computing system
US9557882B2 (en) 2013-08-09 2017-01-31 Palantir Technologies Inc. Context-sensitive views
US9576015B1 (en) 2015-09-09 2017-02-21 Palantir Technologies, Inc. Domain-specific language for dataset transformations
US9589014B2 (en) 2006-11-20 2017-03-07 Palantir Technologies, Inc. Creating data in a data store using a dynamic ontology
US9619557B2 (en) 2014-06-30 2017-04-11 Palantir Technologies, Inc. Systems and methods for key phrase characterization of documents
US9646396B2 (en) 2013-03-15 2017-05-09 Palantir Technologies Inc. Generating object time series and data objects
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
US9740369B2 (en) 2013-03-15 2017-08-22 Palantir Technologies Inc. Systems and methods for providing a tagging interface for external content
US9767172B2 (en) 2014-10-03 2017-09-19 Palantir Technologies Inc. Data aggregation and analysis system
US9785773B2 (en) 2014-07-03 2017-10-10 Palantir Technologies Inc. Malware data item analysis
US9785317B2 (en) 2013-09-24 2017-10-10 Palantir Technologies Inc. Presentation and analysis of user interaction 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
US9823818B1 (en) 2015-12-29 2017-11-21 Palantir Technologies Inc. Systems and interactive user interfaces for automatic generation of temporal representation of data objects
US9852205B2 (en) 2013-03-15 2017-12-26 Palantir Technologies Inc. Time-sensitive cube
US9852195B2 (en) 2013-03-15 2017-12-26 Palantir Technologies Inc. System and method for generating event visualizations
US9857958B2 (en) 2014-04-28 2018-01-02 Palantir Technologies Inc. Systems and user interfaces for dynamic and interactive access of, investigation of, and analysis of data objects stored in one or more databases
US9864493B2 (en) 2013-10-07 2018-01-09 Palantir Technologies Inc. Cohort-based presentation of user interaction data
US9870205B1 (en) 2014-12-29 2018-01-16 Palantir Technologies Inc. Storing logical units of program code generated using a dynamic programming notebook user interface
US9880987B2 (en) 2011-08-25 2018-01-30 Palantir Technologies, Inc. System and method for parameterizing documents for automatic workflow generation
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
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
US9898528B2 (en) 2014-12-22 2018-02-20 Palantir Technologies Inc. Concept indexing among database of documents using machine learning techniques
US9898335B1 (en) 2012-10-22 2018-02-20 Palantir Technologies Inc. System and method for batch evaluation programs
US9898167B2 (en) 2013-03-15 2018-02-20 Palantir Technologies Inc. Systems and methods for providing a tagging interface for external content
US9922108B1 (en) 2017-01-05 2018-03-20 Palantir Technologies Inc. Systems and methods for facilitating data transformation
US9946777B1 (en) 2016-12-19 2018-04-17 Palantir Technologies Inc. Systems and methods for facilitating data transformation
US9953445B2 (en) 2013-05-07 2018-04-24 Palantir Technologies Inc. Interactive data object map
US9965937B2 (en) 2013-03-15 2018-05-08 Palantir Technologies Inc. External malware data item clustering and analysis
US9984133B2 (en) 2014-10-16 2018-05-29 Palantir Technologies Inc. Schematic and database linking system
US9998485B2 (en) 2014-07-03 2018-06-12 Palantir Technologies, Inc. Network intrusion data item clustering and analysis
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
US10037314B2 (en) 2013-03-14 2018-07-31 Palantir Technologies, Inc. Mobile reports
US10037383B2 (en) 2013-11-11 2018-07-31 Palantir Technologies, Inc. Simple web search
US10042524B2 (en) 2013-10-18 2018-08-07 Palantir Technologies Inc. Overview user interface of emergency call data of a law enforcement agency
US10102229B2 (en) 2016-11-09 2018-10-16 Palantir Technologies Inc. Validating data integrations using a secondary data store
US10102369B2 (en) 2015-08-19 2018-10-16 Palantir Technologies Inc. Checkout system executable code monitoring, and user account compromise determination system
US10120545B2 (en) 2014-01-03 2018-11-06 Palantir Technologies Inc. Systems and methods for visual definition of data associations
US10180929B1 (en) 2014-06-30 2019-01-15 Palantir Technologies, Inc. Systems and methods for identifying key phrase clusters within documents
US10180977B2 (en) 2014-03-18 2019-01-15 Palantir Technologies Inc. Determining and extracting changed data from a data source
US10198515B1 (en) 2013-12-10 2019-02-05 Palantir Technologies Inc. System and method for aggregating data from a plurality of data sources
US10216801B2 (en) 2013-03-15 2019-02-26 Palantir Technologies Inc. Generating data clusters
US10230746B2 (en) 2014-01-03 2019-03-12 Palantir Technologies Inc. System and method for evaluating network threats and usage
US10229284B2 (en) 2007-02-21 2019-03-12 Palantir Technologies Inc. Providing unique views of data based on changes or rules
US10248722B2 (en) 2016-02-22 2019-04-02 Palantir Technologies Inc. Multi-language support for dynamic ontology
US10262047B1 (en) 2013-11-04 2019-04-16 Palantir Technologies Inc. Interactive vehicle information map
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
US10296617B1 (en) 2015-10-05 2019-05-21 Palantir Technologies Inc. Searches of highly structured data
US10311081B2 (en) 2012-11-05 2019-06-04 Palantir Technologies Inc. System and method for sharing investigation results
US10318630B1 (en) 2016-11-21 2019-06-11 Palantir Technologies Inc. Analysis of large bodies of textual data
US10324609B2 (en) 2016-07-21 2019-06-18 Palantir Technologies Inc. System for providing dynamic linked panels in user interface
US10356032B2 (en) 2013-12-26 2019-07-16 Palantir Technologies Inc. System and method for detecting confidential information emails
US10362133B1 (en) 2014-12-22 2019-07-23 Palantir Technologies Inc. Communication data processing architecture
US10372879B2 (en) 2014-12-31 2019-08-06 Palantir Technologies Inc. Medical claims lead summary report generation
US10403011B1 (en) 2017-07-18 2019-09-03 Palantir Technologies Inc. Passing system with an interactive user interface
US10423582B2 (en) 2011-06-23 2019-09-24 Palantir Technologies, Inc. System and method for investigating large amounts of data
US10437612B1 (en) 2015-12-30 2019-10-08 Palantir Technologies Inc. Composite graphical interface with shareable data-objects
US10437840B1 (en) 2016-08-19 2019-10-08 Palantir Technologies Inc. Focused probabilistic entity resolution from multiple data sources
US10444941B2 (en) 2015-08-17 2019-10-15 Palantir Technologies Inc. Interactive geospatial map
US10460602B1 (en) 2016-12-28 2019-10-29 Palantir Technologies Inc. Interactive vehicle information mapping system
US10484407B2 (en) 2015-08-06 2019-11-19 Palantir Technologies Inc. Systems, methods, user interfaces, and computer-readable media for investigating potential malicious communications
US10489391B1 (en) 2015-08-17 2019-11-26 Palantir Technologies Inc. Systems and methods for grouping and enriching data items accessed from one or more databases for presentation in a user interface
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
US10572487B1 (en) 2015-10-30 2020-02-25 Palantir Technologies Inc. Periodic database search manager for multiple data sources
US10572529B2 (en) 2013-03-15 2020-02-25 Palantir Technologies Inc. Data integration tool
US10678860B1 (en) 2015-12-17 2020-06-09 Palantir Technologies, Inc. Automatic generation of composite datasets based on hierarchical fields
US10691729B2 (en) 2017-07-07 2020-06-23 Palantir Technologies Inc. Systems and methods for providing an object platform for a relational database
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
US10719188B2 (en) 2016-07-21 2020-07-21 Palantir Technologies Inc. Cached database and synchronization system for providing dynamic linked panels in user interface
US10754822B1 (en) 2018-04-18 2020-08-25 Palantir Technologies Inc. Systems and methods for ontology migration
US10795723B2 (en) 2014-03-04 2020-10-06 Palantir Technologies Inc. Mobile tasks
US10803106B1 (en) 2015-02-24 2020-10-13 Palantir Technologies Inc. System with methodology for dynamic modular ontology
US10817513B2 (en) 2013-03-14 2020-10-27 Palantir Technologies Inc. Fair scheduling for mixed-query loads
US10853378B1 (en) 2015-08-25 2020-12-01 Palantir Technologies Inc. Electronic note management via a connected entity graph
US10885021B1 (en) 2018-05-02 2021-01-05 Palantir Technologies Inc. Interactive interpreter and graphical user interface
US10956508B2 (en) 2017-11-10 2021-03-23 Palantir Technologies Inc. Systems and methods for creating and managing a data integration workspace containing automatically updated data models
US10956406B2 (en) 2017-06-12 2021-03-23 Palantir Technologies Inc. Propagated deletion of database records and derived data
USRE48589E1 (en) 2010-07-15 2021-06-08 Palantir Technologies Inc. Sharing and deconflicting data changes in a multimaster database system
US11119630B1 (en) 2018-06-19 2021-09-14 Palantir Technologies Inc. Artificial intelligence assisted evaluations and user interface for same
US11138180B2 (en) 2011-09-02 2021-10-05 Palantir Technologies Inc. Transaction protocol for reading database values
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
US11461355B1 (en) 2018-05-15 2022-10-04 Palantir Technologies Inc. Ontological mapping of data
US11599369B1 (en) 2018-03-08 2023-03-07 Palantir Technologies Inc. Graphical user interface configuration system

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8909656B2 (en) 2013-03-15 2014-12-09 Palantir Technologies Inc. Filter chains with associated multipath views for exploring large data sets
CN110674628B (en) * 2019-09-25 2023-08-22 中国工商银行股份有限公司 File template generation method and system
CN112306881B (en) * 2020-11-02 2023-11-24 金联兴电子(深圳)有限公司 Analog data generation method, device, equipment and storage medium
CN113268957A (en) * 2021-03-19 2021-08-17 广州天越电子科技有限公司 Citation method for realizing intelligent generation of bidding document
CN115202732B (en) * 2022-06-27 2023-08-08 苏州唐人数码科技有限公司 Intelligent software development auxiliary system and application method
CN115293123A (en) * 2022-07-19 2022-11-04 盐城金堤科技有限公司 Document template generation method, report online generation method and device
CN115186643A (en) * 2022-07-21 2022-10-14 平安科技(深圳)有限公司 Self-defined configuration method, device, equipment and storage medium of sign-up template

Cited By (188)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10872067B2 (en) 2006-11-20 2020-12-22 Palantir Technologies, Inc. Creating data in a data store using a dynamic ontology
US9589014B2 (en) 2006-11-20 2017-03-07 Palantir Technologies, Inc. Creating data in a data store using a dynamic ontology
US10719621B2 (en) 2007-02-21 2020-07-21 Palantir Technologies Inc. Providing unique views of data based on changes or rules
US10229284B2 (en) 2007-02-21 2019-03-12 Palantir Technologies Inc. Providing unique views of data based on changes or rules
US10747952B2 (en) 2008-09-15 2020-08-18 Palantir Technologies, Inc. Automatic creation and server push of multiple distinct drafts
US9383911B2 (en) 2008-09-15 2016-07-05 Palantir Technologies, Inc. Modal-less interface enhancements
US10248294B2 (en) 2008-09-15 2019-04-02 Palantir Technologies, Inc. Modal-less interface enhancements
USRE48589E1 (en) 2010-07-15 2021-06-08 Palantir Technologies Inc. Sharing and deconflicting data changes in a multimaster database system
US10423582B2 (en) 2011-06-23 2019-09-24 Palantir Technologies, Inc. System and method for investigating large amounts of data
US11392550B2 (en) 2011-06-23 2022-07-19 Palantir Technologies Inc. System and method for investigating large amounts of data
US10706220B2 (en) 2011-08-25 2020-07-07 Palantir Technologies, Inc. System and method for parameterizing documents for automatic workflow generation
US9880987B2 (en) 2011-08-25 2018-01-30 Palantir Technologies, Inc. System and method for parameterizing documents for automatic workflow generation
US11138180B2 (en) 2011-09-02 2021-10-05 Palantir Technologies Inc. Transaction protocol for reading database values
US9081975B2 (en) 2012-10-22 2015-07-14 Palantir Technologies, Inc. Sharing information between nexuses that use different classification schemes for information access control
US11182204B2 (en) 2012-10-22 2021-11-23 Palantir Technologies Inc. System and method for batch evaluation programs
US9836523B2 (en) 2012-10-22 2017-12-05 Palantir Technologies Inc. Sharing information between nexuses that use different classification schemes for information access control
US9898335B1 (en) 2012-10-22 2018-02-20 Palantir Technologies Inc. System and method for batch evaluation programs
US10891312B2 (en) 2012-10-22 2021-01-12 Palantir Technologies Inc. Sharing information between nexuses that use different classification schemes for information access control
US10311081B2 (en) 2012-11-05 2019-06-04 Palantir Technologies Inc. System and method for sharing investigation results
US10846300B2 (en) 2012-11-05 2020-11-24 Palantir Technologies Inc. System and method for sharing investigation results
US10313833B2 (en) 2013-01-31 2019-06-04 Palantir Technologies Inc. Populating property values of event objects of an object-centric data model using image metadata
US9380431B1 (en) 2013-01-31 2016-06-28 Palantir Technologies, Inc. Use of teams in a mobile application
US10743133B2 (en) 2013-01-31 2020-08-11 Palantir Technologies Inc. Populating property values of event objects of an object-centric data model using image metadata
US9123086B1 (en) 2013-01-31 2015-09-01 Palantir Technologies, Inc. Automatically generating event objects from images
US10817513B2 (en) 2013-03-14 2020-10-27 Palantir Technologies Inc. Fair scheduling for mixed-query loads
US10037314B2 (en) 2013-03-14 2018-07-31 Palantir Technologies, Inc. Mobile reports
US10997363B2 (en) 2013-03-14 2021-05-04 Palantir Technologies Inc. Method of generating objects and links from mobile reports
US9495353B2 (en) 2013-03-15 2016-11-15 Palantir Technologies Inc. Method and system for generating a parser and parsing complex data
US10453229B2 (en) 2013-03-15 2019-10-22 Palantir Technologies Inc. Generating object time series from data objects
US9852205B2 (en) 2013-03-15 2017-12-26 Palantir Technologies Inc. Time-sensitive cube
US9740369B2 (en) 2013-03-15 2017-08-22 Palantir Technologies Inc. Systems and methods for providing a tagging interface for external content
US10264014B2 (en) 2013-03-15 2019-04-16 Palantir Technologies Inc. Systems and user interfaces for dynamic and interactive investigation based on automatic clustering of related data in various data structures
US9779525B2 (en) 2013-03-15 2017-10-03 Palantir Technologies Inc. Generating object time series from data 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
US9965937B2 (en) 2013-03-15 2018-05-08 Palantir Technologies Inc. External malware data item clustering and analysis
US9852195B2 (en) 2013-03-15 2017-12-26 Palantir Technologies Inc. System and method for generating event visualizations
US10120857B2 (en) 2013-03-15 2018-11-06 Palantir Technologies Inc. Method and system for generating a parser and parsing complex data
US9898167B2 (en) 2013-03-15 2018-02-20 Palantir Technologies Inc. Systems and methods for providing a tagging interface for external content
US10572529B2 (en) 2013-03-15 2020-02-25 Palantir Technologies Inc. Data integration tool
US10977279B2 (en) 2013-03-15 2021-04-13 Palantir Technologies Inc. Time-sensitive cube
US11100154B2 (en) 2013-03-15 2021-08-24 Palantir Technologies Inc. Data integration tool
US9646396B2 (en) 2013-03-15 2017-05-09 Palantir Technologies Inc. Generating object time series and data objects
US10809888B2 (en) 2013-03-15 2020-10-20 Palantir Technologies, Inc. Systems and methods for providing a tagging interface for external content
US10482097B2 (en) 2013-03-15 2019-11-19 Palantir Technologies Inc. System and method for generating event visualizations
US10216801B2 (en) 2013-03-15 2019-02-26 Palantir Technologies Inc. Generating data clusters
US9953445B2 (en) 2013-05-07 2018-04-24 Palantir Technologies Inc. Interactive data object map
US10360705B2 (en) 2013-05-07 2019-07-23 Palantir Technologies Inc. Interactive data object map
US9223773B2 (en) 2013-08-08 2015-12-29 Palatir Technologies Inc. Template system for custom document generation
US10699071B2 (en) 2013-08-08 2020-06-30 Palantir Technologies Inc. Systems and methods for template based custom document generation
US9557882B2 (en) 2013-08-09 2017-01-31 Palantir Technologies Inc. Context-sensitive views
US9921734B2 (en) 2013-08-09 2018-03-20 Palantir Technologies Inc. Context-sensitive views
US10545655B2 (en) 2013-08-09 2020-01-28 Palantir Technologies Inc. Context-sensitive views
US10732803B2 (en) 2013-09-24 2020-08-04 Palantir Technologies Inc. Presentation and analysis of user interaction data
US9785317B2 (en) 2013-09-24 2017-10-10 Palantir Technologies Inc. Presentation and analysis of user interaction data
US9996229B2 (en) 2013-10-03 2018-06-12 Palantir Technologies Inc. Systems and methods for analyzing performance of an entity
US9864493B2 (en) 2013-10-07 2018-01-09 Palantir Technologies Inc. Cohort-based presentation of user interaction data
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
US9116975B2 (en) 2013-10-18 2015-08-25 Palantir Technologies Inc. Systems and user interfaces for dynamic and interactive simultaneous querying of multiple data stores
US10877638B2 (en) 2013-10-18 2020-12-29 Palantir Technologies Inc. Overview user interface of emergency call data of a law enforcement agency
US10042524B2 (en) 2013-10-18 2018-08-07 Palantir Technologies Inc. Overview user interface of emergency call data of a law enforcement agency
US9514200B2 (en) 2013-10-18 2016-12-06 Palantir Technologies Inc. Systems and user interfaces for dynamic and interactive simultaneous querying of multiple data stores
US10262047B1 (en) 2013-11-04 2019-04-16 Palantir Technologies Inc. Interactive vehicle information map
US10037383B2 (en) 2013-11-11 2018-07-31 Palantir Technologies, Inc. Simple web search
US11100174B2 (en) 2013-11-11 2021-08-24 Palantir Technologies Inc. Simple web search
US10198515B1 (en) 2013-12-10 2019-02-05 Palantir Technologies Inc. System and method for aggregating data from a plurality of data sources
US11138279B1 (en) 2013-12-10 2021-10-05 Palantir Technologies Inc. System and method for aggregating data from a plurality of data sources
US9727622B2 (en) 2013-12-16 2017-08-08 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
US9552615B2 (en) 2013-12-20 2017-01-24 Palantir Technologies Inc. Automated database analysis to detect malfeasance
US10356032B2 (en) 2013-12-26 2019-07-16 Palantir Technologies Inc. System and method for detecting confidential information emails
US10901583B2 (en) 2014-01-03 2021-01-26 Palantir Technologies Inc. Systems and methods for visual definition of data associations
US10120545B2 (en) 2014-01-03 2018-11-06 Palantir Technologies Inc. Systems and methods for visual definition of data associations
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
US10402054B2 (en) 2014-02-20 2019-09-03 Palantir Technologies Inc. Relationship visualizations
US9483162B2 (en) 2014-02-20 2016-11-01 Palantir Technologies Inc. Relationship visualizations
US10795723B2 (en) 2014-03-04 2020-10-06 Palantir Technologies Inc. Mobile tasks
US10180977B2 (en) 2014-03-18 2019-01-15 Palantir Technologies Inc. Determining and extracting changed data from a data source
US9857958B2 (en) 2014-04-28 2018-01-02 Palantir Technologies Inc. Systems and user interfaces for dynamic and interactive access of, investigation of, and analysis of data objects stored in one or more databases
US10871887B2 (en) 2014-04-28 2020-12-22 Palantir Technologies Inc. Systems and user interfaces for dynamic and interactive access of, investigation of, and analysis of data objects stored in one or more databases
US9449035B2 (en) 2014-05-02 2016-09-20 Palantir Technologies Inc. Systems and methods for active column filtering
US10180929B1 (en) 2014-06-30 2019-01-15 Palantir Technologies, Inc. Systems and methods for identifying key phrase clusters within documents
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
US10162887B2 (en) 2014-06-30 2018-12-25 Palantir Technologies Inc. Systems and methods for key phrase characterization of documents
US10798116B2 (en) 2014-07-03 2020-10-06 Palantir Technologies Inc. External malware data item clustering and analysis
US9298678B2 (en) 2014-07-03 2016-03-29 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
US9998485B2 (en) 2014-07-03 2018-06-12 Palantir Technologies, Inc. Network intrusion data item clustering and analysis
US9785773B2 (en) 2014-07-03 2017-10-10 Palantir Technologies Inc. Malware data item analysis
US9256664B2 (en) 2014-07-03 2016-02-09 Palantir Technologies Inc. System and method for news events detection and visualization
US9880696B2 (en) 2014-09-03 2018-01-30 Palantir Technologies Inc. System for providing dynamic linked panels in user interface
US9454281B2 (en) 2014-09-03 2016-09-27 Palantir Technologies Inc. System for providing dynamic linked panels in user interface
US10866685B2 (en) 2014-09-03 2020-12-15 Palantir Technologies Inc. System for providing dynamic linked panels in user interface
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
US10360702B2 (en) 2014-10-03 2019-07-23 Palantir Technologies Inc. Time-series analysis system
US10664490B2 (en) 2014-10-03 2020-05-26 Palantir Technologies Inc. Data aggregation and analysis system
US9501851B2 (en) 2014-10-03 2016-11-22 Palantir Technologies Inc. Time-series analysis system
US9984133B2 (en) 2014-10-16 2018-05-29 Palantir Technologies Inc. Schematic and database linking system
US11275753B2 (en) 2014-10-16 2022-03-15 Palantir Technologies Inc. Schematic and database linking system
US9946738B2 (en) 2014-11-05 2018-04-17 Palantir Technologies, Inc. Universal data pipeline
US9483506B2 (en) 2014-11-05 2016-11-01 Palantir Technologies, Inc. History preserving data pipeline
US10191926B2 (en) 2014-11-05 2019-01-29 Palantir Technologies, Inc. Universal data pipeline
US9229952B1 (en) 2014-11-05 2016-01-05 Palantir Technologies, Inc. History preserving data pipeline system and method
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
US9558352B1 (en) 2014-11-06 2017-01-31 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
US10447712B2 (en) 2014-12-22 2019-10-15 Palantir Technologies Inc. Systems and user interfaces for dynamic and interactive investigation of bad actor behavior based on automatic clustering of related data in various data structures
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
US11252248B2 (en) 2014-12-22 2022-02-15 Palantir Technologies Inc. Communication data processing architecture
US9898528B2 (en) 2014-12-22 2018-02-20 Palantir Technologies Inc. Concept indexing among database of documents using machine learning techniques
US9589299B2 (en) 2014-12-22 2017-03-07 Palantir Technologies Inc. Systems and user interfaces for dynamic and interactive investigation of bad actor behavior based on automatic clustering of related data in various data structures
US9367872B1 (en) 2014-12-22 2016-06-14 Palantir Technologies Inc. Systems and user interfaces for dynamic and interactive investigation of bad actor behavior based on automatic clustering of related data in various data structures
US10127021B1 (en) 2014-12-29 2018-11-13 Palantir Technologies Inc. Storing logical units of program code generated using a dynamic programming notebook user interface
US9870389B2 (en) 2014-12-29 2018-01-16 Palantir Technologies Inc. Interactive user interface for dynamic data analysis exploration and query processing
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
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
US9335911B1 (en) 2014-12-29 2016-05-10 Palantir Technologies Inc. Interactive user interface for dynamic data analysis exploration and query processing
US10838697B2 (en) 2014-12-29 2020-11-17 Palantir Technologies Inc. Storing logical units of program code generated using a dynamic programming notebook user interface
US9870205B1 (en) 2014-12-29 2018-01-16 Palantir Technologies Inc. Storing logical units of program code generated using a dynamic programming notebook user interface
US10157200B2 (en) 2014-12-29 2018-12-18 Palantir Technologies Inc. Interactive user interface for dynamic data analysis exploration and query processing
US10372879B2 (en) 2014-12-31 2019-08-06 Palantir Technologies Inc. Medical claims lead summary report generation
US11030581B2 (en) 2014-12-31 2021-06-08 Palantir Technologies Inc. Medical claims lead summary report generation
US10803106B1 (en) 2015-02-24 2020-10-13 Palantir Technologies Inc. System with methodology for dynamic modular ontology
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
US10459619B2 (en) 2015-03-16 2019-10-29 Palantir Technologies Inc. Interactive user interfaces for location-based data analysis
US9891808B2 (en) 2015-03-16 2018-02-13 Palantir Technologies Inc. Interactive user interfaces for location-based data analysis
US9886467B2 (en) 2015-03-19 2018-02-06 Plantir Technologies Inc. System and method for comparing and visualizing data entities and data entity series
US9454785B1 (en) 2015-07-30 2016-09-27 Palantir Technologies Inc. Systems and user interfaces for holistic, data-driven investigation of bad actor behavior based on clustering and scoring of related data
US11501369B2 (en) 2015-07-30 2022-11-15 Palantir Technologies Inc. Systems and user interfaces for holistic, data-driven investigation of bad actor behavior based on clustering and scoring of related data
US10223748B2 (en) 2015-07-30 2019-03-05 Palantir Technologies Inc. Systems and user interfaces for holistic, data-driven investigation of bad actor behavior based on clustering and scoring of related data
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
US10489391B1 (en) 2015-08-17 2019-11-26 Palantir Technologies Inc. Systems and methods for grouping and enriching data items accessed from one or more databases for presentation in a user interface
US10102369B2 (en) 2015-08-19 2018-10-16 Palantir Technologies Inc. Checkout system executable code monitoring, and user account compromise determination system
US10922404B2 (en) 2015-08-19 2021-02-16 Palantir Technologies Inc. Checkout system executable code monitoring, and user account compromise determination system
US10853378B1 (en) 2015-08-25 2020-12-01 Palantir Technologies Inc. Electronic note management via a connected entity graph
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
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
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
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
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
US10706434B1 (en) 2015-09-01 2020-07-07 Palantir Technologies Inc. Methods and systems for determining location information
US9576015B1 (en) 2015-09-09 2017-02-21 Palantir Technologies, Inc. Domain-specific language for dataset transformations
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
US10296617B1 (en) 2015-10-05 2019-05-21 Palantir Technologies Inc. Searches of highly structured data
US10572487B1 (en) 2015-10-30 2020-02-25 Palantir Technologies Inc. Periodic database search manager for multiple data sources
US10678860B1 (en) 2015-12-17 2020-06-09 Palantir Technologies, Inc. Automatic generation of composite datasets based on hierarchical fields
US9823818B1 (en) 2015-12-29 2017-11-21 Palantir Technologies Inc. Systems and interactive user interfaces for automatic generation of temporal representation of data objects
US10540061B2 (en) 2015-12-29 2020-01-21 Palantir Technologies Inc. Systems and interactive user interfaces for automatic generation of temporal representation of data objects
US10437612B1 (en) 2015-12-30 2019-10-08 Palantir Technologies Inc. Composite graphical interface with shareable data-objects
US10909159B2 (en) 2016-02-22 2021-02-02 Palantir Technologies Inc. Multi-language support for dynamic ontology
US10248722B2 (en) 2016-02-22 2019-04-02 Palantir Technologies Inc. Multi-language support for dynamic ontology
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
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
US10324609B2 (en) 2016-07-21 2019-06-18 Palantir Technologies Inc. System for providing dynamic linked panels in user interface
US10698594B2 (en) 2016-07-21 2020-06-30 Palantir Technologies Inc. System for providing dynamic linked panels in user interface
US10719188B2 (en) 2016-07-21 2020-07-21 Palantir Technologies Inc. Cached database and synchronization system for providing dynamic linked panels in user interface
US10437840B1 (en) 2016-08-19 2019-10-08 Palantir Technologies Inc. Focused probabilistic entity resolution from multiple data sources
US10102229B2 (en) 2016-11-09 2018-10-16 Palantir Technologies Inc. Validating data integrations using a secondary data store
US10318630B1 (en) 2016-11-21 2019-06-11 Palantir Technologies Inc. Analysis of large bodies of textual data
US10482099B2 (en) 2016-12-19 2019-11-19 Palantir Technologies Inc. Systems and methods for facilitating data transformation
US9946777B1 (en) 2016-12-19 2018-04-17 Palantir Technologies Inc. Systems and methods for facilitating data transformation
US11768851B2 (en) 2016-12-19 2023-09-26 Palantir Technologies Inc. Systems and methods for facilitating data transformation
US11416512B2 (en) 2016-12-19 2022-08-16 Palantir Technologies Inc. Systems and methods for facilitating data transformation
US10460602B1 (en) 2016-12-28 2019-10-29 Palantir Technologies Inc. Interactive vehicle information mapping system
US10776382B2 (en) 2017-01-05 2020-09-15 Palantir Technologies Inc. Systems and methods for facilitating data transformation
US9922108B1 (en) 2017-01-05 2018-03-20 Palantir Technologies Inc. Systems and methods for facilitating data transformation
US10956406B2 (en) 2017-06-12 2021-03-23 Palantir Technologies Inc. Propagated deletion of database records and derived data
US11301499B2 (en) 2017-07-07 2022-04-12 Palantir Technologies Inc. Systems and methods for providing an object platform for datasets
US10691729B2 (en) 2017-07-07 2020-06-23 Palantir Technologies Inc. Systems and methods for providing an object platform for a relational database
US10403011B1 (en) 2017-07-18 2019-09-03 Palantir Technologies Inc. Passing system with an interactive user interface
US11741166B2 (en) 2017-11-10 2023-08-29 Palantir Technologies Inc. Systems and methods for creating and managing a data integration workspace
US10956508B2 (en) 2017-11-10 2021-03-23 Palantir Technologies Inc. Systems and methods for creating and managing a data integration workspace containing automatically updated data models
US11599369B1 (en) 2018-03-08 2023-03-07 Palantir Technologies Inc. Graphical user interface configuration system
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
US11461355B1 (en) 2018-05-15 2022-10-04 Palantir Technologies Inc. Ontological mapping of data
US11119630B1 (en) 2018-06-19 2021-09-14 Palantir Technologies Inc. Artificial intelligence assisted evaluations and user interface for same

Also Published As

Publication number Publication date
GB2518745A (en) 2015-04-01
GB201413935D0 (en) 2014-09-17

Similar Documents

Publication Publication Date Title
DE102014215621A1 (en) Template system for generating customized documents
DE10051645B4 (en) Process control system and method for controlling a process
DE102014204840A1 (en) Improved data integration tool
DE112018002872T5 (en) INTEGRATED SYSTEM FOR RULING, SIMULATION, VERSION CONTROL AND BUSINESS PROCESS MANAGEMENT
DE69838139T2 (en) METHOD AND SYSTEM FOR CREATING DATABASE APPLICATION SOFTWARE THAT NEEDS MINIMAL PROGRAMMING
DE102014213036A1 (en) Data Quality Monitors
DE10300545B4 (en) Device, method, storage medium and data structure for the identification and storage of data
DE112020003820T5 (en) Anomaly and drift detection using a domain-indexed constraints repository
AU2014208218A1 (en) Template system for custom document generation
DE19960050A1 (en) Test code generation method for automatic testing procedure for computer system using visual representation for selection of test object and test object options
DE10348337A1 (en) Content management portal and method for communicating information
DE19705955A1 (en) Workflow processing model implementation method
DE112020000227T5 (en) MACHINE LEARNING OF A COMPUTER MODEL BASED ON CORRELATIONS OF TRAINING DATA WITH PERFORMANCE TRENDS
DE102007011150A1 (en) Method and system for managing data in a workflow process
DE102006057149A1 (en) A system and method for facilitating a visual comparison of input data with existing data
DE102017207686A1 (en) INSIGHTS IN THE SUPPORT STRATEGY
DE102012210401A1 (en) Customize data quality rules based on user application requirements
DE102020110542A1 (en) PROCEDURES AND SYSTEMS FOR MANAGING TICKETS
DE202017107393U1 (en) Predicting a search engine map signal value
DE102014116369A1 (en) MANAGEMENT OF LANGUAGE MARKERS IN INTERNATIONAL DATA STORAGE
DE102017106023A1 (en) Method and system for automated user interface testing via model-driven techniques
DE112020005268T5 (en) AUTOMATICALLY GENERATE SCHEMA ANNOTATION FILES TO CONVERT NATURAL LANGUAGE QUERIES TO STRUCTURED QUERY LANGUAGE
DE102010042288A1 (en) Apparatus and method for automatically creating a process diagram
DE102012100113A1 (en) Method, software and computer system for handling accumulated data
DE102011007903A1 (en) Computer-aided method and system for generating customized dynamic templates

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R002 Refusal decision in examination/registration proceedings