DE102014204840A1 - Improved data integration tool - Google Patents

Improved data integration tool Download PDF

Info

Publication number
DE102014204840A1
DE102014204840A1 DE102014204840.0A DE102014204840A DE102014204840A1 DE 102014204840 A1 DE102014204840 A1 DE 102014204840A1 DE 102014204840 A DE102014204840 A DE 102014204840A DE 102014204840 A1 DE102014204840 A1 DE 102014204840A1
Authority
DE
Germany
Prior art keywords
condition
valid
transformation
data
ontology
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE102014204840.0A
Other languages
German (de)
Inventor
Anthony Albert NASSAR
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/044,800 external-priority patent/US8930897B2/en
Application filed by Palantir Technologies Inc filed Critical Palantir Technologies Inc
Publication of DE102014204840A1 publication Critical patent/DE102014204840A1/en
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/254Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/289Object oriented databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/36Creation of semantic tools, e.g. ontology or thesauri
    • G06F16/367Ontology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation
    • G06F40/154Tree transformation for tree-structured or markup documents, e.g. XSLT, XSL-FO or stylesheets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/226Validation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Animal Behavior & Ethology (AREA)
  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

Computerimplementierte Systeme und Verfahren werden offenbart, die proaktive Validierungen von Transformationsskripts liefern. Bei einem Ausführungsbeispiel wird ein Verfahren bereitgestellt, das umfasst, dass, mit mindestens einem Prozessor, das Transformationsskript mit Ontologie-Parametern assoziiert wird. Das Verfahren umfasst auch, dass eine Debugging-Operation des Transformationsskripts, das mindestens eine Bedingung aufweist, eingeleitet wird und aus einer Datenquelle mindestens ein Datenelement für eine Transformation importiert wird. Das Verfahren umfasst weiter, dass, als Teil der Debugging-Operation, bestimmt wird, ob die mindestens eine Bedingung, die das mindestens eine Datenelement verwendet, gültig ist, und zwar basierend auf den Ontologie-Parametern, und dass einem Benutzer auf einer Anzeigevorrichtung ein der Bestimmung zugehöriges Ergebnis gemeldet wird.Computer-implemented systems and methods are disclosed that provide proactive validation of transformation scripts. In one embodiment, a method is provided that includes associating the transformation script with ontology parameters with at least one processor. The method also includes that a debugging operation of the transformation script, which has at least one condition, is initiated and at least one data element for a transformation is imported from a data source. The method further includes determining, as part of the debugging operation, whether the at least one condition that the at least one data element uses is valid based on the ontology parameters and that a user is on a display device result associated with the determination is reported.

Description

Diese Anmeldung beansprucht die Priorität der provisorischen US-Patentanmeldung Nr. 61/801,222, eingereicht am 15. März 2013, und der US-Patentanmeldung Nr. 14/044,880, eingereicht am 2. Oktober 2013, wobei deren Offenbarung hiermit durch Bezugnahme vollinhaltlich in das vorliegende Dokument aufgenommen wird.This application claims the benefit of US Provisional Patent Application No. 61 / 801,222 filed Mar. 15, 2013, and US Patent Application No. 14 / 044,880 filed Oct. 2, 2013, the disclosure of which is incorporated herein by reference in its entirety this document is incorporated.

Daten werden in computerbasierten Systemen für gewöhnlich in festen, starr strukturierten Datenspeichern gespeichert. Beispielsweise ist ein üblicher Typ von Datenspeicher eine „schlichte” Datei, beispielsweise eine Kalkulationstabelle, ein Klartextdokument (Plain-Text-Dokument), oder ein XML-Dokument. Ein weiterer üblicher Typ von Datenspeicher ist eine relationale Datenbank, die eine oder mehrere Tabellen aufweist. Weitere Beispiele von Datenspeichern, die strukturierte Daten aufweisen, beinhalten, ohne Einschränkung, Dateisysteme, Objektsammlungen, Datensatzsammlungen, Felder, Hierarchiebäume, verknüpfte Listen, Stapelspeicher (Stacks), und Kombinationen von diesen.Data in computer-based systems is usually stored in fixed, rigid-structured data stores. For example, a common type of data store is a "plain" file, such as a spreadsheet, a plain text document, or an XML document. Another common type of data store is a relational database that has one or more tables. Other examples of data stores that have structured data include, without limitation, file systems, object collections, dataset collections, fields, hierarchy trees, linked lists, stacks, and combinations of these.

Häufig ist die zugrundeliegende Struktur dieser Typen von Datenspeichern zur Datenanalyse schlecht geeignet. Ein Lösungsansatz zur Erleichterung einer effizienteren Analyse von Daten in derartigen Datenspeichern besteht darin, die Daten gemäß einem Objektmodell zu reorganisieren, das Objektstrukturen und Beziehungen zwischen den Objektstrukturen definiert.Often, the underlying structure of these types of data stores is poorly suited for data analysis. One approach to facilitate more efficient analysis of data in such data stores is to reorganize the data according to an object model that defines object structures and relationships between the object structures.

Um ein Objektmodell zu erzeugen, können Datenelemente in den zugrundeliegenden Datenspeichern, beispielsweise Tabellenzeilen oder -zellen, auf Eigenschaften der Objekte im Modell abgebildet werden. Die Semantik oder „Bedeutungen” der verschiedenen Komponenten des Objektmodells sind durch eine Ontologie definiert, die Objekte, Beziehungen und/oder Eigenschaften gemäß verschiedenen definierten Typen kategorisiert. Beispielsweise könnte eine Ontologie Objekte so kategorisieren, dass sie einer der folgenden Typen sind: Person, Entität, oder Ereignis. Die Ontologie kann unterschiedliche Eigenschaften für jeden Objekttyp definieren, beispielsweise Namen, Datumsangaben, Orte, Dokumente, Medien etc. Außerdem kann die Ontologie weiter Beziehungen (oder Links) zwischen Objekten definieren, beispielsweise Arbeitnehmer, Teilnehmer, Geschwister etc.To create an object model, data items in the underlying data stores, such as table rows or cells, can be mapped to properties of the objects in the model. The semantics or "meanings" of the various components of the object model are defined by an ontology that categorizes objects, relationships and / or properties according to various defined types. For example, an ontology might categorize objects to be one of the following types: person, entity, or event. The ontology may define different properties for each object type, such as names, dates, locations, documents, media, etc. Additionally, the ontology may further define relationships (or links) between objects, such as workers, participants, siblings, etc.

Die vorliegende Erfindung ist in den unabhängigen Ansprüchen wiedergegeben. Die abhängigen Ansprüche betreffen optionale Merkmale einiger Ausführungsformen der Erfindung.The present invention is set forth in the independent claims. The dependent claims relate to optional features of some embodiments of the invention.

Nachfolgend wird Bezug genommen auf die anliegenden Zeichnungen, die beispielhafte Ausführungsformen der vorliegenden Anmeldung darstellen, wobei:Reference will now be made to the accompanying drawings, which illustrate exemplary embodiments of the present application, wherein:

1A in Blockdiagrammform ein beispielhaftes Datenfusionssystem zur Lieferung einer interaktiven Datenanalyse zeigt, gemäß Ausführungsformen der vorliegenden Offenbarung. 1A FIG. 3 illustrates, in block diagram form, an exemplary data fusion system for providing interactive data analysis, in accordance with embodiments of the present disclosure.

1B ein Bildschirmfoto einer beispielhaften grafischen Schnittstelle für das Datenfusionssystem von 1A zeigt, gemäß Ausführungsformen der vorliegenden Offenbarung. 1B a screenshot of an exemplary graphical interface for the data fusion system of 1A 10, according to embodiments of the present disclosure.

2 ein beispielhaftes Projekt zeigt, das eines oder mehrere einer Datentransformation zugehörige Transformationsskripts bereitstellt, gemäß Ausführungsformen der vorliegenden Offenbarung. 2 FIG. 10 illustrates an example project that provides one or more transformation scripts associated with a data transformation, in accordance with embodiments of the present disclosure.

3 eine beispielhafte Konfigurationsdatei für ein Projekt zeigt, gemäß Ausführungsformen der vorliegenden Offenbarung. 3 shows an exemplary configuration file for a project, according to embodiments of the present disclosure.

4 ein beispielhaftes Transformationsverfahren eines Transformationsskripts zeigt, gemäß Ausführungsformen der vorliegenden Offenbarung. 4 FIG. 10 shows an example transformation method of a transformation script according to embodiments of the present disclosure. FIG.

5 beispielhafte Link-Erbauer-Verfahren des in 4 beschriebenen Transformationsverfahrens zeigt, gemäß Ausführungsformen der vorliegenden Offenbarung. 5 exemplary link builder methods of in 4 described transformation method, according to embodiments of the present disclosure.

6A, 6B ein beispielhaftes Inhaltsverarbeitungsverfahren des in 4 beschriebenen Transformationsverfahrens zeigt, gemäß Ausführungsformen der vorliegenden Offenbarung. 6A . 6B an exemplary content processing method of the in 4 described transformation method, according to embodiments of the present disclosure.

7 einen beispielhaften Erbauer für eine domänenspezifische Sprache (DSL) zeigt, der durch die in 6A und 6B beschriebene Inhaltsverarbeitungseinheit aufgerufen wird, gemäß Ausführungsformen der vorliegenden Offenbarung. 7 shows an exemplary domain specific language (DSL) builder constructed by the in 6A and 6B described content processing unit, according to embodiments of the present disclosure.

8 eine beispielhafte Softwareentwicklungsumgebung für ein Debugging eines Transformationsskripts zeigt, gemäß Ausführungsformen der vorliegenden Offenbarung. 8th FIG. 10 illustrates an exemplary software development environment for debugging a transformation script, according to embodiments of the present disclosure.

9 ein Ablaufdiagramm zeigt, das ein beispielhaftes Verfahren für eine proaktive Validierung eines Transformationsskripts darstellt, gemäß Ausführungsformen der vorliegenden Offenbarung. 9 FIG. 5 is a flowchart illustrating an exemplary method for proactively validating a transform script according to embodiments of the present disclosure.

10 in Blockdiagrammform ein beispielhaftes Computersystem zeigt, mit dem hier beschriebene Ausführungsformen implementiert werden können, gemäß Ausführungsformen der vorliegenden Offenbarung. 10 FIG. 3 illustrates, in block diagram form, an exemplary computer system with which embodiments described herein can be implemented, in accordance with embodiments of the present disclosure.

Nachfolgend wird detailliert Bezug genommen auf die Ausführungsformen, wobei Beispiele für diese in den anliegenden Zeichnungen dargestellt sind. Wann immer möglich, werden gleiche Bezugszeichen in allen Zeichnungen verwendet, um auf gleiche oder ähnliche Teile Bezug zu nehmen.Reference will now be made in detail to the embodiments, examples of which are illustrated in the accompanying drawings. Whenever possible, like reference numbers will be used throughout the drawings to refer to the same or like parts.

1A zeigt in Blockdiagrammform ein beispielhaftes Datenfusionssystem 100 zur Liefung einer interaktiven Datenanalyse, gemäß Ausführungsformen der vorliegenden Offenbarung. System 100 kann mehrere Komponenten beinhalten. Die Komponenten von System 100 können Daten/Information in jede Richtung zu anderen Komponenten elektronisch übertragen und können miteinander über drahtgebundene oder drahtlose Übertragungsverbindungen und/oder über eines oder mehrere Netzwerke verbunden sein. 1A shows in block diagram form an exemplary data fusion system 100 for providing interactive data analysis, in accordance with embodiments of the present disclosure. system 100 can contain several components. The components of system 100 may electronically transmit data / information in any direction to other components and may be interconnected via wired or wireless communication links and / or over one or more networks.

Unter anderem erleichtert System 100 eine Transformation von einer oder mehreren Datenquellen, beispielsweise Datenquellen 130, in ein Objektmodell 160, dessen Semantik durch eine Ontologie 150 definiert ist. Die Transformation kann aus einer Vielfalt von Gründen durchgeführt werden. Beispielsweise ist es möglich, dass ein Datenbankadministrator Daten aus Datenquellen 130 in eine Datenbank 170 importieren möchte, für ein persistentes Speichern eines Objektmodells 160. Als weiteres Beispiel kann eine (nicht dargestellte) Daten präsentationskomponente von Datenquellen 130 stammende Eingangsdaten bereits während der Übertragung („on the fly”) in ein Objektmodell 160 transformieren. Das Objektmodell 160 kann dann, in Verbindung mit einer Ontologie 150, für eine Analyse mittels Graphen und/oder anderer Datenvisualisierungstechniken verwendet werden.Among other things, system facilitates 100 a transformation of one or more data sources, such as data sources 130 , in an object model 160 whose semantics through an ontology 150 is defined. The transformation can be done for a variety of reasons. For example, it is possible for a database administrator to access data from data sources 130 into a database 170 import for persistently saving an object model 160 , As another example, a data presentation component (not shown) of data sources 130 originating input data already during the transmission ("on the fly") into an object model 160 transform. The object model 160 can then, in conjunction with an ontology 150 , for analysis by means of graphs and / or other data visualization techniques.

Wie in 1A dargestellt, weist System 100 eine Definitionskomponente 110 und eine Transformationskomponente 120 auf, die beide durch einen oder mehrere Prozessoren in einer oder mehreren Berechnungsvorrichtungen implementiert sind, welche eine Hardware- oder Software-basierte Logik ausführen, um verschiedene hier beschriebene Funktionalitäten bereitzustellen. Wie aus der vorliegenden Offenbarung klar zu entnehmen ist, kann System 100 eine geringere oder eine größere Anzahl von Komponenten aufweisen, die verschiedene hier beschriebene Funktionalitäten bereitstellen. Derartige Komponenten wurden der Klarheit halber in 1A weggelassen. Außerdem können die Komponente(n) von System 100, die für ein Bereitstellen verschiedener Funktionalitäten verantwortlich sind, von Ausführungsform zu Ausführungsform weiter variieren.As in 1A shown, points system 100 a definition component 110 and a transformation component 120 , both of which are implemented by one or more processors in one or more computing devices that execute hardware or software-based logic to provide various functionality described herein. As can be clearly seen from the present disclosure, system 100 have a lesser or greater number of components that provide various functionalities described herein. Such components have been incorporated in for clarity 1A omitted. In addition, the component (s) of System 100 that are responsible for providing various functionalities, vary further from embodiment to embodiment.

Die Definitionskomponente 110 erzeugt und/oder modifiziert eine Ontologie 150 und ein Schema-Map 140. Beispielhafte Ausführungsformen zum Definieren einer Ontologie (beispielsweise einer Ontologie 150) sind beschrieben in US 7,962,495 (dem '495-Patent), veröffentlicht am 14. Juni 2011, das hiermit in jeder Hinsicht durch Bezugnahme vollinhaltlich in die vorliegende Anmeldung aufgenommen wird. Unter anderem beschreibt das '495-Patent Ausführungsformen, die eine dynamische Ontologie zur Verwendung bei einer Erzeugung von Daten in einer Datenbank definieren. Zur Erzeugung einer Datenbank-Ontologie werden eines oder mehrere Objekttypen erzeugt, wobei jeder Objekttyp eine oder mehrere Eigenschaften beinhalten kann. Die Attribute von Objekttypen oder Eigenschaftstypen der Ontologie können jederzeit bearbeitet oder modifiziert werden. Und für jeden Eigenschaftstyp wird mindestens eine Parser-Definition erzeugt. Die Attribute einer Parser-Definition können jederzeit bearbeitet oder modifiziert werden.The definition component 110 generates and / or modifies an ontology 150 and a schema map 140 , Exemplary embodiments for defining an ontology (eg, an ontology 150 ) are described in US 7,962,495 (the '495 patent), published June 14, 2011, which is hereby incorporated by reference in all respects to the present application in all respects. Among other things, the '495 patent describes embodiments that define a dynamic ontology for use in generating data in a database. To create a database ontology, one or more object types are created, where each object type may include one or more properties. The attributes of object types or property types of the ontology can be edited or modified at any time. And for each property type, at least one parser definition is created. The attributes of a parser definition can be edited or modified at any time.

Bei einigen Ausführungsformen wird jeder Eigenschaftstyp als repräsentativ für einen oder mehrere Objekttypen deklariert. Ein Eigenschaftstyp ist für einen Objekttyp repräsentativ, wenn der Eigenschaftstyp intuitiv mit dem Objekttyp assoziiert wird. Beispielsweise kann ein Eigenschaftstyp „Sozialversicherungsnummer” für einen Objekttyp „Person” repräsentativ sein, jedoch nicht repräsentativ für einen Objekttyp „Geschäft”.In some embodiments, each property type is declared representative of one or more object types. A property type is representative of an object type if the property type is intuitively associated with the object type. For example, a social security number property type may be representative of a person object type, but not representative of a business object type.

Bei einigen Ausführungsformen hat jeder Eigenschaftstyp einen oder mehrere Bestandteile und einen Basistyp. Bei einigen Ausführungsformen kann ein Eigenschaftstyp eine Zeichenkette (String), ein Datum, eine Anzahl, oder einen zusammengesetzten Typ aufweisen, der aus zwei oder mehr Zeichenkette-, Datum-, oder Anzahl-Elementen besteht. Somit sind Eigenschaftstypen erweiterbar und können komplexe Datenstrukturen repräsentieren. Weiter kann eine Parser-Definition einen Bestandteil eines komplexen Eigenschaftstyps als Einheit oder Token referenzieren.In some embodiments, each property type has one or more constituents and a base type. In some embodiments, a property type may include a string, a date, a number, or a composite type consisting of two or more string, date, or number elements. Thus, property types are extensible and can represent complex data structures. Further, a parser definition may reference a component of a complex property type as a unit or token.

Ein Beispiel einer Eigenschaft, die mehrere Bestandteile aufweist, ist eine Eigenschaft ,Name', die einen Bestandteil ,Familienname' und einen Bestandteil ,Vorname' aufweist. Ein Beispiel für Eingangsrohdaten ist „Smith, Jane”. Eine beispielhafte Parser-Definition spezifiziert eine Zuordnung von importierten Eingangsdaten auf Bestandteile von Objekteigenschaften, wie folgt:
{FAMILIENNAME}, {VORNAME} → Name:Familie, Name:Vor
An example of a property that has multiple constituents is a property 'name' that has a constituent 'surname' and a constituent 'first name'. An example of raw input data is "Smith, Jane". An example parser definition specifies an assignment of imported input data to components of object properties, as follows:
{FAMILY NAME}, {FIRST NAME} → Name: Family, Name: Vor

Bei einigen Ausführungsformen wird die Zuordnung {FAMILIENNAME}, {VORNAME} in einer Parser-Definition definiert, die eine regelhafte Ausdruckssymbolik verwendet. Die Zuordnung {FAMILIENNAME}, {VORNAME} gibt an, dass eine Zeichenkette ,Familienname', die von einer Zeichenkette ,Vorname' gefolgt wird, gültige Eingangsdaten für eine Eigenschaft vom Typ Name beinhaltet. Im Gegensatz dazu wären die Eingangsdaten „Smith Jane” für die spezifizierte Parser-Definition nicht gültig, jedoch könnte ein Benutzer eine zweite Parser-Definition erzeugen, die zu den Eingangsdaten „Smith Jane” passt. Die Definition Name:Familie, Name:Vor gibt an, dass passende Eingangsdatenwerte auf Bestandteile mit Namen „Familie” und „Vor” der Eigenschaft Name abgebildet werden.In some embodiments, the {FAMILY NAME}, {FIRST NAME} mapping is defined in a parser definition that uses regular expression symbology. The {FAMILY NAME}, {FIRST NAME} mapping indicates that a string 'surname' followed by a string 'first name' contains valid input data for a name property. In contrast, the input data "Smith Jane" would not be valid for the specified parser definition, but a user could generate a second parser definition that matches the input data "Smith Jane". The Definition Name: Family, Name: Pre indicates that matching input data values are mapped to constituents named "Family" and "Before" of the Name property.

Als Ergebnis führt ein Parsen der Eingangsdaten unter Verwendung der Parser-Definition dazu, dass der Wert „Smith” dem Bestandteil ,Name:Familie' der Eigenschaft ,Name' zugewiesen wird, und der Wert „Jane” dem Bestandteil ,Name:Vor' der Eigenschaft ,Name' zugewiesen wird.As a result, parsing the input data using the parser definition causes the value "Smith" to be assigned to the component 'Name: Family' of the property 'Name' and the value 'Jane' to the component 'Name: Before' Property name is assigned.

Erneut Bezug nehmend auf 1A kann ein Schema-Map 140 definieren, wie verschiedene Elemente von Schemata 135 für Datenquellen 130 auf verschiedene Elemente einer Ontologie 150 abgebildet werden. Die Definitionskomponente 110 führt ein Empfangen, Berechnen, Extrahieren, oder ein anderweitiges Identifizieren von Schemata 135 für Datenquellen 130 durch. Schemata 135 definieren die Struktur von Datenquellen 130 – beispielsweise die Namen und weitere Kennzeichen von Tabellen, Dateien, Spalten, Feldern, Eigenschaften etc. Die Definitionskomponente 110 identifiziert außerdem optional Testdaten 136 aus Datenquellen 130. Die Definitionskomponente 110 kann weiter Objekttyp-, Beziehungs-, und Eigenschafts-Definitionen aus der Ontologie 150 identifizieren, falls eine solche bereits vorhanden ist. Die Definitionskomponente 110 kann weiter vorbestehende Abbildungen aus dem Schema-Map 140 identifizieren, falls derartige Abbildungen vorhanden sind.Referring again to 1A can be a schema map 140 define how different elements of schemas 135 for data sources 130 on different elements of an ontology 150 be imaged. The definition component 110 performs receiving, calculating, extracting, or otherwise identifying schemas 135 for data sources 130 by. schemes 135 define the structure of data sources 130 - For example, the names and other characteristics of tables, files, columns, fields, properties, etc. The definition component 110 also optionally identifies test data 136 from data sources 130 , The definition component 110 can continue to have object type, relationship, and property definitions from the ontology 150 identify if one already exists. The definition component 110 can continue pre-existing illustrations from the schema map 140 identify if such mappings are present.

Basierend auf der identifizierten Information kann die Definitionskomponente 110 eine grafische Schnittstelle 115 erzeugen. Die grafische Schnittstelle 115 kann Benutzern einer Berechnungsvorrichtung über einen beliebigen geeigneten Ausgabemechanismus präsentiert werden (z. B. einen Anzeigebildschirm, eine Bildprojektion etc.), und kann weiter Eingaben von Benutzern der Berechnungsvorrichtung über einen beliebigen geeigneten Eingabemechanismus entgegennehmen (z. B. eine Tastatur, eine Maus, eine Berührungsbildschirm-Schnittstelle etc.). Die grafische Schnittstelle 115 bietet einen visuellen Arbeitsraum, der Darstellungen der Elemente der Ontologie 150 visuell darstellt, für welche im Schema-Map 140 Abbildungen definiert sind. 1B liefert eine beispielhafte Darstellung einer grafischen Schnittstelle 115 für eine visuelle Wiedergabe von Darstellungen der Elemente der Ontologie 150. Die grafische Schnittstelle 115 beinhaltet auch Steuereinrichtungen zum Hinzufügen von neuen Elementen zum Schema-Map 140 und/oder der Ontologie 150, einschließlich Objekten, Eigenschaften von Objekten und Beziehungen, und zwar über den visuellen Arbeitsraum. Nachdem eine Darstellung der Elemente der Ontologie 150 im visuellen Arbeitsraum erfolgt ist, kann die grafische Schnittstelle 115 weiter Steuereinrichtungen in Zusammenhang mit den Darstellungen bereitstellen, die ermöglichen, dass die Elemente der Ontologie 150 modifiziert werden und identifiziert wird, wie die Elemente der Ontologie 150 Elementen der Schemata 135 entsprechen. Optional kann die grafische Schnittstelle 115 weiter die Testdaten 136 verwenden, um dem Benutzer eine Vorschau des Objektmodells 160 zu liefern, wenn der Benutzer ein Schema-Map 140 definiert. Reagierend auf die Eingabe über die verschiedenen Steuereinrichtungen der grafischen Schnittstelle 115 kann die Definitionskomponente 110 die Ontologie 150 und das Schema-Map 140 erzeugen und/oder modifizieren.Based on the identified information, the definition component 110 a graphical interface 115 produce. The graphical interface 115 may be presented to users of a computing device via any suitable dispensing mechanism (eg, a display screen, image projection, etc.), and may further receive input from users of the computing device via any suitable input mechanism (e.g., a keyboard, a mouse, a touchscreen interface, etc.). The graphical interface 115 provides a visual workspace that displays the elements of ontology 150 represents for which in the schema map 140 Illustrations are defined. 1B provides an exemplary representation of a graphical interface 115 for a visual rendering of representations of the elements of the ontology 150 , The graphical interface 115 also includes controls for adding new items to the schema map 140 and / or ontology 150 including objects, properties of objects and relationships, via the visual workspace. Having a representation of the elements of ontology 150 is done in the visual workspace, the graphical interface can 115 to provide further control devices in connection with the representations that enable the elements of the ontology 150 be modified and identified as the elements of ontology 150 Elements of the schemata 135 correspond. Optionally, the graphical interface 115 continue the test data 136 use to give the user a preview of the object model 160 to deliver when the user has a schema map 140 Are defined. Responding to input via the various controls of the graphical interface 115 can be the definition component 110 the ontology 150 and the schema map 140 create and / or modify.

Die Transformationskomponente 120 kann aufgerufen werden, nachdem ein Definieren oder ein Neudefinieren des Schema-Map 140 und der Ontologie 150 erfolgt ist. Die Transformationskomponente 120 identifiziert das Schema-Map 140 und die Ontologie 150. Die Transformationskomponente 120 liest weiter Datenquellen 130 und identifiziert Schemata 135 für Datenquellen 130. Für jedes Element der Ontologie 150, das im Schema-Map 140 beschrieben ist, führt die Transformationskomponente 120 eine iterierende Bearbeitung entlang einiger oder allen Datenelementen der Datenquellen 130 durch, wobei Elemente des Objektmodells 160 in der durch das Schema-Map 140 spezifizierten Weise erzeugt werden. Bei einigen Ausführungsformen kann die Transformationskomponente 120 eine Repräsentation eines jeden erzeugten Elementes eines Objektmodells 160 in einer Datenbank 170 speichern. Bei einigen Ausführungsformen ist die Transformationskomponente 120 weiter konfiguriert, um Änderungen in Objektmodell 160 auf Datenquellen 130 zurück zu synchronisieren.The transformation component 120 can be called after defining or redefining the schema map 140 and ontology 150 is done. The transformation component 120 identifies the schema map 140 and the ontology 150 , The transformation component 120 continues reading data sources 130 and identifies schemas 135 for data sources 130 , For every element of ontology 150 that in the schema map 140 described, performs the transformation component 120 an iterating process along some or all data elements of the data sources 130 by, being elements of the object model 160 in the by the schema map 140 be generated in a specified manner. In some embodiments, the transformation component 120 a representation of each generated element of an object model 160 in a database 170 to save. In some embodiments, the transformation component is 120 further configured to make changes in object model 160 on data sources 130 back to sync.

Bei den Datenquellen 130 kann es sich um eine oder mehrere Quellen von Daten handeln, welche, ohne Einschränkung, Tabellenkalkulationsdateien, Datenbanken, E-Mail-Ordner, Dokumentensammlungen, Mediensammlungen, Kontaktverzeichnisse etc. beinhalten. Die Datenquellen 130 können Datenstrukturen beinhalten, die in nicht-flüchtigem Speicher persistent gespeichert werden. Die Datenquellen 130 können auch, zusätzlich oder stattdessen, temporäre Datenstrukturen beinhalten, die aus zugrundeliegenden Datenquellen mittels Datenextraktionskomponenten erzeugt werden, beispielsweise einen Ergebnissatz, der von einem eine Datenbankabfrage bearbeitenden Datenbankserver zurückgegeben wird. At the data sources 130 It may be one or more sources of data including, without limitation, spreadsheet files, databases, e-mail folders, collections of documents, media collections, contact directories, etc. The data sources 130 may include data structures that are stored persistently in non-volatile memory. The data sources 130 may also, in addition or instead, include temporary data structures generated from underlying data sources using data extraction components, such as a result set returned by a database server processing a database query.

Das Schema-Map 140, die Ontologie 150 und Schemata 135 können in beliebigen geeigneten Strukturen gespeichert werden, beispielsweise XML-Dateien, Datenbanktabellen etc. Bei einigen Ausführungsformen wird die Ontologie 150 in persistenter Weise beibehalten. Das Schema-Map 140 kann in persistenter Weise beibehalten werden, oder auch nicht, in Abhängigkeit davon, ob der Transformationsprozess ein fortwährendes oder ein einmaliges Ereignis ist. Die Schemata 135 brauchen nicht im persistenten Speicher gehalten zu werden, sondern können zur Optimierung im Cache gespeichert werden.The schema map 140 , the ontology 150 and schemas 135 can be stored in any suitable structures, such as XML files, database tables, etc. In some embodiments, the ontology becomes 150 maintained in a persistent way. The schema map 140 can be persisted persistently or not depending on whether the transformation process is a perpetual or a one-time event. The schemes 135 do not need to be kept in persistent storage but can be cached for optimization.

Das Objektmodell 160 weist Sammlungen von Elementen, beispielsweise typisierten Objekten, Eigenschaften und Beziehungen auf. Die Sammlungen können in beliebiger geeigneter Weise strukturiert sein. Bei einigen Ausführungsformen speichert eine Datenbank 170 die Elemente eines Objektmodells 160, oder Repräsentationen von diesen. Bei einigen Ausführungsformen werden die Elemente eines Objektmodells 160 in einer Datenbank 170 in einem unterschiedlichen zugrundeliegenden Format gespeichert, beispielsweise in einer Abfolge von Objekt-, Eigenschafts-, und Beziehungstabellen in einer relationalen Datenbank.The object model 160 has collections of items, such as typed objects, properties, and relationships. The collections may be structured in any suitable manner. In some embodiments, a database stores 170 the elements of an object model 160 , or representations of these. In some embodiments, the elements of an object model become 160 in a database 170 stored in a different underlying format, such as a sequence of object, property, and relationship tables in a relational database.

2 zeigt ein beispielhaftes Projekt 200, das eines oder mehrere Skripts 210 liefert. Das Projekt 200 und die ihm zugehörigen Skripts 210 können durch eine Transformationseinrichtung (beispielsweise die Transformationskomponente 120) verarbeitet werden. Die Skripts 210 können eines oder mehrere Transformationsskripts beinhalten, die daran beteiligt sind, einige oder alle Datenelemente der Datenquellen 130 in Elemente für das Objektmodell 160 zu transformieren. Bei diesem speziellen Beispiel trägt das Projekt 200 die Bezeichnung „kea-Beispiele” und weist die folgenden Skripts auf: CSVBeispiel.groovy, MalvareReport.groovy, TelefonTransformer.groovy, RaubkopieMuster.groovy, RekursivEingabeEinfachAusgabeVerzeichnisUmwandlung.groovy, und RSSFeed.groovy. Das Projekt 200 beinhaltet, unter anderem, auch eine Datei log.Eigenschaften', die Anweisungen für eine Ausgabeprotokollierung liefert, sowie eine Konfigurationsdatei, die das Laufen des einen oder der mehreren Skripts 210 unterstützt. 2 shows an exemplary project 200 , one or more scripts 210 supplies. The project 200 and its scripts 210 can by a transformation means (for example, the transformation component 120 ) are processed. The scripts 210 may include one or more transformation scripts involved in some or all data elements of the data sources 130 in elements for the object model 160 to transform. In this particular example, the project contributes 200 the term "kea examples" and has the following scripts: CSV Example.groovy, MalvareReport.groovy, TelefonTransformer.groovy, piracyPattern.groovy, RecursiveEntrySimpleExpenseDirectoryValidation.groovy, and RSSFeed.groovy. The project 200 includes, among other things, a log.properties file that provides instructions for output logging, as well as a configuration file that tracks the running of one or more scripts 210 supported.

3 zeigt eine beispielhafte Konfigurationsdatei 300 für das Projekt 200, das zuvor mit Bezug auf 2 beschrieben wurde. Die Konfigurationsdatei 300 kann durch eine Transformationseinrichtung (beispielsweise die Transformationskomponente 120) verarbeitet werden. Unter anderem kann die Konfigurationsdatei 300 für das Setzen von Parametern verwendet werden, während eines oder mehrere Skripts 210 ablaufen, die der Konfigurationsdatei 200 zugehörig sind. Die Konfigurationsdatei 300 kann eine Ontologie-Datei 310 identifizieren, die für eine Namensgebung und ein Anordnen von Objekten, Eigenschaften, und/oder Links sorgt, um zu bestimmen, ob vorgeschlagene Ausgabeergebnisse von Skripts gültig sind. Die Ontologie-Datei 310 ist Teil der zuvor beschriebenen Ontologie 150. Zwar wird die Ontologie-Datei 310 in der Konfigurationsdatei 200 identifiziert, jedoch zeigt bei einigen Ausführungsformen die Konfigurationsdatei 300 auf den Ort, an dem sich die Ontologie-Datei 310 befindet. 3 shows an exemplary configuration file 300 for the project 200 that was previously referring to 2 has been described. The configuration file 300 can by a transformation means (for example, the transformation component 120 ) are processed. Among other things, the configuration file 300 used for setting parameters during one or more scripts 210 expire the configuration file 200 are associated. The configuration file 300 can be an ontology file 310 identify that provides for naming and arranging objects, properties, and / or links to determine whether proposed output results from scripts are valid. The ontology file 310 is part of the ontology described above 150 , Although the ontology file is 310 in the configuration file 200 but in some embodiments shows the configuration file 300 to the place where the ontology file is 310 located.

Die Ontologie-Datei 310 kann einen oder mehrere Ontologie-Parameter aufweisen. Diese Ontologie-Parameter weisen Entitäten entweder ein Objekt, eine Eigenschaft, eine Entität, die als Objekt bezeichnet ist, oder einen Link zwischen Objekten zu. Beispielsweise definiert ein Ontologie-Parameter, dass eine Entität „Organisation” ein Objekt ist. Zusätzliche Ontologie-Parameter können definieren, dass die Entitäten „Wohlfahrt”, „Kirche” und „Akademische Organisation” Eigenschaften eines Objektes „Organisation” sind. Umgekehrt wäre die Entität „Geburtsort” keine Eigenschaft von „Organisation”; somit gäbe es keinen Ontologie-Parameter, der die Eigenschaft „Geburtsort” dem „Objekt Organisation” zuweist.The ontology file 310 may have one or more ontology parameters. These ontology parameters assign entities to either an object, a property, an entity called an object, or a link between objects. For example, an ontology parameter defines that an entity "organization" is an object. Additional ontology parameters may define that the entities "welfare,""church," and "academic organization" are properties of an object "organization." Conversely, the entity "birthplace" would not be a property of "organization"; thus, there would be no ontology parameter that assigns the Birthplace property to the Organization object.

4 zeigt ein beispielhaftes Transformationsverfahren 400 des Skripts Telefontransformer.groovy, das in dem zuvor in 2 dargestellten Projekt 200 identifiziert ist. Das Transformationsverfahren 400 beinhaltet, unter anderem, einen Link-Erbauer 410 und eine Inhaltsverarbeitungseinheits-Schnittstelle 420. Das Transformationsverfahren 400 kann mittels einer Transformationseinrichtung (beispielsweise der Transformationskomponente 120) verarbeitet werden. 4 shows an exemplary transformation method 400 the script Telefontransformer.groovy, which was written in the previously in 2 presented project 200 is identified. The transformation process 400 includes, among other things, a link builder 410 and a content processing unit interface 420 , The transformation process 400 can by means of a transformation means (for example, the transformation component 120 ) are processed.

Bei der beispielhaften Ausführungsform von 4 beinhaltet das Transformationsverfahren 400 einen Code, der einen Benutzer fragt, wie Daten (beispielsweise Anrufe) importiert werden sollen, und zwar durch Bereitstellen von zwei Link-Aufbauoptionen. Diese Optionen beinhalten entweder (i) Vereinigen mehrerer Anrufe zwischen Telefonnummer xxx-xxx-xxxx und Telefonnummer yyy-yyy-yyyy zu einem einzigen Link, oder (ii) Darstellen jedes Anrufes zwischen den beiden Nummern als einzelne Link-Ereignisse. Im Hinblick auf die Transformationseinrichtung besteht der Unterschied zwischen den beiden Optionen darin, wie die Links aufgebaut sind. In diesem Beispiel wird das Aufbauen eines Link dadurch verwaltet, dass eine Link-Erbauer-Closure (LinkBuilder 410) an das Link-Verfahren weitergegeben wird, das eine jeweilige Datenzeile verarbeitet.In the exemplary embodiment of 4 includes the transformation process 400 a code that asks a user how to import data (such as calls) through Provide two link building options. These options include either (i) combining multiple calls between phone number xxx-xxx-xxxx and phone number yyy -yyy-yyyy into a single link, or (ii) representing each call between the two numbers as single link events. With regard to the transformation facility, the difference between the two options is how the links are built. In this example, building a link is managed by using a Link Builder Closure (LinkBuilder 410 ) is passed to the link method, which processes a respective data line.

Beispielhafte Link-Erbauer-Verfahren 500 sind in 5 dargestellt und können durch eine Transformationseinrichtung (beispielsweise eine Transformationskomponente 120) verarbeitet werden. Die Link-Erbauer-Verfahren 500 beinhalten ein ErzeugeGesammelteAnrufeLinks-Verfahren 510, das Links erzeugt, welche Anruf-Ereignisse zwischen gemeinsamen Endpunkten zu einem einzigen Link zusammenfasst, und ein ErzeugeEinzelneAnrufeLinks-Verfahren 520, das Links für einzelne Anruf-Ereignisse für jeden Anruf zwischen Endpunkten erzeugt.Exemplary link builder methods 500 are in 5 represented and by a transformation means (for example, a transformation component 120 ) are processed. The link builder procedure 500 include a GenerateCollectedCallLinks method 510 that creates links that combine call events between shared endpoints into a single link, and create a single callLinks method 520 which creates links for individual call events for each call between endpoints.

Nachdem der Link-Erbauer 410 bestimmt hat, wie Anrufe gesammelt werden, kann die Inhaltsverarbeitungseinheits-Schnittstelle 420 ein Verarbeitungsverfahren aufrufen, das die Transformation eines oder mehrerer Datenelemente aus Datenquellen in Elemente eines Objektmodells durchführt. Ein beispielhaftes Verarbeitungsverfahren 600 ist in 6A und 6B dargestellt und kann durch eine Transformationseinrichtung (beispielsweise die Transformationskomponente 120) verarbeitet werden. Das Verarbeitungsverfahren 600 führt eine iterierende Bearbeitung entlang von Datenelementen (beispielsweise einer Tabellezeile) durch, erzeugt einen Erbauer und ruft VerarbeiteZeile (processRow) auf, um ein Objektmodell, das Objekte aufweist, und Links für die Zeile zu erzeugen. Wenn ein Erbauer erzeugt wird, kann ein Verarbeitungsverfahren 600 einen DSL-Erbauer 700 wirksam einsetzen, wie beim beispielhaften Erbauer von 7 dargestellt. Der DSL-Erbauer 700 kann durch eine Transformationseinrichtung, beispielsweise eine Transformationskomponente 120, verarbeitet werden.After the link builder 410 has determined how calls are collected, the content processing unit interface 420 call a processing method that performs the transformation of one or more data elements from data sources into elements of an object model. An exemplary processing method 600 is in 6A and 6B represented and by a transformation means (for example, the transformation component 120 ) are processed. The processing method 600 performs iterative processing along data elements (eg, a table line), creates a builder, and calls process rows to create an object model that has objects and links for the line. When a builder is created, a processing procedure can be used 600 a DSL builder 700 effectively, as in the exemplary builder of 7 shown. The DSL builder 700 can by a transformation device, such as a transformation component 120 , are processed.

Der DSL-Erbauer 700 ist ein beispielhafter Erbauer, der mehrere Entitäten beinhaltet: Entität1 710 und Entität2 720. Die Entität1 710 und die Entität2 720 werden unter Verwendung von Datenelementen erstellt, um Objekte in der Ontologie „Person” und „Telefonanruf” zu erzeugen, die in der Ontologie-Datei 310 definiert sind (auf diese wurde zuvor in 3 Bezug genommen). Außerdem beinhalten sowohl Entität1 710 als auch Entität2 720 ihre zugehörigen Eigenschaften 715, 725, die auch in der Ontologie-Datei 310 definiert sein sollten.The DSL builder 700 is an illustrative builder that includes multiple entities: Entity1 710 and entity2 720 , The entity1 710 and the entity2 720 are created using data elements to create objects in the ontology "person" and "phone call" that appear in the ontology file 310 are defined (this was previously in 3 Referred to). In addition, both entity1 710 as well as entity2 720 their associated properties 715 . 725 that also in the ontology file 310 should be defined.

Beispielsweise könnte der DSL-Erbauer 700 die folgenden Datenelemente für ein Aufbauen von Objekten erhalten: Entität1 710 und Entität2 720, sowie deren entsprechende Eigenschaften 715, 725: Name Adresse Telefonnummer SSN# Tom Smith 123 Grant Avenue 123-456-7890 999-88-7777 David Bruce 345 Lincoln Street 987-654-3210 111-22-3333 For example, the DSL builder could 700 get the following data items for building objects: Entity1 710 and entity2 720 , as well as their corresponding properties 715 . 725 : Surname address phone number SSN # Tom Smith 123 Grant Avenue 123-456-7890 999-88-7777 David Bruce 345 Lincoln Street 987-654-3210 111-22-3333

Der DSL-Erbauer 700 könnte, unter Verwendung des ersten Datenelementes, ein Personenobjekt erstellen, beispielsweise „Tom Smith”. Die Eigenschaften, die das Objekt „Tom Smith” weiter definieren, könnten beinhalten: Vorname-Wert „Tom”, Familienname-Wert „Smith”, Adresse-Wert „123 Grand Avenue, New York NY”, Telefonnummer-Wert „123-456-7890”, und SSN-Wert „999-88-7777. Außerdem kann die Adresse weiter als Hausnummer-Wert „123”, Straße-Wert „Grand Avenue”, Stadt-Wert „New York”, und Bundesstaat-Wert „NY” definiert werden.The DSL builder 700 could, using the first data element, create a person object, such as Tom Smith. The properties that further define the Tom Smith object could include: first name value "Tom", family name value "Smith", address value "123 Grand Avenue, New York NY", telephone number value "123-456 -7890 ", and SSN value" 999-88-7777. In addition, the address may be further defined as house number value "123", street value "Grand Avenue", city value "New York", and state value "NY".

Bei einigen Ausführungsformen kann der DSL-Erbauer 700 unter Verwendung einer dynamischen Sprache, beispielsweise Groovy, erzeugt werden. Zwar unterstützt Groovy die interne (oder eingebettete) DSL, die für den DSL-Erbauer 700 verwendet wird, jedoch können andere dynamische Sprachen, wie beispielsweise Python und Ruby, ebenfalls die eingebettete DSL unterstützen. Diese dynamischen Sprachen ermöglichen, dass ein Objektverfahren aufgerufen wird, ohne dass das Objektverfahren definiert ist, und das Objekt kann bestimmen, wie der Verfahrensaufruf gehandhabt wird. Mit anderen Worten ermöglicht der DSL-Erbauer 700 eine Kurzbezeichnung (z. B. „Name”), die zur eigentlichen Bezeichnung (z. B. „Objekt.Name”) expandiert werden kann. Falls jedoch die Kurzbezeichnung im DSL-Erbauer 700 falsch geschrieben ist (z. B. „Namme”), oder falls die Kurzbezeichnung keinem Ontologie-Parameter in der Ontologie-Datei entspricht (z. B. der im DSL-Erbauer 700 identifizierte Eigenschaftstyp in der Ontologie-Datei nicht definiert oder nicht zulässig ist), dann würde ein Validierungsfehler (auf den später noch Bezug genommen wird) während des Debugging-Stadiums auftreten.In some embodiments, the DSL builder may 700 using a dynamic language, such as Groovy. Although Groovy supports the internal (or embedded) DSL for the DSL builder 700 however, other dynamic languages, such as Python and Ruby, can also support the embedded DSL. These dynamic languages allow an object method to be invoked without the object method being defined, and the object can determine how the method call is handled. In other words, the DSL builder allows 700 a short name (eg "name") that can be expanded to the actual name (eg "object.name"). However, if the short name in the DSL builder 700 misspelled (eg "Namme"), or if the short name does not correspond to any ontology parameter in the ontology file (eg the one in the DSL constructor) 700 identified property type is not defined or allowed in the ontology file), then a validation error (which will be referred to later) would occur during the debugging stage.

8 zeigt eine beispielhafte Ausführungsform einer Softwareentwicklungsumgebung 800, die für ein Debugging eines Transformationsskripts verwendet wird. Vor dem Debugging des Transformationsskripts, beispielsweise des zuvor mit Bezug auf 2 beschriebenen Skripts Telefontransformer, sollte das Projekt 200 in die Softwareentwicklungsumgebung 800 geladen werden. Die Debugging-Konfigurationen für das Skript Telefontransformer können die Verwendung von Hilfe-Kernfunktionen erlauben, beispielsweise einer Funktion serialize() und einer Funktion createBuilder() (z. B. DSL-Erbauer 700). 8th shows an exemplary embodiment of a software development environment 800 that is used to debug a transformation script. Before debugging the transform script, for example, the one previously described with reference to 2 described scripts phone transformer, should the project 200 into the software development environment 800 getting charged. The debugging configurations for the Phone Transformer script may allow the use of help core functions, such as a serialize () function and a createBuilder () function (eg, DSL Builder 700 ).

Eine Verwendung eines DSL-Erbauers (beispielsweise eines Groovy-Erbauers) kann die Fähigkeit bieten, eine proaktive Debugging-Praxis zu bewerkstelligen. Ein proaktives Debugging liefert Validierungsmeldungen bei ihrem Auftreten während des Debugging-Prozesses, im Gegensatz zu einer Lieferung einer Abfolge von Fehlermeldungen, nachdem bereits eine Ausführung des Transformationsskripts (das bereits die meisten, wenn nicht alle, Datenelemente von identifizierten Eingangsdaten in Elemente eines Objektmodells umgewandelt hat) erfolgt ist. Durch Bereitstellen eines proaktiven Debugging kann ein Benutzer oder Entwickler dann das Problem beheben, das die Fehlermeldung verursacht hat, und erneut mit dem Debugging des Skripts beginnen.Using a DSL builder (such as a groovy builder) may provide the ability to implement a proactive debugging practice. Proactive debugging provides validation messages as they occur during the debugging process, as opposed to delivering a sequence of error messages after one execution of the transformation script (which has already converted most, if not all, of data elements of identified input data into elements of an object model ) is done. By providing proactive debugging, a user or developer can then fix the problem that caused the error message and start debugging the script again.

Ein Vorteil gegenüber früheren, eine Datenintegration großen Umfangs beinhaltenden Modellen besteht darin, dass die Ausführungsformen der vorliegenden Offenbarung vermeiden können, dass ein Parsen und Transformieren großer Datenmengen erforderlich ist, bei dem es beispielsweise vier bis sechs Stunden dauern kann, bevor der Benutzer herausfindet, ob es irgendwelche Fehlermeldungen gibt, und falls dies der Fall ist, die Typen der Fehlermeldungen herausfindet. Nach einem Beheben jeglicher Fehler müsste der Benutzer dann den Prozess eines Parsens und Transformierens der importierten Eingangsdaten erneut durchlaufen, was weitere vier bis sechs Stunden dauern kann, bevor der Benutzer herausfindet, ob während des zweiten Durchgangs irgendwelche Fehlermeldungen erfolgen. Ein derartiges herkömmliches Debugging kann mehrere Durchgänge erfordern, bevor das Debugging des Skripts erfolgreich durchgeführt ist.An advantage over previous large scale data integration models is that the embodiments of the present disclosure can avoid having to parse and transform large amounts of data, such as four to six hours before the user finds out whether there are any error messages, and if so, find out the types of error messages. After debugging any errors, the user would then have to go through the process of parsing and transforming the imported input data again, which may take another four to six hours before the user finds out if any error messages occur during the second pass. Such conventional debugging may require multiple passes before the debugging of the script is successful.

Die hier beschriebenen Ausführungsformen können die ineffiziente Vorgehensweise des herkömmlichen Debuggings von Transformationsskripts durch Bereitstellen eines proaktiven Debuggings des Transformationsskripts überwinden. Wie zuvor angegeben, werden bei einem proaktiven Debugging Fehlermeldungen bei ihrem Auftreten angezeigt. Wenn beispielsweise ein Fehler basierend auf Zeile 1 einer importierten Tabelle auftritt, dann könnte ein explizites Ergebnis, beispielsweise eine angezeigte Meldung, dem Benutzer angezeigt werden, nachdem eine Erfassung dieses Validierungsproblem bei Zeile 1 erfolgt ist. Dies ermöglicht dem Benutzer, den Fehler, der mit der ersten Zeile der importierten Tabelle in Zusammenhang steht, zu korrigieren, ohne dass er die gesamte importierte Tabelle durchgehen muss, welche hunderttausende Zeilen, wenn nicht mehr, beinhalten könnte.The embodiments described herein may overcome the inefficient approach of conventional transformation script debugging by providing proactive debugging of the transformation script. As previously stated, proactive debugging displays error messages as they occur. For example, if an error occurs based on row 1 of an imported table, then an explicit result, such as a displayed message, could be displayed to the user after detecting this validation problem at row 1. This allows the user to correct the error associated with the first row of the imported table without having to go through the entire imported table, which could contain hundreds if thousands more rows.

Bei einigen Ausführungsformen wird zum Debugging eines Skripts keine Softwareentwicklungsumgebung benötigt. Beispielsweise kann das Debugging dadurch erfolgen, dass man das Skript über eine Kommandozeile ablaufen lässt.In some embodiments, debugging a script does not require a software development environment. For example, debugging can be done by running the script from a command line.

9 ist ein Ablaufdiagramm, das ein beispielhaftes Verfahren für ein proaktives Validieren eines Transformationsskripts darstellt. Das Transformationsskript bietet eine Funktionalität, um großen Mengen von Datenelementen aus Datenquellen in Elemente eines Objektmodells zu transformieren. Zwar offenbart das Ablaufdiagramm die folgenden Schritte in einer speziellen Reihenfolge, jedoch versteht es sich, dass gegebenenfalls zumindest einige der Schritte verlegt, modifiziert oder gelöscht werden können. 9 FIG. 10 is a flow chart illustrating an example method for proactively validating a transformation script. FIG. The transformation script provides functionality to transform large amounts of data elements from data sources into elements of an object model. While the flowchart discloses the following steps in a specific order, it should be understood that at least some of the steps may be misplaced, modified or deleted as appropriate.

Bei Schritt 902 wird ein Transformationsskript mit einem oder mehreren Ontologie-Parameter assoziiert. Bei einigen Ausführungsformen kann das Assoziieren dadurch erfolgen, dass das Transformationsskript mit einer Konfigurationsdatei verknüpft wird, die eine Ontologie-Datei (z. B. die Ontologie-Datei 310) identifiziert, welche eine oder mehrere Ontologie-Parameter aufweist. Bei einigen weiteren Ausführungsformen kann das Assoziieren dadurch erfolgen, dass die Ontologie-Datei im gleichen Verzeichnis wie das Transformationsskript angeordnet wird. Beispielsweise entsprechen, wie zuvor in den beispielhaften Ausführungsformen von 2 und 3 dargestellt, die Transformationsskripts 210 von Projekt 200 der Ontologie-Datei 310, die in der Konfigurationsdatei 300 von Projekt 200 identifiziert ist. Bei einigen weiteren Ausführungsformen erfolgt das Assoziieren, wenn die Ontologie-Datei während des Debuggings des Transformationsskripts aufgerufen wird (darauf wird später in Schritt 904 Bezug genommen). Die in der Ontologie-Datei 310 identifizierten Ontologie-Parameter könnten dann gegebenenfalls auf Bedingungen in den Transformationsskripts 210 angewendet werden.At step 902 a transformation script is associated with one or more ontology parameters. In some embodiments, the association may be accomplished by associating the transformation script with a configuration file containing an ontology file (eg, the ontology file 310 ) having one or more ontology parameters. In some other embodiments, association may be accomplished by placing the ontology file in the same directory as the transformation script. For example, as previously in the exemplary embodiments of FIG 2 and 3 represented the transformation scripts 210 from project 200 the ontology file 310 that in the configuration file 300 from project 200 is identified. In some other embodiments, the association occurs when the ontology file is invoked while debugging the transformation script (this will be discussed later in step 904 Referred to). The in the ontology file 310 If necessary, identified ontology parameters might be responsive to conditions in the transformation scripts 210 be applied.

Bei Schritt 904 wird ein Debugging des Transformationsskripts eingeleitet. Das Debugging kann durch mehrere Mitteln eingeleitet werden. Beispielsweise kann das Debugging mittels einer Softwareentwicklungsumgebung eingeleitet werden, beispielsweise einer Softwareentwicklungsumgebung 800, die zuvor mit Bezug auf 8 beschrieben wurde. Das Debugging kann auch mittels einer Kommandozeile eingeleitet werden. At step 904 Debug the transformation script. Debugging can be initiated by several means. For example, debugging may be initiated by a software development environment, such as a software development environment 800 previously referring to 8th has been described. Debugging can also be initiated via a command line.

Bei Schritt 906 werden zu transformierende Eingangsdaten aus einer Datenquelle importiert. Diese Eingangsdaten können aus einer oder mehreren Datenquellen stammen. Die Eingangsdaten können strukturierte Daten sein (beispielsweise Tabellen mit Zeilen und Spalten oder CSV-Dateien, CSV = Comma-separated-Value) oder können unstrukturierte Daten sein (beispielsweise Dokumente, E-Mails, sowie PDF-, PowerPoint- und HTML-Dateien). Beispielsweise können die Eingangsdaten Tabellen beinhalten, die hunderttausende von zu transformierenden Zeilen aufweisen.At step 906 Input data to be transformed is imported from a data source. These input data can come from one or more data sources. The input data can be structured data (for example, tables with rows and columns or CSV files, CSV = comma-separated-value) or can be unstructured data (for example, documents, e-mails, as well as PDF, PowerPoint and HTML files) , For example, the input data may include tables having hundreds of thousands of lines to be transformed.

Bei Schritt 908 wird eine Bestimmung vorgenommen, ob eine Bedingung im Transformationsskript basierend auf den Ontologie-Parametern gültig ist. Das Transformationsskript kann eine oder mehrere Bedingungen beinhalten. Beispielsweise kann ein Erbauer (beispielsweise ein DSL-Erbauer 700) eine Entität definieren als ein Objekt (z. B. Entität1 710), eine Eigenschaft dieses Objektes (z. B. EntitätEigenschaft 715), und beliebige Links (z. B. Link 730). Jegliche Definitionen im Erbauer können dann mit einem oder mehreren Ontologie-Parametern in der Ontologie-Datei (z. B. der Ontologie-Datei 310) verglichen werden. Erneut Bezug nehmend auf die zuvor erwähnte Ontologie „Organisation” wird, wenn der Erbauer eine Entität „Organisation” als Objekt definiert, dann die Bedingung (die definiert, dass die Entität „Organisation” ein Objekt ist) im Erbauer als gültig bestimmt. Falls außerdem der Erbauer definiert, dass eine Entität „Wohlfahrt” eine Eigenschaft der Entität „Organisation” ist, wird die Bedingung (die definiert, dass die Entität „Organisation” ein Objekt ist) im Erbauer als gültig definiert. Falls andererseits der Erbauer definiert, dass „Geburtsort” eine Eigenschaft des Objekts „Organisation” ist, ist die Bedingung ungültig. Außerdem wird, falls der Erbauer in inkorrekter Weise ein Objekt „Verband” definiert – anstelle des korrekten Objekts „Organisation”, dann geht scheitert diese Bedingung ebenfalls, da ein Ontologie-Parameter Objekt „Verband” nicht vorhanden wäre.At step 908 a determination is made as to whether a condition is valid in the transformation script based on the ontology parameters. The transformation script may include one or more conditions. For example, a builder (for example, a DSL builder 700 ) define an entity as an object (eg entity1 710 ), a property of this object (for example entity property 715 ), and any links (eg Link 730 ). Any definitions in the builder may then be associated with one or more ontology parameters in the ontology file (eg, the ontology file 310 ). Referring again to the aforementioned ontology "organization", if the builder defines an entity "organization" as an object, then the condition (which defines that the entity "organization" is an object) is determined to be valid in the builder. In addition, if the builder defines that a "welfare" entity is a property of the "organization" entity, the condition (which defines that the entity "organization" is an object) is defined as valid in the builder. On the other hand, if the builder defines that "birthplace" is a property of the "organization" object, the condition is invalid. In addition, if the builder incorrectly defines an object "association" - instead of the correct entity "organization", then this condition also fails because an ontology parameter object "association" would not be present.

Falls bestimmt wird, dass die Bedingung nicht gültig ist, kann bei Schritt 918 eine Meldung, die angibt, dass die Bedingung nicht gültig ist, in proaktiver Weise angezeigt werden. Das heißt, die Meldung kann angezeigt werden, kurz nachdem bestimmt wurde, dass die Bedingung nicht gültig ist. Beispielsweise könnte die Meldung fast sofort, Sekunden oder Minuten nach dem Bestimmen angezeigt werden. Wie zuvor angegeben, bietet ein proaktives Debugging, das ein proaktives Anzeigen geeigneter Ungültigkeitsmeldungen bereitstellt, sobald diese anfallen, den Vorteil, dass der Benutzer beim Debugging des Code Zeit spart, da dies vermeidet, dass ein Parsen und Transformieren großer Datenmengen durchgeführt werden muss. Bei einigen Ausführungsformen wird ein explizites Ergebnis geliefert, wenn bestimmt wird, dass die Bedingung nicht gültig ist. Das explizite Ergebnis kann durch proaktives Anzeigen der Meldung im Debugger, einer E-Mail, oder einem Pop-up-Fenster erfolgen, welche anzeigt, dass die Bedingung nicht gültig ist, oder kann in beliebiger anderer Weise erfolgen, die angibt, dass die Bedingung nicht gültig ist. Außerdem kann das explizite Ergebnis zeigen, dass die Bedingung nicht gültig ist, dadurch dass es eine Fehlernachricht, ein Akronym, eine Zahl, eine Grafik und/oder eine beliebige andere Angabe anzeigt, die angibt, dass die Bedingung nicht gültig ist.If it is determined that the condition is not valid, at step 918 a message indicating that the condition is not valid can be displayed in a proactive manner. That is, the message can be displayed shortly after it is determined that the condition is not valid. For example, the message could be displayed almost immediately, seconds, or minutes after it has been determined. As previously stated, proactive debugging, which proactively displays appropriate invalidation messages as they occur, offers the advantage of saving the user time debugging the code, since this avoids the need to parse and transform large amounts of data. In some embodiments, an explicit result is provided if it is determined that the condition is not valid. The explicit result can be obtained by proactively displaying the message in the debugger, an e-mail, or a pop-up window indicating that the condition is not valid, or can be done in any other way that indicates the condition is not valid. In addition, the explicit result may indicate that the condition is not valid by indicating an error message, an acronym, a number, a graph, and / or any other indication indicating that the condition is not valid.

Falls andererseits bestimmt wird, dass die Bedingung gültig ist, durchläuft das Verfahren weiter einen Verbindungspunkt 910, um zu bestimmen (912), ob es zusätzliche Bedingungen im Transformationsskript gibt. Bei einigen Ausführungsformen kann ein explizites Ergebnis geliefert werden, das angibt, dass die Bedingung gültig ist. Das explizite Ergebnis kann eine Meldung sein, die im Debugger, einer E-Mail oder einem Pop-up-Fenster angezeigt wird und die angibt, dass die Bedingung gültig ist, und/oder kann eine beliebige andere Weise sein, die angibt, dass die Bedingung gültig ist. Wie zuvor angegeben, kann das explizite Ergebnis zeigen, dass die Bedingung gültig ist, und zwar dadurch, dass eine Validierungsnachricht, ein Akronym, eine Zahl, eine Grafik und/oder eine beliebige andere Angabe angezeigt wird, die darstellt, dass die Bedingung gültig ist. Bei einigen Ausführungsformen kann ein implizites Ergebnis geliefert werden. Das implizite Ergebnis kann beinhalten, dass das Ergebnis eines gültigen Zustandes in einer Datei, einem Speicherort, einer E-Mail gespeichert wird, und/oder dass nicht anzeigt wird, dass die Bedingung gültig ist. Falls die Ergebnisse aufgezeichnet werden, können die aufgezeichneten Ergebnisse eine Validierungsnachricht, ein Akronym, eine Zahl, eine Grafik und/oder eine beliebige andere Angabe darstellen, die zeigt, dass die Bedingung gültig ist. Falls es keine zusätzlichen Bedingungen im Transformationsskript gibt, dann endet das Debugging des Skripts (914). Bei einigen Ausführungsformen kann ein explizites Ergebnis geliefert werden, das angibt, dass das Transformationsskript gültig ist.On the other hand, if it is determined that the condition is valid, the method continues to traverse a connection point 910 , to determine ( 912 ), if there are additional conditions in the transformation script. In some embodiments, an explicit result may be provided indicating that the condition is valid. The explicit result may be a message that appears in the debugger, an e-mail, or a pop-up window indicating that the condition is valid, and / or may be any other way that indicates that the condition is valid Condition is valid. As indicated previously, the explicit result may indicate that the condition is valid by displaying a validation message, an acronym, a number, a graphic, and / or any other indication that the condition is valid , In some embodiments, an implied result may be provided. The implied result may include storing the result of a valid state in a file, a location, an e-mail, and / or not indicating that the condition is valid. If the results are recorded, the recorded results may be a validation message, an acronym, a number, a graph, and / or any other indication indicating that the condition is valid. If there are no additional conditions in the transformation script, the debugging of the script ends ( 914 ). In some embodiments, an explicit result may be provided indicating that the transformation script is valid.

Andererseits wird, falls es zusätzliche Bedingungen im Transformationsskript gibt, bei Schritt 916 eine Bestimmung vorgenommen, ob eine zusätzliche Bedingung im Transformationsskript gültig ist, und zwar basierend auf den Ontologie-Parametern. Der Bestimmungsschritt 916 ist ähnlich zum Bestimmungsschritt 908. Falls bestimmt wird, dass die Bedingung ungültig ist, kann ein explizites Ergebnis geliefert werden, beispielsweise bei dieser beispielhaften Ausführungsform eine Meldung, die angibt, dass die Bedingung in proaktiver Weise angezeigt wird. Wie zuvor angegeben, kann das explizite Ergebnis zeigen, dass die Bedingung nicht gültig ist, und zwar dadurch, dass eine Fehlernachricht, ein Akronym, eine Zahl, eine Grafik und/oder eine beliebige andere Angabe angezeigt wird, die darstellt, dass die Bedingung nicht gültig ist.On the other hand, if there are additional conditions in the transformation script, at step 916 a determination is made as to whether an additional condition in the transformation script is valid, namely based on the ontology parameters. The determination step 916 is similar to the determination step 908 , If it is determined that the condition is invalid, an explicit result may be provided, for example, in this example embodiment, a message indicating that the condition is being displayed in a proactive manner. As stated previously, the explicit result may indicate that the condition is not valid by displaying an error message, an acronym, a number, a graphic, and / or any other indication that represents that condition is not is valid.

Andererseits durchläuft, falls die Bedingung als gültig bestimmt wird, das Verfahren den Verbindungspunkt 910 zum Bestimmungsschritt 912. Bei einigen Ausführungsformen kann ein explizites Ergebnis geliefert werden, das angibt, dass die Bedingung gültig ist. Das explizite Ergebnis kann eine Meldung sein, die im Debugger, einer E-Mail oder einem Pop-up-Fenster angezeigt wird und die angibt, dass die Bedingung gültig ist, und/oder kann eine beliebige andere Weise sein, die angibt, dass die Bedingung gültig ist. Das explizite Ergebnis kann zeigen, dass die Bedingung gültig ist, und zwar dadurch, dass eine Validierungsnachricht, ein Akronym, eine Zahl, eine Grafik und/oder eine beliebige andere Angabe angezeigt wird, die darstellt, dass die Bedingung gültig ist. Außerdem kann bei einigen Ausführungsformen ein implizites Ergebnis geliefert werden. Das implizite Ergebnis kann beinhalten, dass das Ergebnis eines gültigen Zustandes in einer Datei, einem Speicherort, einer E-Mail gespeichert wird, und/oder dass nicht anzeigt wird, dass die Bedingung gültig ist. Falls die Ergebnisse aufgezeichnet werden, können die aufgezeichneten Ergebnisse eine Validierungsnachricht, ein Akronym, eine Zahl, eine Grafik und/oder eine beliebige andere Angabe darstellen, die zeigt, dass die Bedingung gültig ist.On the other hand, if the condition is determined to be valid, the method goes through the connection point 910 to the determination step 912 , In some embodiments, an explicit result may be provided indicating that the condition is valid. The explicit result may be a message that appears in the debugger, an e-mail, or a pop-up window indicating that the condition is valid, and / or may be any other way that indicates that the condition is valid Condition is valid. The explicit result may indicate that the condition is valid by displaying a validation message, an acronym, a number, a graphic, and / or any other indication that the condition is valid. Additionally, in some embodiments, an implied result may be provided. The implied result may include storing the result of a valid state in a file, a location, an e-mail, and / or not indicating that the condition is valid. If the results are recorded, the recorded results may be a validation message, an acronym, a number, a graph, and / or any other indication indicating that the condition is valid.

Gemäß einigen Ausführungsbeispielen werden die hier beschriebenen Operationen, Verfahren, und/oder Komponenten durch eine oder mehrere Spezialberechnungsvorrichtungen implementiert. Die Spezialberechnungsvorrichtungen können festverdrahtet sein, um die hier beschriebenen Operationen, Verfahren, und/oder Komponenten auszuführen, oder sie können digitale elektronische Vorrichtungen wie beispielsweise eine oder mehrere ASICs (anwendungsspezifische integrierte Schaltungen) oder FPGAs (Feld-programmierbare Gatter-Anordnungen) beinhalten, die persistent programmiert sind, um die hier beschriebenen Operationen, Verfahren, und/oder Komponenten auszuführen, oder sie können einen oder mehrere Universal-Hardware-Prozessoren beinhalten, die programmiert sind, um derartige Merkmale der vorliegenden Offenbarung gemäß Programmanweisungen in Firmware, einem Arbeitsspeicher, einer anderen Speichereinrichtung oder einer Kombination von diesen durchzuführen. In derartigen Spezialberechnungsvorrichtungen können auch kundenspezifische festverdrahtete Logikschaltungen, ASICs, oder FPGAs mit kundenspezifischer Programmierung kombiniert sein, um die Verfahren und weitere Merkmale der vorliegenden Offenbarung zu bewerkstelligen. Die Spezialberechnungsvorrichtungen können Desktop-Computersysteme, tragbare Computersysteme, Handheld-Geräte, Netzwerkgeräte oder ein beliebiges anderes Gerät sein, das festverdrahtete Logik und/oder Programmlogik beinhaltet, um die Verfahren und weitere Merkmale der vorliegenden Offenbarung zu implementieren.In accordance with some embodiments, the operations, methods, and / or components described herein are implemented by one or more special purpose computing devices. The special purpose computing devices may be hardwired to perform the operations, methods, and / or components described herein, or may include digital electronic devices such as one or more ASICs (Application Specific Integrated Circuits) or FPGAs (Field Programmable Gate Arrays) are persistently programmed to perform the operations, methods, and / or components described herein, or may include one or more general purpose hardware processors programmed to implement such features of the present disclosure in accordance with program instructions in firmware, memory, or other another storage device or a combination of these. Customized hardwired logic circuits, ASICs, or custom programming FPGAs may also be combined in such special purpose computing devices to accomplish the methods and other features of the present disclosure. The special purpose computing devices may be desktop computer systems, portable computer systems, handheld devices, network devices, or any other device that includes hardwired logic and / or program logic to implement the methods and other features of the present disclosure.

Die einen oder mehreren Berechnungsvorrichtungen können generell durch Betriebssystemsoftware wie beispielsweise iOS, Android, Blackberry, Chrome OS, Windows XP, Windows Vista, Windows 7, Windows 8, Windows Server, Windows CE, Unix, Linux, SunOS, Solaris, VxWorks oder andere kompatible Betriebssysteme gesteuert und koordiniert werden. Bei weiteren Ausführungsbeispielen kann die Berechnungsvorrichtung durch ein proprietäres Betriebssystem gesteuert werden. Herkömmliche Betriebssysteme können, unter anderem, auszuführende Berechnungsprozesse sowie deren zeitlichen Ablauf steuern, eine Arbeitsspeicherverwaltung durchführen, ein Dateisystem, eine Netzwerkfunktionalität, Ein-/Ausgabedienste bereitstellen, und/oder eine Benutzerschnittstellenfunktionalität wie beispielsweise eine grafische Benutzerschnittstelle („GUI”) bereitstellen.The one or more computing devices may generally be supported by operating system software such as iOS, Android, Blackberry, Chrome OS, Windows XP, Windows Vista, Windows 7, Windows 8, Windows Server, Windows CE, Unix, Linux, SunOS, Solaris, VxWorks, or others Operating systems are controlled and coordinated. In further embodiments, the computing device may be controlled by a proprietary operating system. Conventional operating systems may, among other things, control computing processes that are to be performed and their timing, perform memory management, provide a file system, network functionality, input / output services, and / or provide user interface functionality such as a graphical user interface ("GUI").

Beispielsweise ist 10 ein Blockdiagramm, das ein beispielhaftes Computersystem 1000 darstellt. Das Computersystem 1000 beinhaltet einen Bus 1002 oder einen anderen Kommunikationsmechanismus für ein Kommunizieren von Information, und einen oder mehrere Hardwareprozessoren 1004, die mit dem Bus 1002 verbunden sind, um Information zu verarbeiten. Einer oder mehrere Hardwareprozessoren 1004 können beispielsweise einer oder mehrere Universal-Mikroprozessoren sein.For example 10 a block diagram illustrating an exemplary computer system 1000 represents. The computer system 1000 includes a bus 1002 or another communication mechanism for communicating information, and one or more hardware processors 1004 by bus 1002 connected to process information. One or more hardware processors 1004 For example, it may be one or more general-purpose microprocessors.

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

Das Computersystem 1000 beinhaltet weiter ein ROM (Nur-Lese-Speicher) 1008 oder eine andere statische Speichervorrichtung, die mit dem Bus 1002 verbunden ist, um statische Information und Anweisungen für einen oder mehrere Prozessoren 1004 zu speichern. Eine Speichervorrichtung 1010, wie beispielsweise eine Magnetplatte, eine optische Platte oder ein USB-Stick (Flash-Drive) etc., ist vorgesehen und mit dem Bus 1002 verbunden, um Information und Anweisungen zu speichern.The computer system 1000 further includes a ROM (read-only memory) 1008 or another static storage device connected to the bus 1002 connected to static information and instructions for one or more processors 1004 save. A storage device 1010 , such as a magnetic disk, an optical disk or a USB stick (flash drive), etc., is provided and to the bus 1002 connected to store information and instructions.

Das Computersystem 1000 kann über den Bus 1002 mit einer Anzeige 1012 verbunden sein, beispielsweise einer Kathodenstrahlröhre (CRT), um einem Benutzer eines Computers Information anzuzeigen. Eine Eingabevorrichtung 1014, die alphanumerische und weitere Tasten beinhaltet, ist mit dem Bus 1002 verbunden, um Information und ausgewählte Befehle an einen oder mehrere Prozessoren 1004 zu übermitteln. Ein weiterer Typ von Benutzereingabevorrichtung ist eine Cursor-Steuerung 1016, wie beispielsweise eine Maus, ein Trackball oder Cursor-Richtungstasten, um einem oder mehreren Prozessoren 1004 Richtungsinformation und ausgewählte Befehle mitzuteilen und eine Cursorbewegung auf der Anzeigeeinrichtung 1012 zu steuern. Diese Eingabevorrichtung hat typischerweise zwei Freiheitsgrade in zwei Achsen, einer ersten Achse (beispielsweise x) und einer zweiten Achse (beispielsweise y), was der Vorrichtung ermöglicht, Positionen in einer Ebene zu bezeichnen. Bei einigen Ausführungsbeispielen kann die gleiche Richtungsinformation und Befehlsauswahl wie bei einer Cursorsteuerung mittels Empfangen von Berührungen auf einem Sensorbildschirm (Touch Screen) ohne einen Cursor implementiert werden.The computer system 1000 can over the bus 1002 with an ad 1012 connected to, for example, a cathode ray tube (CRT) to display information to a user of a computer. An input device 1014 , which includes alphanumeric and other keys, is by bus 1002 connected to information and selected commands to one or more processors 1004 to convey. Another type of user input device is cursor control 1016 , such as a mouse, trackball or cursor direction keys, around one or more processors 1004 Direction information and selected commands and a cursor movement on the display device 1012 to control. This input device typically has two degrees of freedom in two axes, a first axis (eg x) and a second axis (eg y), which allows the device to designate positions in a plane. In some embodiments, the same direction information and command selection as in cursor control may be implemented by receiving touch screen touches without a cursor.

Das Computersystem 1000 kann ein Benutzerschnittstellenmodul beinhalten, um eine GUI zu implementieren, die in einem Massenspeichergerät als ausführbare Softwarecodes gespeichert werden kann, welche durch die eine oder die mehreren Berechnungsvorrichtungen ausgeführt werden. Diese und weitere Module 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 computer system 1000 may include a user interface module to implement a GUI that may be stored in a mass storage device as executable software code executed by the one or more computing devices. These and other modules 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 „Modul” wie hier verwendet auf Logik, die als Hardware oder Firmware ausgeführt ist, oder auf eine Sammlung von Softwareanweisungen, die möglicherweise Eintritts- und Austrittspunkte aufweisen und in einer Programmiersprache wie beispielsweise Java, Lua, C oder C++ geschrieben sind. Ein Softwaremodul 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 BASIC, Perl oder Python geschrieben werden. Es versteht sich, dass Softwaremodule von anderen Modulen oder von sich selbst aufrufbar sein können, und/oder sie reagierend auf erfasste Ereignisse oder Interrupts aufgerufen werden können. Softwaremodule, die für eine Ausführung auf Berechnungsvorrichtungen 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 kann 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, auf einer Speichereinrichtung der ausführenden Berechnungsvorrichtung gespeichert sein, für eine Ausführung durch die Berechnungsvorrichtung. Softwareanweisungen können in Firmware, beispielsweise ein EPROM, eingebettet sein. Es versteht sich weiter, dass Hardwaremodule verbundene Logikeinheiten beinhalten können, beispielsweise Gattern (Gates) und Flipflops, und/oder programmierbare Einheiten beinhalten können, beispielsweise programmierbare Gatter-Anordnungen (Gate-Arrays) oder Prozessoren. Die Module oder die Funktionalität der Berechnungsvorrichtung, die hier beschrieben sind, sind vorzugsweise als Softwaremodule implementiert, können jedoch in Form von Hardware oder Firmware ausgeführt sein. Generell beziehen sich die hier beschriebenen Module auf logische Module, die mit anderen Modulen kombiniert oder in Untermodule unterteilt sein können, ungeachtet ihrer physischen Organisation oder ihres Speicherortes.Generally, as used herein, the word "module" refers to logic executed as hardware or firmware, or to a collection of software instructions that may have entry and exit points and written in a programming language such as Java, Lua, C, or C ++ are. A software module can be compiled and linked into an executable program, built into a dynamic program library (Dynamic Link Library), or written in an interpreted programming language such as BASIC, Perl, or Python. It will be appreciated that software modules may be invocable from other modules or from themselves, and / or they may be invoked responsive to sensed events or interrupts. Software modules configured for execution on computing devices 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 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, partially or completely, on a storage device 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 include programmable devices, such as programmable gate arrays or processors. The modules or functionality of the computing device described herein are preferably implemented as software modules, but may be embodied in the form of hardware or firmware. Generally, the modules described herein refer to logical modules that may be combined with other modules or sub-modules, regardless of their physical organization or location.

Im Computersystem 1000 können die hier beschriebenen Verfahren und weitere Merkmale unter Verwendung von kundenspezifischen festverdrahteten Logikschaltungen, einem oder mehreren ASICs oder FPGAs, Firmware und/oder Programmlogik implementiert sein, die in Kombination mit dem Computersystem bewirken oder programmieren, dass das Computersystem 1000 eine Spezialmaschine ist. Gemäß einigen Ausführungsbeispielen werden die hier beschriebenen Verfahren und weitere Merkmale durch das Computersystem 1000 reagierend darauf durchgeführt, dass einer oder mehrere Prozessoren 1004 eine oder mehrere Sequenzen von einer oder mehreren im Hauptspeicher 1006 enthaltenen Anweisungen ausführt. Derartige Anweisungen können in den Hauptspeicher 1006 aus einem anderen Speichermedium, beispielsweise der Speichervorrichtung 1010, eingelesen werden. Eine Ausführung der im Hauptspeicher 1006 enthaltenen Anweisungssequenzen veranlasst einen oder mehrere Prozessoren 1004 die hier beschriebenen Prozessschritte auszuführen. Bei alternativen Ausführungsbeispielen können festverdrahtete Schaltkreise verwendet werden, anstelle von Software-Anweisungen oder in Kombination mit diesen.In the computer system 1000 For example, the methods and other features described herein may be implemented using custom hardwired logic circuits, one or more ASICs or FPGAs, firmware, and / or program logic that, in combination with the computer system, effect or program the computer system 1000 a special machine is. According to some embodiments, the methods described herein and other features are provided by the computer system 1000 reacting to that carried out one or more processors 1004 one or more sequences of one or more in main memory 1006 executes contained instructions. Such instructions may be in main memory 1006 from another storage medium, for example the storage device 1010 , are read. An execution of the main memory 1006 instruction sequences involved causes one or more processors 1004 to execute the process steps described here. In alternative embodiments, hardwired circuitry may be used instead of or in combination with software instructions.

Der Begriff „nicht-transitorische Medien”, wie hier verwendet, bezieht 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. Nicht-flüchtige Medien schließen beispielsweise optische oder magnetische Platten ein, beispielsweise die Speichervorrichtung 1010. Flüchtige Medien schließen einen dynamischen Speicher wie beispielsweise den Hauptspeicher 1006 ein. Übliche Formen nicht-transitorischer Medien beinhalten beispielsweise eine Diskette, eine flexible Platte, eine Festplatte, ein Halbleiterlaufwerk, ein Magnetband oder ein beliebiges anderes magnetisches Datenspeichermedium, eine CD-ROM, ein beliebiges anderes optisches Datenspeichermedium, ein beliebiges physisches Medium mit Lochmustern, ein RAM, ein PROM und ein EPROM, ein Flash-EPROM, ein NVRAM, und einen beliebigen anderen Speicherchip oder -kassette, sowie über Netzwerk verbundene Versionen von diesen.The term "non-transitory media" 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 1010 , Volatile media include dynamic memory such as main memory 1006 one. Conventional forms of non-transitory media include, for example, a floppy disk, a flexible disk, a hard disk, a semiconductor disk, a magnetic tape, or any other magnetic data storage medium, a CD-ROM, any other optical data storage medium, any hole-patterned physical media, a RAM , 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 1002 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 1002 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 Prozessor 1004 auszuführen sind. Beispielsweise können die Anweisungen anfänglich auf einer Magnetplatte oder einem Halbleiterlaufwerk (Solid-State-Drive) eines entfernt befindlichen Computers gespeichert sein. Der ferne Computer kann die Anweisungen in seinen dynamischen Speicher laden und die Anweisungen über eine Telefonleitung unter Verwendung eines Modem senden. Ein beim Computersystem 1000 befindliches Modem kann die Daten über die Telefonleitung empfangen und einen Infrarot-Sender verwenden, um die Daten in ein Infrarotsignal umzuwandeln. Ein Infrarot-Detektor kann die im Infrarot-Signal beförderten Daten empfangen, und geeignete Schaltungen können die Daten auf den Bus 1002 legen. Der Bus 1002 befördert die Daten zum Hauptspeicher 1006, aus dem einer oder mehrere Prozessoren 1004 die Anweisungen abrufen und ausführen. Die vom Hauptspeicher 1006 empfangenen Anweisungen können optional in der Speichervorrichtung 1010 gespeichert werden, entweder vor oder nach einem Ausführen durch Prozessor 1004.Various forms of media may be involved in the execution of one or more sequences of one or more instructions issued by the processor 1004 are to be executed. For example, the instructions may initially be stored on a magnetic disk or a solid state drive of a remote computer. The remote computer can load the instructions into its dynamic memory and send the instructions over a telephone line using a modem. One at the computer system 1000 The modem in question may receive the data over the telephone line and use an infrared transmitter to convert the data into an infrared signal. An infrared detector can receive the data carried in the infra-red signal and appropriate circuitry can transfer the data to the bus 1002 lay. The bus 1002 conveys the data to the main memory 1006 from which one or more processors 1004 retrieve and execute the instructions. The main memory 1006 Instructions received may optionally be in the storage device 1010 stored either before or after execution by the processor 1004 ,

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

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

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

Der empfangene Code kann durch einen oder mehrere Prozessoren 1004 ausgeführt werden, und zwar unverändert wie empfangen, und/oder er kann in der Speichervorrichtung 1010 oder einem anderen nicht-flüchtigen Speicher für eine spätere Ausführung gespeichert werden.The received code can be through one or more processors 1004 be executed, as it is received, and / or it may be in the storage device 1010 or other non-volatile memory for later execution.

In der vorhergehenden Beschreibung wurden Ausführungsbeispiele der Erfindung mit Bezug auf zahlreiche spezifische Details beschrieben, die von Implementierung zu Implementierung variieren können. Gewisse Anpassungen und Modifikationen der beschriebenen Ausführungsbeispiele können vorgenommen werden. Weitere Ausführungsbeispiele gehen für Fachleute aus einer Betrachtung der Beschreibung und der Anwendung der hier offenbarten Ausführungsbeispiele klar hervor. Die Beschreibung und die Beispiele verstehen sich als lediglich beispielhaft, wobei der tatsächliche Schutzumfang und Geist der Erfindung durch die folgenden Ansprüche gegeben ist. Die in den Zeichnungen dargestellte Abfolge der Schritte versteht sich als lediglich beispielhaft und soll nicht auf irgendeine spezielle Abfolge von Schritten eingeschränkt sein. Diese Schritte können daher, wie für Fachleute klar ist, je nach Erfordernis in einer unterschiedlichen oder modifizierten Reihenfolge ausgeführt werden.In the foregoing description, embodiments of the invention have been described with reference to numerous specific details that may vary from implementation to implementation. Certain adjustments and modifications of the described embodiments may be made. Other embodiments will become apparent to those skilled in the art from consideration of the specification and application of the embodiments disclosed herein. The description and examples are intended to be exemplary only, with the true scope and spirit of the invention being given by the following claims. The sequence of steps shown in the drawings is merely exemplary in nature and is not intended to be limited to any particular sequence of steps. Therefore, as those skilled in the art will appreciate, these steps may be performed in a different or modified order as required.

ZITATE ENTHALTEN IN DER BESCHREIBUNG QUOTES INCLUDE IN THE DESCRIPTION

Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list of the documents listed by the applicant has been generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.

Zitierte PatentliteraturCited patent literature

  • US 7962495 [0022] US 7962495 [0022]

Claims (11)

Verfahren zum Liefern einer proaktiven Validierung eines Transformationsskripts, wobei das Verfahren durch einen oder mehrere Prozessoren durchgeführt wird und umfasst: Assoziieren des Transformationsskripts mit Ontologie-Parametern; Einleiten einer Debugging-Operation des Transformationsskripts, das mindestens eine Bedingung aufweist; Importieren, aus einer Datenquelle, mindestens eines Datenelementes zur Transformation; Bestimmen, als Teil der Debugging-Operation, ob die mindestens eine Bedingung, die das mindestens eine Datenelement verwendet, gültig ist, und zwar basierend auf den Ontologie-Parametern; und Liefern einer Angabe eines der Bestimmung zugehörigen Ergebnisses, wobei das Ergebnis mindestens eines von einem expliziten Ergebnis oder einem impliziten Ergebnis ist.A method of providing proactive validation of a transformation script, the method being performed by one or more processors and comprising: Associating the transformation script with ontology parameters; Initiating a debugging operation of the transformation script having at least one condition; Importing, from a data source, at least one data element for transformation; Determining, as part of the debugging operation, whether the at least one condition using the at least one data item is valid based on the ontology parameters; and Providing an indication of a result associated with the determination, the result being at least one of an explicit result or an implicit result. Verfahren nach Anspruch 1, wobei das Liefern der Angabe des der Bestimmung zugehörigen Ergebnisses umfasst: falls bestimmt wird, dass die mindestens eine Bedingung nicht gültig ist, Liefern der Angabe des Ergebnisses an eine Anzeigevorrichtung, um ein explizites Ergebnis anzuzeigen, das angibt, dass die mindestens eine Bedingung nicht gültig ist.The method of claim 1, wherein providing the indication of the result associated with the determination comprises: if it is determined that the at least one condition is not valid, providing the indication of the result to a display device to indicate an explicit result indicating that the at least one condition is not valid. Verfahren nach Anspruch 1 oder Anspruch 2, wobei das Angeben des der Bestimmung zugehörigen Ergebnisses umfasst: falls bestimmt wird, dass die mindestens eine Bedingung gültig ist, und das Transformationsskript mindestens eine nachfolgende Bedingung beinhaltet, bei der ein Debugging durchzuführen ist, Liefern eines impliziten Ergebnisses, das angibt, dass die mindestens eine Bedingung gültig ist; und falls bestimmt wird, dass die mindestens eine Bedingung gültig ist, und falls das Transformationsskript keine nachfolgenden Bedingungen beinhaltet, bei denen ein Debugging durchzuführen ist, Anzeigen eines expliziten Ergebnisses auf der Anzeigevorrichtung, das angibt, dass das Transformationsskript validiert wurde.The method of claim 1 or claim 2, wherein indicating the result associated with the determination comprises: if it is determined that the at least one condition is valid, and the transformation script includes at least one subsequent condition where debugging is to be performed, providing an implicit result indicating that the at least one condition is valid; and if it is determined that the at least one condition is valid, and if the transformation script does not include subsequent conditions to debug, displaying an explicit result on the display device indicating that the transformation script has been validated. Verfahren nach einem der Ansprüche 1 bis 3, wobei das Liefern der Angabe des Ergebnisses an die Anzeigevorrichtung für ein Anzeigen umfasst: Anzeigen des expliziten Ergebnisses, wenn bestimmt wird, dass die mindestens eine Bedingung nicht gültig ist.The method of one of claims 1 to 3, wherein providing the indication of the result to the display device for display comprises: Display the explicit result if it is determined that the at least one condition is not valid. Verfahren nach einem der Ansprüche 1 bis 4, wobei die Ontologie-Parameter Parameter beinhalten, die bei einer Entität die Zuweisung vornehmen, dass diese ein Objekt oder eine Eigenschaft eines Objektes ist; und wobei weiter das Transformationsskript einen Erbauer verwendet, der bei einer Entität definiert, dass diese ein Objekt oder eine Eigenschaft eines Objektes ist.Method according to one of claims 1 to 4, wherein the ontology parameters include parameters that assign to an entity that it is an object or a property of an object; and further, the transformation script uses a builder that defines an entity as being an object or a property of an object. Verfahren nach Anspruch 5, wobei der Erbauer eine domänenspezifische Sprache verwendet.The method of claim 5, wherein the builder uses a domain-specific language. Verfahren nach Anspruch 5 oder Anspruch 6, wobei das Bestimmen umfasst: Bestimmen, dass die mindestens eine Bedingung nicht gültig ist, falls die Zuweisung der Entität in den Ontologie-Parametern inkonsistent mit der Definition der Entität im Erbauer ist.The method of claim 5 or claim 6, wherein the determining comprises: Determining that the at least one condition is not valid if the assignment of the entity in the ontology parameters is inconsistent with the definition of the entity in the builder. Verfahren nach einem der Ansprüche 1 bis 7, wobei die Ontologie-Parameter einen Link zwischen zwei Entitäten zuweisen; und wobei weiter das Transformationsskript einen Erbauer verwendet, der einen Link zwischen zwei Entitäten erzeugt.Method according to one of claims 1 to 7, wherein the ontology parameters assign a link between two entities; and further, the transformation script uses a builder that creates a link between two entities. Verfahren nach Anspruch 8, wobei das Bestimmen umfasst: Bestimmen, dass die mindestens eine Bedingung nicht gültig ist, falls der zugewiesene Link in den Ontologie-Parametern inkonsistent mit dem erzeugten Link im Erbauer ist.The method of claim 8, wherein the determining comprises: Determining that the at least one condition is not valid if the assigned link in the ontology parameters is inconsistent with the generated link in the builder. Gerät zum Liefern einer proaktiven Validierung eines Transformationsskripts, wobei das Gerät aufweist: eine Speichervorrichtung, die einen Satz von Anweisungen speichert; einen oder mehrere Prozessoren, die den Satz von Anweisungen ausführen, um den einen oder die mehreren Prozessoren so zu konfigurieren, dass sie Operationen durchführen, welche die Operationen nach einem der Ansprüche 1 bis 9 beinhalten.Apparatus for providing proactive validation of a transformation script, the apparatus comprising: a storage device that stores a set of instructions; one or more processors executing the set of instructions to configure the one or more processors to perform operations involving the operations of any one of claims 1 to 9. Computerlesbares Medium, das einen Satz von Anweisungen speichert, die durch mindestens einen Prozessor ausgeführt werden können, um den mindestens einen Prozessor zu veranlassen, Operationen durchzuführen, welche die Operationen nach einem der Ansprüche 1 bis 9 beinhalten. A computer readable medium storing a set of instructions that may be executed by at least one processor to cause the at least one processor to perform operations including the operations of any one of claims 1 to 9.
DE102014204840.0A 2013-03-15 2014-03-14 Improved data integration tool Withdrawn DE102014204840A1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201361801222P 2013-03-15 2013-03-15
US61/801,222 2013-03-15
US14/044,800 2013-10-02
US14/044,800 US8930897B2 (en) 2013-03-15 2013-10-02 Data integration tool

Publications (1)

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

Family

ID=50634699

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102014204840.0A Withdrawn DE102014204840A1 (en) 2013-03-15 2014-03-14 Improved data integration tool

Country Status (2)

Country Link
DE (1) DE102014204840A1 (en)
GB (1) GB2513007A (en)

Cited By (27)

* 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
US9201920B2 (en) 2006-11-20 2015-12-01 Palantir Technologies, Inc. Creating data in a data store using a dynamic ontology
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
US9495353B2 (en) 2013-03-15 2016-11-15 Palantir Technologies Inc. Method and system for generating a parser and parsing complex data
US9576015B1 (en) 2015-09-09 2017-02-21 Palantir Technologies, Inc. Domain-specific language for dataset transformations
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
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
US9984152B2 (en) 2013-03-15 2018-05-29 Palantir Technologies Inc. Data integration tool
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
US10102229B2 (en) 2016-11-09 2018-10-16 Palantir Technologies Inc. Validating data integrations using a secondary data store
US10248722B2 (en) 2016-02-22 2019-04-02 Palantir Technologies Inc. Multi-language support for dynamic ontology
US10311081B2 (en) 2012-11-05 2019-06-04 Palantir Technologies Inc. System and method for sharing investigation results
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
CN111368512A (en) * 2020-03-04 2020-07-03 北京软通智慧城市科技有限公司 Service data conversion method, device, equipment and storage medium
US10754822B1 (en) 2018-04-18 2020-08-25 Palantir Technologies Inc. Systems and methods for ontology migration
US10803106B1 (en) 2015-02-24 2020-10-13 Palantir Technologies Inc. System with methodology for dynamic modular ontology
US10853378B1 (en) 2015-08-25 2020-12-01 Palantir Technologies Inc. Electronic note management via a connected entity graph
US10956406B2 (en) 2017-06-12 2021-03-23 Palantir Technologies Inc. Propagated deletion of database records and derived data
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
USRE48589E1 (en) 2010-07-15 2021-06-08 Palantir Technologies Inc. Sharing and deconflicting data changes in a multimaster database system
US11461355B1 (en) 2018-05-15 2022-10-04 Palantir Technologies Inc. Ontological mapping of data

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112164424B (en) * 2020-08-03 2024-04-09 南京派森诺基因科技有限公司 Group evolution analysis method based on no-reference genome

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7962495B2 (en) 2006-11-20 2011-06-14 Palantir Technologies, Inc. Creating data in a data store using a dynamic ontology

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7962495B2 (en) 2006-11-20 2011-06-14 Palantir Technologies, Inc. Creating data in a data store using a dynamic ontology

Cited By (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9589014B2 (en) 2006-11-20 2017-03-07 Palantir Technologies, Inc. Creating data in a data store using a dynamic ontology
US9201920B2 (en) 2006-11-20 2015-12-01 Palantir Technologies, Inc. Creating data in a data store using a dynamic ontology
US10872067B2 (en) 2006-11-20 2020-12-22 Palantir Technologies, Inc. Creating data in a data store using a dynamic ontology
USRE48589E1 (en) 2010-07-15 2021-06-08 Palantir Technologies Inc. Sharing and deconflicting data changes in a multimaster database system
US9081975B2 (en) 2012-10-22 2015-07-14 Palantir Technologies, Inc. Sharing information between nexuses that use different classification schemes for information access control
US9836523B2 (en) 2012-10-22 2017-12-05 Palantir Technologies Inc. Sharing information between nexuses that use different classification schemes for information access control
US10891312B2 (en) 2012-10-22 2021-01-12 Palantir Technologies Inc. Sharing information between nexuses that use different classification schemes for information access control
US10846300B2 (en) 2012-11-05 2020-11-24 Palantir Technologies Inc. System and method for sharing investigation results
US10311081B2 (en) 2012-11-05 2019-06-04 Palantir Technologies Inc. System and method for sharing investigation results
US10809888B2 (en) 2013-03-15 2020-10-20 Palantir Technologies, Inc. Systems and methods for providing a tagging interface for external content
US9740369B2 (en) 2013-03-15 2017-08-22 Palantir Technologies Inc. Systems and methods for providing a tagging interface for external content
US9898167B2 (en) 2013-03-15 2018-02-20 Palantir Technologies Inc. Systems and methods for providing a tagging interface for external content
US10120857B2 (en) 2013-03-15 2018-11-06 Palantir Technologies Inc. Method and system for generating a parser and parsing complex data
US9495353B2 (en) 2013-03-15 2016-11-15 Palantir Technologies Inc. Method and system for generating a parser and parsing complex data
US9984152B2 (en) 2013-03-15 2018-05-29 Palantir Technologies Inc. Data integration tool
US10699071B2 (en) 2013-08-08 2020-06-30 Palantir Technologies Inc. Systems and methods for template based custom document generation
US9223773B2 (en) 2013-08-08 2015-12-29 Palatir Technologies Inc. Template system for custom document generation
US9946738B2 (en) 2014-11-05 2018-04-17 Palantir Technologies, Inc. Universal data pipeline
US10853338B2 (en) 2014-11-05 2020-12-01 Palantir Technologies Inc. Universal data pipeline
US9483506B2 (en) 2014-11-05 2016-11-01 Palantir Technologies, Inc. History preserving data pipeline
US9229952B1 (en) 2014-11-05 2016-01-05 Palantir Technologies, Inc. History preserving data pipeline system and method
US10191926B2 (en) 2014-11-05 2019-01-29 Palantir Technologies, Inc. Universal data pipeline
US10803106B1 (en) 2015-02-24 2020-10-13 Palantir Technologies Inc. System with methodology for dynamic modular ontology
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
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
US9996595B2 (en) 2015-08-03 2018-06-12 Palantir Technologies, Inc. Providing full data provenance visualization for versioned datasets
US10853378B1 (en) 2015-08-25 2020-12-01 Palantir Technologies Inc. Electronic note management via a connected entity graph
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
US10248722B2 (en) 2016-02-22 2019-04-02 Palantir Technologies Inc. Multi-language support for dynamic ontology
US10909159B2 (en) 2016-02-22 2021-02-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
US11106638B2 (en) 2016-06-13 2021-08-31 Palantir Technologies Inc. Data revision control in large-scale data analytic systems
US10007674B2 (en) 2016-06-13 2018-06-26 Palantir Technologies Inc. Data revision control in large-scale data analytic systems
US10102229B2 (en) 2016-11-09 2018-10-16 Palantir Technologies Inc. Validating data integrations using a secondary data store
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
US10482099B2 (en) 2016-12-19 2019-11-19 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
US9922108B1 (en) 2017-01-05 2018-03-20 Palantir Technologies Inc. Systems and methods for facilitating data transformation
US10776382B2 (en) 2017-01-05 2020-09-15 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
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
US11741166B2 (en) 2017-11-10 2023-08-29 Palantir Technologies Inc. Systems and methods for creating and managing a data integration workspace
US10754822B1 (en) 2018-04-18 2020-08-25 Palantir Technologies Inc. Systems and methods for ontology migration
US11461355B1 (en) 2018-05-15 2022-10-04 Palantir Technologies Inc. Ontological mapping of data
CN111368512A (en) * 2020-03-04 2020-07-03 北京软通智慧城市科技有限公司 Service data conversion method, device, equipment and storage medium
CN111368512B (en) * 2020-03-04 2023-08-22 北京软通智慧科技有限公司 Service data conversion method, device, equipment and storage medium

Also Published As

Publication number Publication date
GB2513007A (en) 2014-10-15
GB201404479D0 (en) 2014-04-30

Similar Documents

Publication Publication Date Title
DE102014204840A1 (en) Improved data integration tool
US11100154B2 (en) Data integration tool
DE102013111436B4 (en) Computer-implemented method and computer systems for sharing data between nexuses using different classification schemes for data access control
DE102014215621A1 (en) Template system for generating customized documents
DE202014010938U1 (en) Omega name: name generation and derivation
AU2009238294B2 (en) Data transformation based on a technical design document
DE102014213036A1 (en) Data Quality Monitors
DE102013209868A1 (en) Querying and integrating structured and unstructured data
US10445675B2 (en) Confirming enforcement of business rules specified in a data access tier of a multi-tier application
US7403937B2 (en) Abstractly mapped physical data fields
DE102014116369A1 (en) MANAGEMENT OF LANGUAGE MARKERS IN INTERNATIONAL DATA STORAGE
DE112012004036T5 (en) Define the scope and manage role development
DE102014103279A1 (en) Pivot facets for text mining and search
DE112010003948T5 (en) Evaluate GUI objects to check standards
US11176125B2 (en) Blended retrieval of data in transformed, normalized data models
DE112020005268T5 (en) AUTOMATICALLY GENERATE SCHEMA ANNOTATION FILES TO CONVERT NATURAL LANGUAGE QUERIES TO STRUCTURED QUERY LANGUAGE
DE112019005881T5 (en) CRYPTOGRAPHIC REVIEW OF DATABASE TRANSACTIONS
DE102019007354A1 (en) NARRATION SYSTEM FOR INTERACTIVE DASHBOARDS
DE112021003031T5 (en) ARCHIVE ACCELERATOR-ONLY DATABASE TABLES
DE112022000878T5 (en) DATASET MULTIPLEXER FOR DATA PROCESSING SYSTEM
DE112018002626T5 (en) Methods and systems for the optimized visual summary of sequences with time-related event data
DE112013000751T5 (en) Data processing, data collection
DE102008059875A1 (en) System and method for tracking time
DE102021123578A1 (en) MEASURE THE DATA QUALITY OF DATA IN A GRAPH DATABASE
DE112018005620T5 (en) ORDER MANAGEMENT IN A DATA PROCESSING SYSTEM

Legal Events

Date Code Title Description
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0017270000

Ipc: G06F0040200000

R005 Application deemed withdrawn due to failure to request examination