DE112016003626T5 - Natürlichsprachliche Schnittstelle zu Datenbanken - Google Patents

Natürlichsprachliche Schnittstelle zu Datenbanken Download PDF

Info

Publication number
DE112016003626T5
DE112016003626T5 DE112016003626.4T DE112016003626T DE112016003626T5 DE 112016003626 T5 DE112016003626 T5 DE 112016003626T5 DE 112016003626 T DE112016003626 T DE 112016003626T DE 112016003626 T5 DE112016003626 T5 DE 112016003626T5
Authority
DE
Germany
Prior art keywords
query
rules
template
data
language
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112016003626.4T
Other languages
English (en)
Inventor
Vadim Sheinin
Siddharth Ajeet Patwardhan
Branimir Konstantinov Boguraev
Elahe Khorasani
Petros Zerfos
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112016003626T5 publication Critical patent/DE112016003626T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/243Natural language query formulation
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2452Query translation
    • G06F16/24522Translation of natural language queries to structured queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/237Lexical tools
    • G06F40/247Thesauruses; Synonyms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities

Abstract

Eine Ausführungsform der Erfindung stellt ein Verfahren bereit, bei dem eine natürlichsprachliche Abfrage von einem Benutzer mit einer Schnittstelle empfangen wird. Eine ontologische Darstellung von Daten in einer Datenbank, die Namen von Begriffen und Namen von Begriffseigenschaften enthält, wird mit einem Eingabe-Port empfangen. Vorlagenregeln werden mit dem Eingabe-Port empfangen, wobei die Vorlagenregeln sprachabhängig und Ontologie-unabhängig sind, wobei die Vorlagenregeln weit verbreitete Konstrukte einer Sprache beinhalten. Mit einer Regelerzeugungseinheit werden Regeln mit der ontologischen Darstellung der Daten in der Datenbank und den Vorlagenregeln automatisch erzeugt, um Entitäten und Beziehungen in der natürlichsprachlichen Abfrage zu identifizieren. Entitäten und Beziehungen werden mit einem Prozessor identifiziert, wobei die Entitäten und Beziehungen in der natürlichsprachlichen Abfrage mit den Regeln identifiziert werden. Die Abfrage mittels einer strukturierten Datenabfragesprache wird mit einer Abfrageerzeugungseinheit aus den Entitäten und Beziehungen erzeugt.

Description

  • HINTERGRUND
  • Die vorliegende Erfindung bezieht sich auf Systeme, Verfahren und Computerprogrammprodukte für eine natürlichsprachliche Schnittstelle zu Datenbanken.
  • Datenbanken sind computergestützte Systeme für Informationsspeicherung und - abruf. Ein relationales Datenbankmanagementsystem (Database Management System, DBMS) ist ein Computer-Datenbankmanagementsystem, das relationale Methoden zum Speichern und Abrufen von Daten verwendet. Der gängigste Typ von Datenbank ist die relationale Datenbank, eine tabellarische Datenbank, bei der Daten so definiert werden, dass sie auf verschiedene Arten neu organisiert werden können und dass auf verschiedene Arten darauf zugegriffen werden kann. Eine verteilte Datenbank ist eine Datenbank, die auf verschiedene Stellen innerhalb eines Netzwerks verteilt oder an verschiedenen Stellen innerhalb eines Netzwerks repliziert werden kann. Eine objektorientierte Programmierdatenbank ist eine Datenbank, die mit den in Objektklassen und Unterklassen definierten Daten deckungsgleich ist.
  • Unabhängig von der jeweiligen Architektur fordert in einem DBMS eine anfordernde Entität (z.B. eine Anwendung oder das Betriebssystem) Zugriff auf eine angegebene Datenbank, indem sie eine Datenbank-Zugriffsanforderung ausgibt. Solche Anforderungen können zum Beispiel einfache Katalog-Nachschlageanforderungen oder -transaktionen und Kombinationen von Transaktionen sein, mit denen angegebene Datensätze in der Datenbank gelesen, geändert und hinzugefügt werden können. Diese Anforderungen erfolgen anhand von problemorientierten Abfragesprachen wie der strukturierten Abfragesprache (Structured Query Language, SQL). SQL wird zum Beispiel für interaktive Abfragen verwendet, um Daten aus einer Datenbank wie beispielsweise DB2® der International Business Machines (IBM), SQL Server von Microsoft und Datenbankprodukte von Oracle, Sybase und Computer Associates zu erhalten und eine solche Datenbank zu aktualisieren. Der Begriff „Abfrage“ bezeichnet einen Satz von Befehlen zum Abrufen von Daten aus einer gespeicherten Datenbank. Abfragen liegen in Form einer Befehlssprache vor, mit der Programmierer und Programme Daten auswählen, einfügen, aktualisieren, deren Speicherort ermitteln können usw. (DB2 ist eine Marke der International Business Machines Corporation).
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Gemäß einem Aspekt der Erfindung wird ein Verfahren zum Erzeugen einer Abfrage mittels einer strukturierten Datenabfragesprache bereitgestellt, bei der eine natürlichsprachliche Abfrage von einem Benutzer mit einer Schnittstelle empfangen wird. Eine ontologische Darstellung von Daten in einer Datenbank wird mit einem Eingabe-Port empfangen, wobei die ontologische Darstellung der Daten in der Datenbank Namen von Begriffen und Namen von Begriffseigenschaften enthält. Vorlagenregeln werden mit dem Eingabe-Port empfangen, wobei die Vorlagenregeln sprachabhängig und Ontologie-unabhängig sind, wobei die Vorlagenregeln weit verbreitete Konstrukte einer Sprache beinhalten.
  • Regeln werden mit einer Regelerzeugungseinheit, die mit der Schnittstelle und dem Eingabe-Port verbunden ist, automatisch erzeugt, wobei die Regeln mit der ontologischen Darstellung der Daten in der Datenbank und den Vorlagenregeln erzeugt werden, um Entitäten und Beziehungen in der natürlichsprachlichen Abfrage zu identifizieren. Entitäten und Beziehungen werden mit einem Prozessor identifiziert, der mit der Regelerzeugungseinheit verbunden ist, wobei die Entitäten und Beziehungen in der natürlichsprachlichen Abfrage mit den Regeln identifiziert werden. Die Abfrage mittels einer strukturierten Datenabfragesprache wird mit einer Abfrageerzeugungseinheit erzeugt, die mit dem Prozessor verbunden ist, wobei die Abfrage mittels einer strukturierten Datenabfragesprache aus den Entitäten und Beziehungen erzeugt wird.
  • Gemäß einem weiteren Aspekt wird ein Verfahren zum Erzeugen einer Abfrage mittels einer strukturierten Datenabfragesprache bereitgestellt, wobei das Verfahren aufweist: Empfangen einer natürlichsprachlichen Abfrage von einem Benutzer mit einer Schnittstelle; Empfangen einer ontologischen Darstellung von Daten in einer Datenbank mit einem Eingabe-Port, wobei die ontologische Darstellung der Daten in der Datenbank Namen von Tabellen in der Datenbank, Spaltennamen in den Tabellen und Zeilennamen in den Tabellen enthält; Empfangen von Vorlagenregeln mit dem Eingabe-Port, wobei die Vorlagenregeln sprachabhängig und Ontologie-unabhängig sind, wobei die Vorlagenregeln weit verbreitete Konstrukte einer Sprache beinhalten; automatisches Erzeugen von Regeln mit einer Regelerzeugungseinheit, die mit der Schnittstelle und dem Eingabe-Port verbunden ist, wobei die Regeln mit der ontologischen Darstellung der Daten in der Datenbank und den Vorlagenregeln erzeugt werden, um Entitäten und Beziehungen in der natürlichsprachlichen Abfrage zu identifizieren; Identifizieren von Entitäten und Beziehungen mit einem Prozessor, der mit der Regelerzeugungseinheit verbunden ist, wobei die Entitäten und Beziehungen in der natürlichsprachlichen Abfrage mit den Regeln identifiziert werden; und Erzeugen der Abfrage mittels einer strukturierten Datenabfragesprache mit einer Abfrageerzeugungseinheit, wobei die Abfrage mittels einer strukturierten Datenabfragesprache aus den Entitäten und Beziehungen erzeugt wird.
  • Gemäß einem weiteren Aspekt wird ein Computerprogrammprodukt bereitgestellt, aufweisend: ein computerlesbares Speichermedium mit darauf gespeicherten: ersten Programmbefehlen, die durch eine Einheit ausführbar sind, um die Einheit zu veranlassen, eine natürlichsprachliche Abfrage von einem Benutzer zu empfangen; zweiten Programmbefehlen, die durch die Einheit ausführbar sind, um die Einheit zu veranlassen, eine ontologische Darstellung von Daten in einer Datenbank zu empfangen, wobei die ontologische Darstellung der Daten in der Datenbank Namen von Tabellen in der Datenbank, Spaltennamen in den Tabellen und Zeilennamen in den Tabellen enthält; dritten Programmbefehlen, die durch die Einheit ausführbar sind, um die Einheit zu veranlassen, Vorlagenregeln zu empfangen, wobei die Vorlagenregeln sprachabhängig und Ontologie-unabhängig sind, wobei die Vorlagenregeln weit verbreitete Konstrukte einer Sprache beinhalten; vierten Programmbefehlen, die durch die Einheit ausführbar sind, um die Einheit zu veranlassen, automatisch Regeln zu erzeugen, um Entitäten und Beziehungen in der natürlichsprachlichen Abfrage zu identifizieren, wobei die Regeln mit der ontologischen Darstellung der Daten in der Datenbank und den Vorlagenregeln erzeugt werden; fünften Programmbefehlen, die durch die Einheit ausführbar sind, um die Einheit zu veranlassen, Entitäten und Beziehungen in der natürlichsprachlichen Abfrage mit den Regeln zu identifizieren; und sechsten Programmbefehlen, die durch die Einheit ausführbar sind, um die Einheit zu veranlassen, die Abfrage mittels einer strukturierten Datenabfragesprache aus den Entitäten und Beziehungen zu erzeugen.
  • Gemäß einem weiteren Aspekt wird ein System zum Erzeugen einer Abfrage mittels einer strukturierten Datenabfragesprache bereitgestellt, wobei das System aufweist: eine Schnittstelle, wobei die Schnittstelle dazu dient, eine natürlichsprachliche Abfrage von einem Benutzer zu empfangen; einen Eingabe-Port, wobei der Eingabe-Port dazu dient: eine ontologische Darstellung von Daten in einer Datenbank zu empfangen, wobei die ontologische Darstellung der Daten in der Datenbank Namen von Tabellen in der Datenbank, Spaltennamen in den Tabellen und Zeilennamen in den Tabellen enthält, sowie Vorlagenregeln zu empfangen, wobei die Vorlagenregeln sprachabhängig und Ontologie-unabhängig sind, wobei die Vorlagenregeln weit verbreitete Konstrukte einer Sprache beinhalten; eine Regelerzeugungseinheit, die mit der Schnittstelle und dem Eingabe-Port verbunden ist, wobei die Regelerzeugungseinheit dazu dient, Regeln automatisch zu erzeugen, wobei die Regeln mit der ontologischen Darstellung der Daten in der Datenbank und den Vorlagenregeln erzeugt werden, um Entitäten und Beziehungen in der natürlichsprachlichen Abfrage zu identifizieren; einen Prozessor, der mit der Regelerzeugungseinheit verbunden ist, wobei der Prozessor dazu dient, Entitäten und Beziehungen zu identifizieren, wobei die Entitäten und Beziehungen in der natürlichsprachlichen Abfrage mit den Regeln identifiziert werden; und eine Abfrageerzeugungseinheit, die mit dem Prozessor verbunden ist, wobei die Abfrageerzeugungseinheit dazu dient, die strukturierten Datensprachabfrage aus den Entitäten und Beziehungen zu erzeugen.
  • Figurenliste
  • Bevorzugte Ausführungsformen der vorliegenden Erfindung werden nun lediglich beispielhaft und mit Blick auf die folgenden Zeichnungen beschrieben:
    • 1 ist ein Ablaufplan, der eine Suchabfrage ausgehend von einer Verarbeitung natürlicher Sprache über SQL bis zu einem Abfrageergebnis gemäß einer Ausführungsform der Erfindung veranschaulicht.
    • 2 veranschaulicht das Schema für die Verkaufslager-Datenbank gemäß einer Ausführungsform der Erfindung.
    • 3 veranschaulicht eine Systemschnittstelle gemäß einer Ausführungsform der Erfindung.
    • 4A veranschaulicht eine Smartphone-Schnittstelle gemäß einer Ausführungsform der Erfindung.
    • 4B ist eine Darstellung, die einen Erhalt von Schlüsselbegriffen aus einer natürlichsprachlichen Abfrage gemäß einer Ausführungsform der Erfindung veranschaulicht.
    • 4C ist eine Darstellung, die eine Übersetzung in SQL-Befehle gemäß einer Ausführungsform der Erfindung veranschaulicht.
    • 4D veranschaulicht Suchergebnisse, die gemäß einer Ausführungsform der Erfindung auf der Smartphone-Schnittstelle angezeigt werden.
    • 5 veranschaulicht Regeln für die Erkennung von Entitäten und Beziehungen gemäß einer Ausführungsform der Erfindung.
    • 6 veranschaulicht Vorlagenregeln gemäß einer Ausführungsform der Erfindung.
    • 7 veranschaulicht eine Schema-Annotationsdatei (Schema Annotation File, SAF) gemäß einer Ausführungsform der Erfindung.
    • 8 ist ein Ablaufplan, der ein Verfahren zum Erzeugen von Regeln mit lexikalischen Beschränkungen gemäß einer Ausführungsform der Erfindung veranschaulicht.
    • 9 ist ein Ablaufplan, der ein Verfahren für die automatisierte Erzeugung einer SAF gemäß einer Ausführungsform der Erfindung veranschaulicht.
    • Die 10A und 10B sind Darstellungen, die ein Analysieren einer natürlichsprachlichen Abfrage gemäß einer Ausführungsform der Erfindung veranschaulichen.
    • 11 ist eine Darstellung, die ein Analysieren einer weiteren natürlichsprachlichen Abfrage gemäß einer Ausführungsform der Erfindung veranschaulicht.
    • 12B ist eine Darstellung, die ein Analysieren noch einer weiteren natürlichsprachlichen Abfrage gemäß einer Ausführungsform der Erfindung veranschaulicht.
    • 13A veranschaulicht eine Smartphone-Schnittstelle gemäß einer Ausführungsform der Erfindung.
    • 13B ist eine Darstellung, die einen Erhalt von Schlüsselbegriffen aus einer natürlichsprachlichen Abfrage gemäß einer Ausführungsform der Erfindung veranschaulicht.
    • 13C ist eine Darstellung, die eine Übersetzung in SQL-Befehle gemäß einer Ausführungsform der Erfindung veranschaulicht.
    • 13D veranschaulicht Suchergebnisse, die gemäß einer Ausführungsform der Erfindung auf der Smartphone-Schnittstelle angezeigt werden.
    • 14A veranschaulicht eine Smartphone-Schnittstelle gemäß einer Ausführungsform der Erfindung.
    • 14B ist eine Darstellung, die einen Erhalt von Schlüsselbegriffen aus einer natürlichsprachlichen Abfrage gemäß einer Ausführungsform der Erfindung veranschaulicht.
    • 14C ist eine Darstellung, die eine Übersetzung in SQL-Befehle gemäß einer Ausführungsform der Erfindung veranschaulicht.
    • 14D veranschaulicht Suchergebnisse, die gemäß einer Ausführungsform der Erfindung auf der Smartphone-Schnittstelle angezeigt werden.
    • 15 ist ein Ablaufplan, der ein Verfahren zum Erzeugen einer Abfrage mittels einer strukturierten Datenabfragesprache gemäß einer Ausführungsform der Erfindung veranschaulicht.
    • 16 ist eine Darstellung, die ein System zum Erzeugen einer Abfrage mittels einer strukturierten Datenabfragesprache gemäß einer Ausführungsform der Erfindung veranschaulicht.
    • 17 ist ein Ablaufplan, der ein Verfahren zum Abfragen einer Datenbank gemäß einer Ausführungsform der Erfindung veranschaulicht.
    • 18 ist eine Darstellung, die ein System zum Abfragen einer Datenbank gemäß einer Ausführungsform der Erfindung veranschaulicht.
    • 19 ist eine Darstellung, die ein Computerprogrammprodukt gemäß einer Ausführungsform der Erfindung veranschaulicht.
    • 20 stellt einen Cloud-Datenverarbeitungsknoten gemäß einer Ausführungsform der vorliegenden Erfindung dar.
    • 21 stellt eine Cloud-Datenverarbeitungsumgebung gemäß einer Ausführungsform der vorliegenden Erfindung dar.
    • 22 stellt Abstraktionsmodellschichten gemäß einer Ausführungsform der vorliegenden Erfindung dar.
  • In den Zeichnungen stehen gleichlautende Bezugszeichen für identische oder in funktioneller Hinsicht ähnliche Elemente.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Im Folgenden werden beispielhafte, nicht als Einschränkung zu verstehende Ausführungsformen der vorliegenden Erfindung im Detail erörtert. Obwohl im Interesse einer guten Verständlichkeit spezifische Konfigurationen erörtert werden, sollte klar sein, dass die offenbarten Konfigurationen lediglich zu Veranschaulichungszwecken bereitgestellt werden. Für einen Fachmann dürfte offensichtlich sein, dass auch andere Konfigurationen verwendet werden können, ohne vom gedanklichen Wesensgehalt und inhaltlichen Umfang der Erfindung abzuweichen.
  • Mindestens eine Ausführungsform der Erfindung beinhaltet ein System und Verfahren, das eine Verarbeitung von natürlicher Sprache (Natural Language Processing, NLP) verwendet, um aus normalen englischen Sätzen automatisch SQL-Abfragen zu erzeugen. 1 ist ein Ablaufplan, der eine Suchabfrage beginnend mit einer NLP über SQL bis hin zu einem Abfrageergebnis gemäß einer Ausführungsform der Erfindung veranschaulicht, wobei in einer NLP-Pipeline 120 Eingabetext von einem Benutzer 110 empfangen wird. Bei der Erzeugung von SQL-Abfragen 140 können erkannte Entitäten und Beziehungen aus der NLP-Pipeline 120 und Daten aus einem Datenbankschema 130 verwendet werden.
  • Die Daten aus dem Datenbankschema 130 können auch in der NLP-Pipeline 120 verwendet werden. Im Besonderen kann die NLP-Pipeline 120 eine Umwandlung des Datenbankschemas 130 in Regeln verwenden, um Entitäten zu erkennen. Die SQL-Abfrage kann an eine Datenbank 150 gesendet werden, und das Abfrageergebnis kann von der Datenbank 150 an den Benutzer 110 gesendet werden.
  • Somit kann durch die automatische Erzeugung von Regeln, die für die Verwendung von Entitäten und Beziehungen verwendet werden, ein domänenunabhängiges System bereitgestellt werden. Es können Vorlagenregeln verwendet werden, die domänenunabhängig sind und aus der Sprache selbst abgeleitet werden. Auch eine Paraphrasenerzeugung kann verwendet werden, um den Abdeckungsgrad des Systems automatisch zu erhöhen. Die Robustheit lässt sich über die Verwendung von mehreren Analysevorgängen verbessern; und Teile der Frage, die in der erzeugten SQL zwar verwendet werden sollen, jedoch nicht darin enthalten sind, können automatisch identifiziert werden.
  • Das folgende Anwendungsbeispiel 1 betrifft einen CMO im Einzelhandel. John ist der CMO des Unternehmens ABC; er möchte Folgendes herausfinden: „What are types of the products that were sold on October, 11, 2014 in shops that have been located in New York“ („Welche Arten von Produkten wurden am 11. Oktober 2014 in Geschäften verkauft, die sich in New York befinden?“). 2 veranschaulicht ein Beispielschema für die Verkaufslager-Datenbank gemäß einer Ausführungsform der Erfindung.
  • 3 veranschaulicht eine Systemschnittstelle 300 gemäß einer Ausführungsform der Erfindung. John kann seine Frage (z.B. „What are the types of products that were sold on October 11, 2014 in shops that are located in New York“) in ein Suchfeld 310 eingeben, und das System wandelt seine Frage in SQL um. Selbst wenn John bei seiner Frage ein Fehler unterläuft (z.B. „What are the types of the products that were sold in October 11, 2014 in shops that have been located in New York“ („Welche Arten von Produkten wurden am 11. Oktober 2014 in Geschäften verkauft, die sich in New York befanden?“)), kann die richtige SQL-Abfrage erzeugt werden. Die Ergebnisse der Abfrage können in den Suchergebnissen 320 angezeigt werden.
  • Verschiedene Berufsgruppen wie zum Beispiel Vertriebsangehörige, Händler, Filialmitarbeiter und Außendienstmitarbeiter wünschen möglicherweise eine schnelle Interaktion mit Daten, die in relationalen Datenbanken gespeichert sind. Um die Daten zu erhalten, werden natürlichsprachliche Abfragen von den verschiedenen Berufsgruppen in SQL umgewandelt.
  • Der folgende Anwendungsfall 2 betrifft einen Außendienstmitarbeiter eines Telefonunternehmens. Jane ist die Außendienstmitarbeiterin des Unternehmens ABC Telco in den Vereinigten Staaten. Wenn sie einen Arbeitsauftrag erhält, begibt sie sich in den Außendienst, um das Problem zu begutachten, zu beurteilen und zu lösen. ABC Telco hat kürzlich alle Techniker mit Smartphones ausgerüstet. Als Jane am Ort eintrifft, muss sie wissen: 1) „When was the last time the circuit was fixed?“ („Wann wurde die Leitung letztmals repariert?“), 2) „What was the last issue on the circuit?“ („Was für ein Problem ist mit der Leitung zuletzt aufgetreten?“), 3) „When was the circuit originally installed?“ („Wann wurde die Leitung ursprünglich installiert?“), 4) „What was the last report on the circuit? What was changed in the last repair?“ („Was steht im letzten Reparaturbericht zu der Leitung steht? Was wurde bei der letzten Reparatur verändert?“). Jane muss im Freien arbeiten, und es ist sehr kalt. Da es für Jane sehr schwierig ist, ihre Fragen einzutippen, spricht sie diese in ihr Smartphone und sieht die Informationen auf dem Display.
  • Im Besonderen spricht Jane, wie in 4A veranschaulicht, ihre Frage „When was the last time this circuit was fixed?“ in ihr Smartphone. Bei mindestens einer Ausführungsform befindet sich das System in dem Smartphone und interpretiert den gesprochenen Satz, analysiert den gesprochenen Satz, erhält daraus Schlüsselbegriffe und ihre Werte und setzt die Begriffe in Beziehung zu dem Datenbankschema. 4B ist eine Darstellung, die einen Erhalt von Schlüsselbegriffen aus einer natürlichsprachlichen Abfrage gemäß einer Ausführungsform der Erfindung veranschaulicht, wobei das System Folgendes erhält: aus dem Wort „time“ („wann“), dass sich dies auf das Feld „time“ („Zeit“) in dem Schema unserer Datenbank bezieht, aus dem Wort „last time“ („zuletzt“), dass sie den letzten Eintrag in der Datenbank wissen will, der sich auf die Leitungsreparatur bezieht, aus dem Wort „circuit“ („Leitung“), dass sich ihre Frage auf die Leitung und nicht auf den Mast oder das Kabel bezieht, und dass das Statusfeld in der Datenbank auf das Wort „fixed“ („repariert“) überprüft werden soll.
  • Das System kann den gesprochenen Satz in SQL-Befehle umwandeln und die SQL-Abfrage an ABC-Datenbanken senden. 4C ist eine Darstellung, die eine Übersetzung in SQL-Befehle gemäß einer Ausführungsform der Erfindung veranschaulicht. Das System kann die Ergebnisse der Suche an die Anwendung zurückgeben, die auf dem Smartphone läuft. 4D veranschaulicht Suchergebnisse, die gemäß einer Ausführungsform der Erfindung auf der Smartphone-Schnittstelle angezeigt werden.
  • Bei mindestens einer Ausführungsform der Erfindung erfolgt die Erkennung von Entitäten und Beziehungen auf Grundlage von Regeln, wobei eine Einheit Erkennungsregeln als Eingabe empfängt und in einer Abhängigkeitsbaumstruktur Treffer für diese Regeln findet. Um Ontologie-unabhängig zu sein, können Erkennungsregeln unter Verwendung von Vorlagenregeln und einer SAF automatisch erzeugt werden. 5 veranschaulicht eine SAF gemäß einer Ausführungsform der Erfindung. Die SAF gibt an, dass die Datenbank eine Tabelle „Employees“ („Mitarbeiter“) mit einer Spalte „employee id“ („Mitarbeiter ID“) und einer Spalte „salaries“ („Gehalt“) sowie eine Tabelle „Departments“ („Abteilungen“) mit einer Spalte „department id“ („Abteilungs_ID“) enthält.
  • 6 veranschaulicht Vorlagenregeln gemäß einer Ausführungsform der Erfindung. Die Vorlagenregeln erfordern: Ein Subjekt (VAR1) Verb („has“ („hat“)) ein Objekt (VAR2). Mit den Vorlagenregeln und der SAF können automatisch Regeln für die Erkennung von Entitäten und Beziehungen in einer natürlichsprachlichen Abfrage erzeugt werden. Vorlagenregeln können für weit verbreitete Konstrukte einer natürlichen Sprache stehen. Ein Beispiel ist ein Besitz-Konstrukt: Abteilung hat einen Leiter, Mitarbeiter hat ein Gehalt, Kunde hat eine Adresse. Ein solches Konstrukt kann als ein Verb „have“ („haben“) mit einem Subjekt und einem Objekt dargestellt werden. Das Subjekt kann beschreiben, wer etwas besitzt, und das Objekt kann beschreiben, was das Subjekt besitzt. Unter dem Gesichtspunkt der Abhängigkeitsbaumstruktur kann dieses Konstrukt als ein Graph dargestellt werden, der drei Knoten enthält: wobei der Hauptknoten ein Verb mit der Lemmaform „have“ und zwei mit ihm verbundenen Kindknoten ist. Ein Kindknoten kann über eine als „Subjekt“ bezeichnete Kante mit dem Hauptknoten verbunden sein, und ein weiterer Kindknoten kann über eine als „Objekt“ bezeichnete Kante mit dem Hauptknoten verbunden sein. Zusätzlich kann der Subjekt-Knoten eine bestimmte Lemmaform (z.B. „employee“ („Mitarbeiter“)) aufweisen, und auch das Objekt kann eine bestimmte Lemmaform (z.B. „salary“ („Gehalt“)) aufweisen. Ein weiteres Konstrukt kann Subjekt-Verb-Objekt (wobei „Verb“ ein beliebiges Verb sein kann) oder Subjekt-Präposition-Objekt beinhalten. Beispiele sind: Ein Kunde kauft Produkte, ein Mitarbeiter arbeitet in einer Abteilung usw. Ein weiteres Konstrukt kann Adjektiv (Superlativ)-Substantiv, z.B. höchstes Gehalt, niedrigstes Gehalt usw., beinhalten.
  • 7 veranschaulicht Regeln für die Erkennung von Entitäten und Beziehungen gemäß einer Ausführungsform der Erfindung. Eine Regel kann erfordern: Ein Subjekt („employee“ („Mitarbeiter)) Verb („has“ („hat“)) ein Objekt („salary“ („Gehalt“). 8 ist ein Ablaufplan, der ein Verfahren zum Erzeugen von Regeln mit lexikalischen Beschränkungen (hier auch als „die Regeln“ bezeichnet) gemäß einer Ausführungsform der Erfindung veranschaulicht. Vorlagenregeln werden empfangen 810. Vorlagenregeln ohne lexikalische Beschränkungen 820 und eine SAF 830 werden dazu verwendet, Regeln mit konkreten lexikalischen Beschränkungen zu erzeugen 840. Dies resultiert in Regeln mit lexikalischen Beschränkungen 850.
  • Um Regeln automatisch zu erzeugen, kann eine SAF verwendet werden. Durch das automatische Erzeugen einer SAF, bei dem ausschließlich die Datenbank und ihr Schemas verwendet werden, kann ein vollständig automatisiertes System erstellt werden, das das benötigte Wissen aus der Datenbank bezieht und in der Lage ist, Fragen zu den Daten in der Datenbank zu beantworten.
  • 9 ist ein Ablaufdiagramm, das ein Verfahren für die automatisierte Erzeugung einer SAF gemäß einer Ausführungsform der Erfindung veranschaulicht. Auf das (auch als Datenbankschema bezeichnete) Schemamodell kann zugegriffen und es kann analysiert werden 910. Semantische Beziehungen zwischen Spalten können gefunden werden 920. Da das Datenbankschema bekannt ist, kann das System auf Grundlage einer Primärschlüssel/Fremdschlüssel-Beziehung alle Paare von Spaltennamen (ebenso wie Tabelle-zu-Tabelle und Tabelle-zu-Spalte) ermitteln, die zueinander in Beziehung stehen. In einem Beispiel ergeben die Regeln „customer buys products“ („Kunde kauft Produkte“) und „manufacturer produces products“ („Hersteller produziert Produkte“). Wenn die Eingabefrage „John buys products“ („John kauft Produkte“) lautet, kann ermittelt werden, dass John ein Kunde und Hersteller ist. Ohne die Regeln kann nicht ermittelt werden, wer John ist.
  • Eine Paraphrasenerzeugung kann durchgeführt werden 930. In einem Beispiel enthält die SAF „employee has a salary“ („Mitarbeiter hat ein Gehalt“). Als leistungsfähiges NLP-Werkzeug kann eine Paraphrasierung Folgendes erzeugen: „employee earns money“ („Mitarbeiter verdient Geld“), „employee makes $“ („Mitarbeiter macht Geld“), „salary of employee“ („Gehalt von Mitarbeiter“), „employee salary“ („Mitarbeitergehalt“) und/oder „employee with salary“ („Mitarbeiter mit Gehalt“). Die Paraphrasierung kann die SAF automatisch ergänzen, so dass das System Fragen beantworten kann, die ein und denselben Begriff auf verschiedene Arten vermitteln.
  • Die Erkennung von Entitäten kann Ergebnisse erbringen, die eigentlich Nebenprodukte des Erkennungsprozesses sind und in der abschließenden SQL-Abfrage nicht enthalten sein sollen. Ein Benutzer gibt zum Beispiel die natürlichsprachliche Abfrage „What is the highest price of the products that customers bought on January 25, 1999?“ („Was ist der höchste Preis der Produkte, die Kunden am 25. Januar 1999 gekauft haben?“) ein. Der Begriff „products“ („Produkte“) wird durch die Regel „customers buy products“ („Kunden kaufen Produkte“) erkannt, was zur Erzeugung des Datenelements (dataltem) Products.Product_ID führen kann. Allerdings gibt die SQL-Abfrage unter Umständen nicht den höchsten Preis, sondern vielmehr einen Preis pro Produkt aus, da der SQL-Generator in die „GROUP BY“-Klausel automatisch product_ID einfügt. Um solche Situationen zu vermeiden, kann die Fokuserkennung Datenelemente in der natürlichsprachlichen Abfrage als Fokuselemente kennzeichnen. Wenn ein Datenelement keinen Filter, keine Aggregierungsfunktion und keinen Fokus aufweist, kann es während des SQL-Erzeugungsvorgangs ignoriert werden.
  • Bei mindestens einer Ausführungsform muss die automatische SQL-Erzeugung das Schema der Datenbank kennen. Der SQL-Generator kann als Eingabe einen Satz von Datenelementen verwenden, bei dem jedes Datenelement ein Mehrfaches von (TableName, ColumnName, Filter, AggregationFunction) ist. Da er das Datenbankschema kennt und einen Satz von Datenelementen empfängt, erzeugt der SQL-Generator die resultierende SQL-Abfrage.
  • Mitunter können Parserfehler auftreten, und häufig ist die Abhängigkeitsbaumstruktur nicht korrekt. Parser können mehrere Ergebnisse erbringen, wobei Anwendungen aber üblicherweise nur die beste Analyse verwenden, wie sie vom Parser selbst als solche definiert wird. Das System kann mehrere Analysen verwenden, wobei jede Analyse dazu beitragen kann, dass korrekte Entitäten und Beziehungen erhalten werden.
  • Die 10A und 10B sind Darstellungen, die ein Analysieren einer natürlichsprachlichen Abfrage („What are the names of employees traveling today?“ („Wie lauten die Namen der Mitarbeiter, die heute verreisen?“)) gemäß einer Ausführungsform der Erfindung veranschaulichen. Wenn der Benutzer nach der Beziehung „employee travels“ („Mitarbeiter verreist“) sucht, erbringt die in 10A veranschaulichte Analyse ein entsprechendes Ergebnis, während dies bei der in 10B veranschaulichten Analyse nicht der Fall ist. Wenn nur die beste Analyse verwendet wird (z.B. die in 10B veranschaulichte Analyse), würde die Beziehung „employee travels“ nicht erkannt, da der Knoten „travelling“ („verreisen“) von dem Knoten „names“ („Namen“) und nicht von dem Knoten „employees“ („Mitarbeiter“) abhängig ist. Die Verwendung aller Analysen ermöglicht dem System die Erkennung von Beziehungen, wenn mindestens eine Analyse den richtigen Teil der Abhängigkeitsbaumstruktur für die jeweilige Beziehung aufweist, für die sich der Benutzer interessiert. Bei einer Analyse kann die Beziehung Nr.1 richtig, die Beziehung Nr.2 jedoch falsch sein, und bei einer weiteren Analyse kann die Beziehung Nr.2 richtig und die Beziehung Nr.1 falsch sein. Durch die Verwendung mehrerer Analysen, bei denen jede Analyse zur Erkennung der richtigen Beziehung Nr.i beiträgt, kann eine richtige Erkennung mehrerer Beziehungen erreicht werden.
  • 11 ist eine Darstellung, die ein Analysieren einer weiteren natürlichsprachlichen Abfrage („What products have prices above 150 dollars?“ („Welche Produkte haben einen Preis über 150 Dollar?“) gemäß einer Ausführungsform der Erfindung veranschaulicht. In dieser natürlichsprachlichen Abfrage kann „above 150 dollars“ („über 150 Dollar“) durch einen numerischen Komparator-Annotator annotiert werden; und das System kann die Beziehung „product has price“ („Produkt hat Preis“) erkennen, für die ein Filter „>150" gilt. Eine solche erfolgreiche Beziehungserkennung mit einem Filter kann möglich sein, da der Parser „above 150 dollars“ korrekt mit „prices“ („Preis“) verbunden hat, was wiederum über „have“ („haben“) korrekt mit „products“ („Produkte“) verbunden wurde.
  • 12 ist eine Darstellung, die ein Analysieren noch einer weiteren natürlichsprachlichen Abfrage („who bought products with prices above 150 dollars?“ („Wer kaufte Produkte mit einem Preis über 150 Dollar?“)) gemäß einer Ausführungsform der Erfindung veranschaulicht. In dieser natürlichsprachlichen Abfrage kann „above 150 dollars durch den numerischen Komparator-Annotator annotiert werden, wobei die Beziehung „product has price“ („Produkt hat Preis“) jedoch nicht erkannt wird, da der Knoten „with“ („mit“) mit „bought“ („kaufte“) verbunden ist (da die Parserlogik lautet: „Er kaufte etwas mit seinem eigenen Geld“). Wenn der numerische Komparator etwas annotiert hat (z.B. „above 150 dollars“, kann das System ermitteln, mit welchem Substantiv dies verbunden ist (in diesem Beispiel „prices“ („Preis“)). Um festzustellen, welches Substantiv mit „prices“ verbunden sein kann, kann das System alle Namen in den Regeln mit lexikalischen Beschränkungen durchgehen, um einen Namen zu finden, in dem sowohl „price“ als auch ein numerischer Komparator vorkommen. Diese Regel kann so verwendet werden, als hätte sie während eines normalen Erkennungsvorgangs von Entitäten und Beziehungen einen Treffer erbracht. Bei mehreren Regeln kann ein Benutzer gefragt werden, welches Konstrukt dem näher kommt, was er gemeint hat.
  • Das folgende Anwendungsbeispiel 3 betrifft Carl, der als Kabeltechniker für das Unternehmen BCC in Australien tätig ist. BCC hat einen Anruf von einem Kunden erhalten, in dem es um dessen Internetgeschwindigkeit geht. Carl trifft am Ort ein und prüft die Signalstärke. Damit Carl die Situation vollständig beurteilen kann, muss er wissen: 1) „Whether there were any customer calls in the same vicinity and the issue types?“ („Gab es Kundenanrufe in demselben Gebiet und mit demselben Problem?“); 2) „What was the signal strength when measured remotely when customer called?“ („Welche Signalstärke wurde mittels Fernmessung festgestellt, als der Kunde angerufen hat?“) 3) „When was the circuit installed?“ („Wann wurde die Leitung installiert?“); und 4) „Was there a similar issue reported recently on the same circuit the customer has?“ („Wurde kürzlich ein ähnliches Problem für dieselbe Leitung gemeldet, die der Kunde hat?“).
  • 13A veranschaulicht die Schnittstelle von Carls Smartphone gemäß einer Ausführungsform der Erfindung, wobei Carl dem System seine Frage mündlich stellt: „Was there an issue reported by neighbors at this location during last 3 days?“ („Wurde innerhalb der letzten drei Tage von Nachbarn dieses Standorts ein Problem gemeldet?“). Carls mündliche Eingabe kann mit einem Sprachverarbeitungssystem in seinem Smartphone empfangen und verarbeitet werden. 13B ist eine Darstellung, die einen Erhalt von Schlüsselbegriffen aus einer natürlichsprachlichen Abfrage gemäß einer Ausführungsform der Erfindung veranschaulicht. Das System kann den Satz interpretieren, Schlüsselbegriffe und ihre Werte erhalten und die Begriffe in einen Bezug zu dem Datenbankschema setzen. Das System kann zum Beispiel aus dem Begriff „was there“ („wurde“) herauslesen, dass sich Carl nach früheren Vorkommen erkundigt, aus dem Begriff (neighbors” („Nachbarn“), dass es nach Adressen in der Umgebung der aktuellen Adresse suchen soll, und aus den Begriffen „last 3 days“ („letzten drei Tagen“), dass es die Abfrage für die letzten drei Tage durchführen soll. Somit beinhalten die identifizierten Entitäten in diesem Beispiel die Begriffe „was there“, „neighbors“ und „last 3 days“. Das System kann außerdem von einer GPS-Einheit oder einer anderen Standortfunktion in Carls Smartphone auch seinen Standort (z.B. Längen- und Breitengrad) erhalten.
  • 13C ist eine Darstellung, die eine Übersetzung in SQL-Befehle gemäß einer Ausführungsform der Erfindung veranschaulicht. Konkret wird die natürlichsprachliche Abfrage „Was there an issue reported by neighbors at this location during last 3 days?“ („Wurde innerhalb der letzten drei Tage von Nachbarn dieses Standorts ein Problem gemeldet?“) in „SELECT customer_address, issue, location FROM reported_issues_table WHERE distance(location, curr_loc) < 100“ umgewandelt. Das System kann die SQL-Befehle zur Ausführung an die Datenbank senden. 13D veranschaulicht Suchergebnisse, die gemäß einer Ausführungsform der Erfindung auf der Smartphone-Schnittstelle angezeigt werden. Somit kann Carl sehen, dass bei zwei Nachbarn in den letzten drei Tagen eine langsame Verbindung oder ein Verbindungsausfall aufgetreten ist.
  • Das folgende Anwendungsbeispiel 4 betrifft John, der als Außendienstmitarbeiter für das Unternehmen ABC Utility in den Vereinigten Staaten tätig ist. Wenn John einen Arbeitsauftrag erhält, begibt er sich in den Außendienst, um das Problem zu begutachten, zu beurteilen und zu lösen. ABC Utility hat kürzlich ein Speicherdatenbank-Managementsystem installiert, um bei Außendiensteinsätzen effizienter auf historische Anlagedaten zugreifen zu können. ABC Utility will erreichen, dass sein Anlagen-Managementsystem im Anschluss an einen Einsatz eine bessere Datenqualität aufweist. Als John am Ort eintrifft, muss er wissen: 1) „When was the last time the circuit was fixed?“ („Wann wurde die Leitung letztmals repariert?“); 2) „What was the last issue on the circuit?“ („Was für ein Problem ist mit der Leitung zuletzt aufgetreten?“); 3) „When was the circuit originally installed?“ („Wann wurde die Leitung ursprünglich installiert?“); 4) „What was the last report on the circuit?“ („Was steht im letzten Reparaturbericht zu der Leitung?“); 5) „What was changed in the last repair?“ („Was wurde bei der letzten Reparatur verändert?“). Nachdem John das Problem behoben hat, kann er die Anlagendatensätze in der Datenbank mit den folgenden Angaben aktualisieren: 1) ob das Problem behoben ist oder ein Folgebesuch eines weiteren Technikerkollegen notwendig ist; 2) was die Ursache des Problems war; und 3) ob er ein anderes Problem (Mast, Kabel, Baumrückschnitt) festgestellt hat, dass in nächster Zeit behoben werden sollte.
  • 14A veranschaulicht eine Smartphone-Schnittstelle gemäß einer Ausführungsform der Erfindung, bei der John dem System seine Frage mündlich stellt: „When was the last time this circuit was fixed? („Wann wurde diese Leitung letztmals repariert?“). 14B ist eine Darstellung, die einen Erhalt von Schlüsselbegriffen aus einer natürlichsprachlichen Abfrage gemäß einer Ausführungsform der Erfindung veranschaulicht. Das System kann den Satz interpretieren, Schlüsselbegriffe und ihre Werte erhalten und die Begriffe in einen Bezug zu dem Datenbankschema setzen. So kann das System zum Beispiel aus dem Begriff „when“ („wann“) herauslesen, dass sich die Abfrage auf das Zeit-Feld in dem Schema der Datenbank bezieht, aus dem Begriff „last time“ („letztmals“), dass John den letzten Eintrag zur Leitungsreparatur in der Datenbank wissen möchte, aus dem Begriff „this“ („diese“), dass sich die Abfrage auf den aktuellen Standort bezieht (der z.B. mittels GPS zu bestimmen ist), aus dem Begriff „circuit“ („Leitung“), dass die Abfrage auf die Leitung (und nicht den Mast oder das Kabel) abzielt, und aus dem Begriff „fixed“ („repariert“), dass die Abfrage das Status-Feld in der Datenbank abfragen soll. Somit beinhalten in diesem Beispiel die identifizierten Entitäten die Begriffe „when“, „last time“, „this“, „circuit“ und „fixed“. Das System kann außerdem von einer GPS-Einheit in Johns Smartphone auch seinen Standort (z.B. Längen- und Breitengrad) erhalten.
  • 14C ist eine Darstellung, die eine Übersetzung in SQL-Befehle gemäß einer Ausführungsform der Erfindung veranschaulicht. Konkret wird die natürlichsprachliche Abfrage „When was the last time this circuit was fixed?“ („Wann wurde diese Leitung letztmals repariert?“) in „SELECT circuit_name, max(date) FROM ASSET_CIRCUIT_TABLE WHERE status = „FIXED“ AND location = (41.162873, -73.861525)” übersetzt. Das System kann die SQL-Befehle zur Ausführung an die Datenbank senden. 14D veranschaulicht Suchergebnisse, die gemäß einer Ausführungsform der Erfindung auf der Smartphone-Schnittstelle angezeigt werden. Somit sieht John, dass die Leitung CIU3265FX am 4. Januar 2014 von Peter Smith repariert wurde.
  • 15 ist ein Ablaufplan, der ein Verfahren zum Erzeugen einer Abfrage mittels einer strukturierten Datenabfragesprache (z.B. SQL) gemäß einer Ausführungsform der Erfindung veranschaulicht, und 16 ist eine Darstellung, die ein System 1600 zum Erzeugen einer Abfrage mittels einer strukturierten Datenabfragesprache gemäß einer Ausführungsform der Erfindung veranschaulicht. Das in 15 veranschaulichte Verfahren kann unter Verwendung des Systems 1600 durchgeführt werden. Eine Schnittstelle 1610 kann eine natürlichsprachliche Abfrage von einem Benutzer empfangen 1510 (z.B. „What are the names of employees in the marketing department?“ („Wie lauten die Namen der Mitarbeiter in der Marketingabteilung?“). Der Begriff „Schnittstelle“ kann hier eine Computerhardware-Einheit wie z.B. eine Tastatur, einen berührungsempfindlichen Bildschirm, eine Maus oder ein Mikrofon beinhalten.
  • Ein Eingabe-Port 1620 kann eine ontologische Darstellung der Daten in der abzufragenden Datenbank empfangen 1520, wobei die ontologische Darstellung die Namen von Tabellen in der Datenbank, Spaltennamen in den Tabellen und Zeilennamen in den Tabellen enthalten kann. Die ontologische Darstellung gibt zum Beispiel an, dass es in der Datenbank eine Tabelle mit der Überschrift „Departments“ („Abteilungen“) gibt, welche die folgenden Spaltennamen aufweist: „department“ („Abteilung“), „manager name“ („Name des Abteilungsleiters), „phone number“ („Telefonnummer“), „mailing address“ („Postadresse“) und „email address“ („eMail-Adresse), sowie die folgenden Zeilennamen: „marketing“ („Marketing“), „legal“ („Recht“), „accounting“ („Buchhaltung“), „advertising“ („Werbung“) und „human resources“ („Personal“). In einem weiteren Beispiel gibt die ontologische Darstellung an, dass es in der Datenbank eine Tabelle mit der Überschrift „Employees“ („Mitarbeiter“) gibt, welche die folgenden Spaltennamen aufweist: „employee“ („Mitarbeiter“), „employee number“ („Mitarbeiterzahl“), „start date“ („Eintrittsdatum“), „manager name“ („Name des Abteilungsleiters“), „birthday“ („Geburtstag“), „salary“ („Gehalt“) und „department“ („Abteilung“), sowie die folgenden Zeilennamen: „John Doe“, „Jane Doe“, „John Smith“ und „Jane Smith“.
  • Der Eingabe-Port 1620 kann außerdem Vorlagenregeln (z.B. root=VAR1_has_VAR2 # template rule) empfangen 1530, wobei die Vorlagenregeln sprachabhängige und Ontologie-unabhängige, weit verbreitete Konstrukte einer Sprache sind. Bei mindestens einer Ausführungsform beinhalten die Vorlagenregeln eine erste Variable, einen Konnektor und eine zweite Variable, wobei die erste Variable ein Objekt (Substantiv) ist, der Konnektor entweder ein Verb (z.B. „has“ (hat)) oder eine Präposition (z.B. „in“) ist, und die zweite Variable ein Subjekt (Substantiv) ist.
  • Eine Regelerzeugungseinheit 1630 kann mit der ontologischen Darstellung der Daten in der Datenbank und den Vorlagenregeln automatisch Regeln (z.B. root=employee_has_department) erzeugen 1540, um Entitäten und Beziehungen in der natürlichsprachlichen Abfrage zu identifizieren. Der Begriff „automatisch“ kann hier ein Durchführen einer Aktion ohne menschliche Interaktion beinhalten (z.B. ein Durchführen eines Prozessschrittes ohne eine direkte und ausdrückliche Aufforderung durch einen Menschen, die Aktion durchzuführen). Die Regelerzeugungseinheit 1630 kann mit der Schnittstelle 1610 und/oder dem Eingabe-Port 1620 verbunden sein. Bei mindestens einer Ausführungsform beinhaltet das Erzeugen der Regeln ein Ersetzen der ersten Variable einer Vorlagenregel durch einen der Spaltennamen (z.B. employee) und ein Ersetzen der zweiten Variable der Vorlagenregel durch einen weiteren der Spaltennamen (z.B. department). Somit werden bei der Vorlagenregel „root=VAR1_has_VAR2 # template rule“ zum Beispiel „VAR1“ und „VAR2“ durch die Spaltennamen „employee“ bzw. „department“ ersetzt, um die Regel „root=employee_has_department“ zu erzeugen.
  • Ein Prozessor 1640 kann mit der Regelerzeugungseinheit 1630 verbunden sein, um mit den Regeln Entitäten und Beziehungen in der natürlichsprachlichen Abfrage zu identifizieren 1550. Bei der natürlichsprachlichen Abfrage „What are the names of employees in the marketing department?“ („Wie lauten die Namen der Mitarbeiter in der Marketingabteilung?“) identifiziert die Regelerzeugungseinheit zum Beispiel die Entitäten „employees“ („Mitarbeiter“) und „department“ („Abteilung“) und die Beziehungen „table name = employees“ und „table name = departments“.
  • Eine Abfrageerzeugungseinheit 1650 kann mit dem Prozessor 1640 verbunden sein, um aus den Entitäten und Beziehungen die Abfrage mittels einer strukturierten Datenabfragesprache zu erzeugen 1560. Die Begriffe „Eingabe-Port“, „Regelerzeugungseinheit“, „Prozessor“ und „Abfrageerzeugungseinheit“ können hier eine Computerhardware-Einheit wie z.B. einen Mikroprozessor, eine Zentraleinheit (Central Processing Unit, CPU), einen Server, eine elektronische Datenbank usw. beinhalten.
  • Bei mindestens einer Ausführungsform der Erfindung erzeugt die Abfrageerzeugungseinheit 1650 automatisch Synonyme von mindestens einer der Entitäten. So erzeugt die Abfrageerzeugungseinheit zum Beispiel für die Entität „employee“ automatisch die Synonyme „staff“ („Personal“), „worker“ („Arbeiter“) und „associate“ („Angehöriger“). Die Abfrageerzeugungseinheit kann die Abfrage mittels einer strukturierten Datenabfragesprache aus den Synonymen der Entitäten erzeugen.
  • 17 ist ein Ablaufplan, der ein Verfahren zum Abfragen einer Datenbank gemäß einer Ausführungsform der Erfindung veranschaulicht; und 18 ist eine Darstellung, die ein System 1800 zum Abfragen einer Datenbank gemäß einer Ausführungsform der Erfindung veranschaulicht. Das in 17 veranschaulichte Verfahren kann unter Verwendung des Systems 1800 durchgeführt werden. Eine Schnittstelle 1810 empfängt von einem Benutzer eine natürlichsprachliche Abfrage 1710. So kann ein Benutzer zum Beispiel unter Verwendung eines berührungsempfindlichen Bildschirms einer mobilen Einheit eine Frage eintippen.
  • Eine mit der Schnittstelle 1810 verbundene Parsereinheit 1820 kann mehrere Abhängigkeitsanalysen der natürlichsprachlichen Abfrage erzeugen 1720 (z.B. 10A, 10B). Die Erzeugung der mehreren Abhängigkeitsanalysen kann ein Unterteilen der natürlichsprachlichen Abfrage in mehrere Bestandteile beinhalten 1722. So wird die natürlichsprachliche Abfrage „What are names of employees travelling today“ („Wie lauten die Namen der Mitarbeiter, die heute verreisen?“) zum Beispiel in sieben (7) Bestandteile unterteilt: „What“ („Wie“); „are“ („lauten“); „names“ („Namen“); „of“ („der“); „employees“ („Mitarbeiter“); „travelling“ („verreisen“); und „today“ („heute“).
  • Das Erzeugen der mehreren Abhängigkeitsanalysen kann auch ein Erzeugen einer einzelnen Abhängigkeitsanalyse beinhalten, indem jeder Bestandteil der Bestandteile mit einem oder mehreren anderen Bestandteilen der Bestandteile verbunden wird 1724. Die 10A und 10B veranschaulichen jeweils eine einzelne Abhängigkeitsanalyse. In 10A werden direkte Verknüpfungen zwischen den Bestandteilen „What“ („Wie“) und „are“ („lauten“), „are“ und „names“ („Namen“), „names“ und „of“ („der“), „of“ und „employees“ („Mitarbeiter“), „employees“ und „travelling“ („verreisen“) sowie „travelling“ und „today“ („heute“) hergestellt. In 10B werden direkte Verknüpfungen zwischen den Bestandteilen „What“ („Wie“) und „are“ („lauten“), „are“ und „names“ („Namen“), „names“ und „of“ („der“), „of“ und „employees“ („Mitarbeiter“), „names“ und „travelling“ („verreisen“) sowie „travelling“ und „today“ („heute“) hergestellt. Das Erzeugen der mehreren Abhängigkeitsanalysen kann ein Identifizieren der der Wortart eines jeden Bestandteils (z.B. Substantiv, Verb, Adverb, Adjektiv) beinhalten. Bei mindestens einer Ausführungsform beinhaltet das Verbinden eines jeden Bestandteils mit einem oder mehreren anderen Bestandteilen ein Erzeugen einer direkten Verknüpfung zwischen einem Substantiv und einem Verb und/oder einem Adverb (z.B. „employees“ und „travelling“). Eine direkte Verknüpfung kann auch zwischen einem Verb und zwei Substantiven hergestellt werden.
  • Bei mindestens einer Ausführungsform der Erfindung kann das Erzeugen der mehreren Abhängigkeitsanalysen der natürlichsprachlichen Abfrage beinhalten, jedes Substantiv in der natürlichsprachlichen Abfrage zu identifizieren und jedes Substantiv in der natürlichsprachlichen Abfrage mit jedem anderen Substantiv in der natürlichsprachlichen Abfrage in mehreren anderen Abhängigkeitsanalysen zu verbinden. Die Substantive können über Verben mit den anderen Substantiven verbunden sein. Die Anzahl der mehreren Abhängigkeitsanalysen kann größer als die Anzahl der Wörter in der natürlichsprachlichen Abfrage sein. Bei mindestens einer Ausführungsform ist keine der mehreren Abhängigkeitsanalysen identisch.
  • Ein Prozessor 1830 kann mit der Parsereinheit 1820 verbunden sein, wobei der Prozessor 1830 auf alle Abhängigkeitsanalysen Regeln anwenden kann, um Entitäten und Beziehungen in der natürlichsprachlichen Abfrage zu identifizieren 1730. Die Begriffe „Prozessor“, und „Parsereinheit“ können hier eine Computerhardware-Einheit wie z.B. einen Mikroprozessor, eine CPU usw. beinhalten.
  • Das Anwenden der Regeln auf alle der mehreren Abhängigkeitsanalysen, um Entitäten und Beziehungen in der natürlichsprachlichen Abfrage zu identifizieren, kann ein Erhalten einer Regel mit einem oder mehreren Substantiven und einem oder mehreren Verben beinhalten. Wenn ein Substantiv der Regel mit einem Substantiv in der ersten der mehreren Abhängigkeitsanalysen übereinstimmt, kann das Substantiv in der ersten der mehreren Abhängigkeitsanalysen als eine Entität identifiziert werden. Wenn ein Verb der Regel mit einem Verb in der ersten der mehreren Abhängigkeitsanalysen übereinstimmt, kann das Verb in der ersten der mehreren Abhängigkeitsanalysen als eine Beziehung identifiziert werden. Mit Blick auf die in den 10A und 10B veranschaulichten Analysen für die natürlichsprachliche Abfrage „What are the names of employees traveling today?“ („Wie lauten die Namen der Mitarbeiter, die heute verreisen?“) können zum Beispiel die Regeln „employee_has_name“ und „employee_travels_on_a_date“ auf jede der Analysen angewendet werden, um die Entitäten „employee name“ („Mitarbeitername“), und „date“ („Datum“) und die Beziehung „travel“ („verreisen“) zu identifizieren.
  • Bei mindestens einer Ausführungsform der Erfindung wird in einer oder mehreren der mehreren Abhängigkeitsanalysen ein Qualifikationsmerkmal identifiziert, das nicht mit einer Entität verbunden ist, wobei das Qualifikationsmerkmal einen numerischen Vergleich (z.B. „price is greater than $100“ („Preis ist größer als 100 $“)), einen Datumsvergleich (z.B. „widget was bought after Januar 2011“ („Gerät wurde nach Januar 2011 gekauft“)) und/oder einen zeitlichen Vergleich (z.B. „market closes before 5.00“ („Markt schließt vor 17.00 Uhr“)) beinhaltet. In solchen Fällen kann der Prozessor 1830 automatisch die Entität identifizieren, die mit dem Qualifikationsmerkmal verbunden ist, und/oder eine Frage an einen Benutzer senden, die den Benutzer auffordert, die mit dem Qualifikationsmerkmal verbundene Entität zu identifizieren.
  • Der Fachmann weiß, dass Aspekte der vorliegenden Erfindung als ein System, Verfahren oder Computerprogrammprodukt ausgeführt werden können. Entsprechend können Aspekte der vorliegenden Erfindung in Gestalt einer vollständig in Hardware realisierten Ausführungsform oder in Gestalt einer Ausführungsform vorliegen, die Software- und Hardware-Aspekte vereint, welche zusammenfassend hier als eine „Schaltung“, ein „Modul“ oder ein „System“ bezeichnet werden können. Zudem können Aspekte der vorliegenden Erfindung in Gestalt eines Computerprogrammprodukts vorliegen, das in einem oder mehreren computerlesbaren Medien ausgeführt ist, auf denen computerlesbarer Programmcode enthalten ist.
  • Dabei kann eine beliebige Kombination aus einem oder mehreren computerlesbaren Medien genutzt werden. Das computerlesbare Medium kann ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium sein. Ein computerlesbares Speichermedium kann z.B. ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem bzw. eine entsprechende Vorrichtung oder Einheit oder aber eine beliebige geeignete Kombination der vorgenannten Elemente sein, ohne jedoch auf diese beschränkt zu sein. Konkretere Beispiele des computerlesbaren Speichermediums würden Folgendes beinhalten (wobei dies eine nicht vollständige Liste darstellt): eine elektrische Verbindung mit einem oder mehreren Leitern, eine tragbare Computerdiskette, eine Festplatte, einen Direktzugriffsspeicher (RAM), einen Festwertspeicher (ROM), einen löschbaren, programmierbaren Nur-LeseSpeicher (EPROM- oder Flash-Speicher), einen Lichtwellenleiter, einen tragbaren Compact-Disc-Festwertspeicher (CD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder eine beliebige geeignete Kombination der vorgenannten Elemente. In Verbindung mit diesem Dokument kann ein computerlesbares Speichermedium jedes physische Medium sein, das ein Programm enthalten oder speichern kann, welches von oder in Zusammenhang mit einem der Befehlsausführung dienenden System, einer Vorrichtung oder Einheit verwendet wird.
  • Ein computerlesbares Signalmedium kann ein weitergeleitetes Datensignal mit darin enthaltenem computerlesbarem Programmcode enthalten, z.B. als Basisband oder als Teil einer Trägerwelle. Ein derartiges weitergeleitetes Signal kann eine beliebige Form von unterschiedlichen Formen annehmen, einschließlich, ohne auf diese beschränkt zu sein, eine elektromagnetische Form, eine optische Form oder auch jede geeignete Kombination derselben. Ein computerlesbares Signalmedium kann ein beliebiges computerlesbares Medium sein, das kein computerlesbares Speichermedium ist und das ein Programm übermitteln, weiterleiten oder übertragen kann, welches für die Nutzung durch oder in Verbindung mit einem/einer der Befehlsausführung dienenden System, Vorrichtung oder Einheit vorgesehen ist.
  • Auf einem computerlesbaren Medium enthaltener Programmcode kann unter Verwendung eines beliebigen geeigneten Mediums übertragen werden, einschließlich, ohne auf diese beschränkt zu sein, drahtlose, drahtgebundene, Lichtwellenleiterkabel-, HF- und andere Medien oder eine beliebige Kombination derselben.
  • Computerprogrammcode zum Ausführen von Arbeitsschritten für Aspekte der vorliegenden Erfindung kann in einer beliebigen Kombination von einer oder mehreren Programmiersprachen wie z.B. einer objektorientierten Programmiersprache wie Java, Smalltalk, C++ oder dergleichen, sowie in herkömmlichen prozeduralen Programmiersprachen wie z.B. der Programmiersprache „C“ oder ähnlichen Programmiersprachen geschrieben sein. Der Programmcode kann vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder aber vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. Im letztgenannten Szenario kann der entfernt angeordnete Computer über eine beliebige Art von Netzwerk, unter anderem ein LAN oder ein WAN, mit dem Computer des Benutzers verbunden sein, oder die Verbindung kann mit einem externen Computer (z.B. über das Internet unter Verwendung eines Internet-Dienstanbieters) hergestellt werden.
  • Aspekte der vorliegenden Erfindung werden hier unter Bezugnahme auf Darstellungen von Ablaufplänen und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Dabei dürfte klar sein, dass jeder Block der Ablaufplan-Darstellungen und/oder Blockschaubilder sowie Kombinationen von Blöcken in den Ablaufplan-Darstellungen und/oder Blockschaubildern durch Computerprogrammbefehle realisiert werden kann/können. Diese Computerprogrammbefehle können einem Prozessor eines Universalcomputers, Spezialcomputers oder einer anderweitigen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die Befehle, die über den Prozessor des Computers oder der anderweitigen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, ein Mittel erzeugen, mit dem die Funktionen/Handlungen realisiert werden können, die in dem Block bzw. den Blöcken des Ablaufplans und/oder Blockschaubilds angegeben werden.
  • Diese Computerprogrammbefehle können auch auf einem computerlesbaren Medium gespeichert werden, das einen Computer, eine anderweitige programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten anweisen kann, auf eine bestimmte Art und Weise zu funktionieren, so dass die auf dem computerlesbaren Medium gespeicherten Befehle einen Herstellungsgegenstand hervorbringen, der Befehle aufweist, mit denen die Funktion/Handlung, die in dem Block bzw. den Blöcken des Ablaufplans und/oder Blockschaubilds angegeben ist, realisiert wird.
  • Die Computerprogrammbefehle können zudem in einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten geladen werden, um zu veranlassen, dass eine Reihe von Betriebsschritten auf dem Computer, der anderen programmierbaren Datenvorrichtung oder den anderen Einheiten ausgeführt wird, so dass die Befehle, die auf dem Computer oder der anderen Datenverarbeitungsvorrichtung ausgeführt werden, Prozesse bereitstellen, mit denen die in dem Block bzw. den Blöcken des Ablaufplans und/oder Blockschaubilds angegebenen Funktionen/Handlungen realisiert werden.
  • Mit Blick auf 19 wird eine repräsentative Hardwareumgebung zum Realisieren von mindestens einer Ausführungsform der Erfindung dargestellt. Diese schematische Darstellung veranschaulicht eine Hardwarekonfiguration eines Datenverarbeitungs-/Computersystems gemäß mindestens einer Ausführungsform der Erfindung. Das System weist mindestens einen Prozessor oder eine CPU 710 auf. Die CPUs 710 sind über einen Systembus 712 mit verschiedenen Einheiten wie einem RAM 714, einem ROM 716 und einem Eingabe-/Ausgabe(E/A)-Adapter 718 verbunden. Der E/A-Adapter 718 kann mit Peripherieeinheiten wie z.B. Festplatteneinheiten 711 und Bandlaufwerken 713 oder anderen Programmspeichereinheiten verbunden sein, die durch das System lesbar sind. Das System kann die Befehle der Erfindung in Programmspeichereinheiten lesen und diese Befehle befolgen, um die Methodik von mindestens einer Ausführungsform der Erfindung auszuführen. Das System beinhaltet des Weiteren einen Benutzerschnittstellenadapter 719, der eine Tastatur 715, eine Maus 717, einen Lautsprecher 724, ein Mikrofon 722 und/oder andere Benutzerschnittstelleneinheiten wie z.B. eine (nicht gezeigte) Berührungsbildschirm-Einheit mit dem Bus 712 verbindet, um eine Benutzereingabe zu erfassen. Zusätzlich verbindet ein Datenübertragungsadapter 720 den Bus 712 mit einem Datenverarbeitungsnetzwerk 725, und ein Anzeigeadapter 721 verbindet den Bus 712 mit einer Anzeigeeinheit 723, die als eine Ausgabeeinheit wie zum Beispiel ein Bildschirm, ein Drucker oder ein Sender enthalten sein kann.
  • Der Ablaufplan und die Blockschaubilder in den Figuren veranschaulichen die Architektur, Funktionalität und den Betrieb möglicher Realisierungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. Somit kann jeder Block der Ablaufpläne oder Blockschaubilder ein Modul, Segment oder einen Code-Teil darstellen, der einen oder mehrere ausführbare Befehle aufweist, mit denen sich die eine oder mehreren angegebenen logischen Funktionen realisieren lassen. Zu beachten ist ferner, dass bei manchen alternativen Ausführungsformen die in dem Block erwähnten Funktionen in einer anderen Reihenfolge als der in den Figuren genannten auftreten können. So können zwei aufeinanderfolgend dargestellte Blöcke tatsächlich im Wesentlichen gleichzeitig stattfinden, oder die Blöcke können mitunter in umgekehrter Reihenfolge ausgeführt werden, wobei dies abhängig von der betreffenden Funktionalität ist. Zu erwähnen ist ebenfalls, dass jeder Block der Blockschaubilder und/oder der Ablaufplan-Darstellungen sowie Kombinationen von Blöcken in den Blockschaubildern und/oder der Ablaufplan-Darstellungen durch Spezialsysteme auf Hardwaregrundlage, welche die angegebenen Funktionen oder Handlungen oder Kombinationen hiervon ausführen, oder durch Kombinationen von Spezial-Hardware- und Computerbefehlen realisiert werden kann/können.
  • Obwohl diese Offenbarung eine ausführliche Beschreibung der Cloud-Datenverarbeitung beinhaltet, sollte vorab klar sein, dass die Realisierung der hier dargelegten Lehren nicht auf eine Cloud-Datenverarbeitungsumgebung beschränkt ist. Vielmehr können Ausführungsformen der vorliegenden Erfindung in Verbindung mit jeder anderen Art von Datenverarbeitungsumgebung nach dem derzeitigen oder künftigen Stand der Technik realisiert werden.
  • Eine Cloud-Datenverarbeitung ist ein Modell einer Dienstbereitstellung, um einen komfortablen, bedarfsgesteuerten Netzwerkzugriff auf einen gemeinsam genutzten Vorrat von konfigurierbaren Datenverarbeitungsressourcen (z.B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Arbeitsspeicher, Speicher, Anwendungen, virtuelle Maschinen und Dienste) zu ermöglichen, die mit möglichst geringem Verwaltungsaufwand und möglichst wenig Interaktion mit einem Anbieter des Dienstes schnell bereitgestellt und freigegeben werden können. Dieses Cloud-Modell kann z.B. mindestens fünf Merkmale, mindestens drei Dienstmodelle und mindestens vier Bereitstellungsmodelle beinhalten.
  • Die Merkmale lauten wie folgt:
  • Bedarfsgesteuerte Selbstbedienung: Ein Cloud-Verbraucher kann sich einseitig und automatisch nach Bedarf Datenverarbeitungsfähigkeiten wie z.B. Serverzeit und Netzwerkspeicher bereitstellen, ohne dass hierfür eine menschliche Interaktion mit dem Anbieter des Dienstes notwendig ist.
  • Breiter Netzwerkzugriff: Fähigkeiten werden über ein Netzwerk zur Verfügung gestellt und über Standardmechanismen zugeordnet, die eine Verwendung durch verschiedenartige Thin- oder Thick-Client-Plattformen ermöglichen (z.B. Mobiltelefone, Laptops und PDAs).
  • Ressourcenbündelung: Die Datenverarbeitungsressourcen des Anbieters sind gebündelt, um unter Verwendung eines Multi-Tenant-Modells mehreren Verbrauchern bereitzustehen, wobei verschiedene physische und virtuelle Ressourcen dynamisch nach Bedarf zugewiesen bzw. neu zugewiesen werden. Standortunabhängigkeit ist insofern gegeben, als der Verbraucher im Allgemeinen den genauen Standort der bereitgestellten Ressourcen weder kontrolliert noch kennt, jedoch unter Umständen in der Lage ist, auf einer höheren Abstraktionsebene (z.B. Land, Bundesland oder Rechenzentrum) einen Standort festzulegen.
  • Flexible Anpassungsfähigkeit: Fähigkeiten lassen sich schnell und elastisch (in einigen Fällen automatisch) bereitstellen, um eine rasche Skalierung nach oben zu ermöglichen, sowie - für eine rasche Skalierung nach unten - schnell wieder freigegeben zu werden. Für den Verbraucher scheinen die zur Bereitstellung verfügbaren Fähigkeiten häufig unbegrenzt zu sein und können jederzeit in jeder beliebigen Menge erworben werden.
  • Dienstmessung: Cloud-Systeme kontrollieren und optimieren die Ressourcennutzung automatisch, indem sie in einer bestimmten, der Art des Dienstes angemessenen Abstraktionsschicht eine Messfunktion nutzen (z.B. Speicherung, Verarbeitung, Bandbreite und aktive Benutzerkonten). Die Ressourcennutzung kann überwacht, kontrolliert und protokolliert werden, wodurch sowohl für den Anbieter als auch für den Verbraucher des genutzten Dienstes Transparenz bereitgestellt wird.
  • Die Dienstmodelle lauten wie folgt:
  • Software as a Service (SaaS): Die dem Verbraucher bereitgestellte Fähigkeit besteht darin, die in einer Cloud-Infrastruktur ausgeführten Anwendungen des Anbieters zu verwenden. Der Zugriff auf die Anwendungen kann über eine Thin-Client-Schnittstelle wie z.B. einen Webbrowser von verschiedenen Client-Einheiten aus erfolgen (z.B. eine eMail-Nachricht auf Grundlage des Webs). Mit Ausnahme beschränkter benutzerspezifischer Einstellungen der Anwendungskonfiguration wird die darunterliegende Cloud-Infrastruktur wie Netzwerk, Server, Betriebssysteme, Speicher oder auch einzelne Anwendungsfunktionen vom Verbraucher weder verwaltet noch kontrolliert.
  • Platform as a Service (PaaS): Die dem Verbraucher bereitgestellte Fähigkeit besteht darin, vom Benutzer erzeugte oder erworbene Anwendungen, die anhand von vom Anbieter bereitgestellten Programmiersprachen und Werkzeugen erstellt wurden, in der Cloud-Infrastruktur bereitzustellen. Die darunterliegende Infrastruktur wie Netzwerke, Server, Betriebssysteme oder Speicher wird vom Verbraucher weder verwaltet noch kontrolliert, er hat jedoch die Kontrolle über die bereitgestellten Anwendungen und möglicherweise über Konfigurationen der Hosting-Umgebung für die Anwendungen.
  • Infrastructure as a Service (IaaS): Die dem Verbraucher bereitgestellte Fähigkeit besteht darin, Verarbeitung, Speicher, Netzwerke und andere grundlegende Datenverarbeitungsressourcen bereitzustellen, wobei der Verbraucher in der Lage ist, frei wählbare Software wie z.B. Betriebssysteme und Anwendungen bereitzustellen und auszuführen. Die darunterliegende Cloud-Infrastruktur wird vom Verbraucher weder verwaltet noch kontrolliert, er hat jedoch die Kontrolle über Systeme und Einheiten (z.B. Betriebssysteme, Speicher, bereitgestellte Anwendungen usw.) und möglicherweise eingeschränkte Kontrolle über ausgewählte Netzwerkkomponenten (z.B. Host-Firewalls).
  • Die Bereitstellungsmodelle lauten wie folgt:
  • Private Cloud: Die Cloud-Infrastruktur wird lediglich für eine Organisation betrieben. Sie kann von der Organisation selbst oder von einem Dritten verwaltet werden und sich an Ort und Stelle oder an einem anderen Ort befinden.
  • Gemeinschafts-Cloud: Die Cloud-Infrastruktur wird von mehreren Organisationen gemeinsam genutzt und unterstützt eine spezifische Gemeinschaft mit gemeinsamen Anliegen (z.B. Aufgabe, Sicherheitsanforderungen, Richtlinie und Einhaltung von Gesetzen und Richtlinien). Sie kann von den Organisationen selbst oder von einem Dritten verwaltet werden und sich an Ort und Stelle oder an einem anderen Ort befinden.
  • Öffentliche Cloud: Die Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einer großen Branchengruppe bereitgestellt und ist Eigentum einer Organisation, die Cloud-Dienste verkauft.
  • Hybrid-Cloud: Die Cloud-Infrastruktur ist eine Zusammensetzung aus zwei oder mehr (privaten, Gemeinschafts- oder öffentlichen) Clouds, die eigenständige Einheiten bleiben, aber durch eine standardisierte oder herstellerspezifische Technologie miteinander verbunden sind, die eine Portierbarkeit von Daten und Anwendungen ermöglicht (z.B. das Cloud Bursting für den Lastausgleich zwischen Clouds).
  • Eine Cloud-Datenverarbeitungsumgebung ist dienstorientiert, wobei der Schwerpunkt auf Zustandslosigkeit, geringer Kopplung, Modularität und semantischer Kompatibilität liegt. Im Mittelpunkt einer Cloud-Datenverarbeitung steht eine Infrastruktur, die ein Netzwerk von miteinander verbundenen Knoten aufweist.
  • Mit Blick auf 20 wird eine schematische Darstellung eines Beispiels für einen Cloud-Datenverarbeitungsknoten gezeigt. Ein Cloud-Datenverarbeitungsknoten 10 ist lediglich ein Beispiel für einen geeigneten Cloud-Datenverarbeitungsknoten und nicht als eine wie auch immer geartete Beschränkung von Verwendungsumfang oder Funktionalität von Ausführungsformen der hier beschriebenen Erfindung gedacht. Unabhängig davon kann der Cloud-Datenverarbeitungsknoten 10 mit jeder hier dargelegten Funktionalität realisiert sein und/oder diese durchführen.
  • In dem Cloud-Datenverarbeitungsknoten 10 gibt es ein Computersystem/einen Server 12, das bzw. der mit zahlreichen anderen Universal- oder Spezialsystemumgebungen oder -konfigurationen betrieben werden kann. Beispiele bekannter Datenverarbeitungssysteme, -umgebungen und/oder -konfigurationen, die für eine Verwendung mit einem Computersystem/Server 12 geeignet sein könnten, sind Personal-Computersysteme, Server-Computersysteme, Thin Clients, Thick Clients, Taschen- oder Laptop-Einheiten, Mehrprozessorsysteme, Systeme auf Grundlage von Mikroprozessoren, Set-Top-Boxen, programmierbare Unterhaltungselektronik, Netzwerk-PCs, Mini-Computersysteme, Mainframe-Computersysteme sowie verteilte Cloud-Datenverarbeitungsumgebungen, die irgendeine/s der obigen Systeme oder Einheiten beinhalten, und dergleichen, ohne jedoch darauf beschränkt zu sein.
  • Das Computersystem/der Server 12 lässt sich im allgemeinen Zusammenhang von Befehlen beschreiben, die durch ein Computersystem ausführbar sind, wie z.B. Programmmodule, die von einem Computersystem ausgeführt werden. Allgemein können Programmmodule Routinen, Programme, Objekte, Komponenten, Logik, Datenstrukturen usw. beinhalten, die bestimmte Aufgaben durchführen oder bestimmte abstrakte Datentypen realisieren. Das Computersystem/der Server 12 kann in verteilten Cloud-Datenverarbeitungsumgebungen eingesetzt werden, wo Aufgaben von entfernt angeordneten Verarbeitungseinheiten durchgeführt werden, die über ein Datenübertragungsnetzwerk miteinander verbunden sind. In einer verteilten Cloud-Datenverarbeitungsumgebung können sich Programmmodule sowohl in lokalen als auch in entfernt angeordneten Computersystem-Speichermedien wie beispielsweise Arbeitsspeichereinheiten befinden.
  • 20 zeigt das Computersystem/den Server 12 in dem Cloud-Datenverarbeitungsknoten 10 als eine Universal-Datenverarbeitungseinheit. Die Komponenten des Computersystems/Servers 12 können eine/n oder mehrere Prozessoren oder Verarbeitungseinheiten 16, einen Systemarbeitsspeicher 28 und einen Bus 18 beinhalten, der verschiedene Systemkomponenten wie z.B. den Systemarbeitsspeicher 28 mit dem Prozessor 16 verbindet, ohne jedoch darauf beschränkt zu sein.
  • Der Bus 18 steht für mindestens eine von mehreren Arten von Busstrukturen, z.B. ein Speicherbus oder eine Arbeitsspeicher-Steuereinheit, ein Peripheriebus, ein Accelerated Graphics Port (AGP) und ein Prozessor- oder lokaler Bus, wobei eine beliebige aus einer Vielfalt von Busarchitekturen verwendet werden kann. Beispielhaft und nicht als Beschränkung zu verstehen, beinhalten derartige Architekturen den ISA-Bus (Industry Standard Architecture), den MCA-Bus (Micro Channel Architecture), den EISA-Bus (Enhanced ISA), den lokalen VESA-Bus (Video Electronics Standards Association) und den PCI-Bus (Peripheral Component Interconnect).
  • Das Computersystem/der Server 12 beinhaltet üblicherweise eine Vielfalt von Medien, die von einem Computersystem gelesen werden können. Derartige Medien können beliebige verfügbare Medien sein, auf die das Computersystem/der Server 12 zugreifen kann, und zu ihnen zählen sowohl flüchtige als auch nicht flüchtige, entfernbare und nicht entfernbare Medien.
  • Der Systemarbeitsspeicher 28 kann ein von einem Computersystem lesbares Medium in Form eines flüchtigen Arbeitsspeichers wie z.B. eines RAM 30 und/oder eines Caches 32 beinhalten. Das Computersystem/der Server 12 kann des Weiteren andere entfernbare/nicht entfernbare, flüchtige/nicht flüchtige Computersystem-Speichermedien beinhalten. Lediglich als Beispiel dienend, kann ein Speichersystem 34 zum Lesen von und Schreiben auf ein nicht entfernbares, nicht flüchtiges magnetisches Medium (das nicht abgebildet ist und das üblicherweise als ein Festplattenlaufwerk bezeichnet wird) bereitgestellt werden. Obwohl hier nicht abgebildet, können ein Magnetplattenlaufwerk zum Lesen von und Schreiben auf eine entfernbare, nicht flüchtige Magnetplatte (z.B. eine Diskette) sowie ein optisches Plattenlaufwerk zum Lesen von oder Schreiben auf eine entfernbare, nicht flüchtige optische Platte wie z.B. einen CD-ROM, einen DVD-ROM oder ein anderes optisches Medium bereitgestellt werden. In diesen Fällen kann jedes Laufwerk über eine oder mehrere Datenmedienschnittstellen mit dem Bus 18 verbunden sein. Wie weiter unten ausführlicher dargestellt und beschrieben, kann der Arbeitsspeicher 28 mindestens ein Programmprodukt mit einem Satz von (z.B. mindestens einem) Programmmodulen beinhalten, wobei diese so konfiguriert sind, dass sie die Funktionen von Ausführungsformen der Erfindung durchführen.
  • Ein Programm/Dienstprogramm 40 mit einem Satz von (mindestens einem) Programmmodulen 42 kann beispielsweise und ohne als Beschränkung verstanden zu werden im Arbeitsspeicher 28 gespeichert sein, ebenso wie ein Betriebssystem, ein oder mehrere Anwendungsprogramme, andere Programmmodule und Programmdaten. Jedes Betriebssysteme, das eine oder die mehreren Anwendungsprogramme, die anderen Programmmodule und die Programmdaten oder eine Kombination hiervon können jeweils eine Realisierung einer Netzwerkumgebung beinhalten. Die Programmmodule 42 führen im Allgemeinen die Funktionen und/oder Verfahrensweisen von Ausführungsformen der hier beschriebenen Erfindung aus.
  • Das Computersystem/der Server 12 kann zudem mit einer oder mehreren externen Einheiten 14 Daten austauschen, z.B. mit einer Tastatur, einer Zeigeeinheit, einer Anzeige 24 usw.; mit einer oder mehreren Einheiten, die einem Benutzer gestatten, mit dem Computersystem/Server 12 zu interagieren; und/oder mit beliebigen Einheiten (z.B. Netzwerkkarte, Modem usw.), die dem Computersystem/Server 12 ermöglichen, mit einer oder mehreren anderen Datenübertragungseinheiten Daten auszutauschen. Ein derartiger Datenaustausch kann über Eingabe-/Ausgabe-Schnittstellen (E/A-Schnittstellen) 22 erfolgen. Des Weiteren kann das Computersystem/der Server 12 über einen Netzwerkadapter 20 mit einem oder mehreren Netzwerken Daten austauschen, z.B. mit einem lokalen Netzwerk (Local Area Network, LAN), einem Weitverkehrsnetzwerk (Wide Area Network, WAN) und/oder einem öffentlichen Netzwerk (z.B. dem Internet). Wie dargestellt, tauscht der Netzwerkadapter 20 über den Bus 18 Daten mit den anderen Komponenten des Computersystems/Servers 12 aus. Dabei sollte klar sein, dass - obwohl sie hier nicht abgebildet sind - auch andere Hardware- und/oder Softwarekomponenten in Verbindung mit dem Computersystem/Server 12 verwendet werden könnten. Beispiele hierfür sind, ohne darauf beschränkt zu sein, Mikrocode, Einheitentreiber, redundante Verarbeitungseinheiten, externe Plattenlaufwerksstapel, RAID-Systeme, Bandlaufwerke und Datenarchivierungsspeichersysteme usw.
  • Mit Blick auf 21 ist eine veranschaulichende Cloud-Datenverarbeitungsumgebung 50 dargestellt. Wie gezeigt, weist die Cloud-Datenverarbeitungsumgebung 50 einen oder mehrere Cloud-Datenverarbeitungsknoten 10 auf, mit denen von Cloud-Nutzern verwendete lokale Datenverarbeitungseinheiten wie zum Beispiel ein persönlicher digitaler Assistent (Personal Digital Assistant, PDA) oder ein Mobiltelefon 54A, ein Desktop Computer 54B, ein Laptop Computer 54C und/oder ein Automobil-Computersystem 54N Daten austauschen können. Die Knoten 10 können untereinander Daten austauschen. Sie können in einem oder mehreren Netzwerken, z.B. in privaten, Gemeinschafts-, öffentlichen oder Hybrid-Clouds, wie sie hier weiter oben beschrieben sind, oder in einer Kombination hiervon, physisch oder virtuell zusammengefasst sein (nicht abgebildet). Auf diese Weise kann die Cloud-Datenverarbeitungsumgebung 50 Infrastruktur, Plattformen und/oder Software als Dienste anbieten, für die ein Cloud-Verbraucher keine Ressourcen auf einer lokalen Datenverarbeitungseinheit vorhalten muss. Dabei sollte klar sein, dass die in 21 gezeigten Arten von Datenverarbeitungseinheiten 54A bis N lediglich zur Veranschaulichung gedacht sind und dass die Datenverarbeitungsknoten 10 und die Cloud-Datenverarbeitungsumgebung 50 mit jeder Art von computergestützter Einheit über jede Art von Netzwerk und/oder netzwerkadressierbarer Verbindung (z.B. unter Verwendung eines Webbrowsers) Daten austauschen können.
  • Mit Blick auf 22 wird ein Satz von funktionsbezogenen Abstraktionsschichten gezeigt, der von der Cloud-Datenverarbeitungsumgebung 50 (21) bereitgestellt wird. Dabei sollte von Anfang an klar sein, dass die in 22 gezeigten Komponenten, Schichten und Funktionen lediglich zur Veranschaulichung dienen sollen und Ausführungsformen der Erfindung nicht darauf beschränkt sind. Wie abgebildet, werden die folgenden Schichten und zugehörigen Funktionen bereitgestellt:
  • Eine Hardware- und Softwareschicht 60 enthält Hardware- und Softwarekomponenten. Zu Beispielen von Hardwarekomponenten zählen Großrechner 61; Server 62 auf Grundlage der RISC-Architektur (Reduced Instruction Set Computer); Server 63; Blade-Server 64; Speichereinheiten 65; sowie Netzwerk und Netzwerkkomponenten 66. Bei manchen Ausführungsformen beinhalten Softwarekomponenten Software für Netzwerk-Anwendungsserver 67 und Datenbanksoftware 68.
  • Eine Virtualisierungsschicht 70 stellt eine Abstraktionsschicht bereit, welche die folgenden Beispiele für virtuelle Einheiten zur Verfügung stellen kann: virtuelle Server 71; virtueller Speicher 72; virtuelle Netzwerke 73, die virtuelle private Netzwerke aufweisen; virtuelle Anwendungen und Betriebssysteme 74; sowie virtuelle Clients 75.
  • In einem Beispiel kann eine Verwaltungsschicht 80 die im Folgenden beschriebenen Funktionen bereitstellen. Eine Ressourcenbereitstellungsfunktion 81 stellt eine dynamische Beschaffung von Datenverarbeitungs- und anderen Ressourcen bereit, mit denen Aufgaben innerhalb der Cloud-Datenverarbeitungsumgebung durchgeführt werden. Messungs- und Preisermittlungsfunktionen 82 stellen eine Kostenerfassung bei der Nutzung von Ressourcen innerhalb der Cloud-Datenverarbeitungsumgebung sowie eine Fakturierung bzw. Abrechnung für den Verbrauch dieser Ressourcen bereit. In einem Beispiel können diese Ressourcen Lizenzen für Anwendungssoftware aufweisen. Eine Sicherheitsfunktion stellt eine Identitätsprüfung für Cloud-Verbraucher und -Aufgaben sowie einen Schutz für Daten und andere Ressourcen bereit. Eine Benutzerportalfunktion 83 stellt Verbrauchern und Systemadministratoren einen Zugriff auf die Cloud-Datenverarbeitungsumgebung bereit. Eine Dienstgüteverwaltungsfunktion 84 stellt eine Zuordnung und Verwaltung von Cloud-Datenverarbeitungsressourcen bereit, so dass erforderliche Dienstgütestufen erreicht werden. Eine Planungs- und Ausführungsfunktion 85 von Dienstgütevereinbarungen (Service Level Agreement, SLA) stellt eine Vorabfestlegung und Beschaffung von Cloud-Datenverarbeitungsressourcen bereit, für die gemäß einer SLA eine künftige Anforderung erwartet wird.
  • Eine Auslastungsschicht 90 stellt Beispiele einer Funktionalität bereit, für welche die Cloud-Datenverarbeitungsumgebung genutzt werden kann. Beispiele für Auslastungen und Funktionen, die von dieser Schicht bereitgestellt werden können, lauten: Zuordnung und Navigation 91; Software-Entwicklung und Lebenszyklusverwaltung 92; Bereitstellung von virtuellen Schulungen 93; Datenanalyseverarbeitung 94; Transaktionsverarbeitung 95; und verbesserte eMail-Empfangsbestätigungen auf Grundlage von kognitiven Erwägungen 96.
  • Die hier verwendete Begrifflichkeit dient lediglich zur Beschreibung bestimmter Ausführungsformen und ist nicht als Beschränkung der Erfindung gedacht. Im hier verwendeten Sinne sollen die Singularformen „ein/e/r“ und „der/die/das“ auch die Pluralformen beinhalten, sofern der Kontext dies nicht eindeutig anderweitig vorgibt. Ebenso offensichtlich dürfte sein, dass die Grundformen „beinhalten“ und/oder „haben“ in dieser Patentschrift das Vorhandensein der genannten Merkmale, Ganzzahlen, Schritte, Vorgänge, Elemente und/oder Komponenten angeben, ohne jedoch das Vorhandensein oder die Hinzufügung einer oder mehrerer anderer Merkmale, Ganzzahlen, Schritte, Vorgänge, Elemente, Komponente und/oder Gruppen derselben auszuschließen.
  • Die betreffenden Strukturen, Materialien, Handlungen und Äquivalente aller Mittel zusätzlich zu den Funktionselementen in den nachstehenden Ansprüchen sollen sämtliche Strukturen oder Materialien beinhalten, mit denen die Funktion in Verbindung mit anderen beanspruchten Elementen durchgeführt werden kann, wie sie hier ausdrücklich beansprucht sind. Die Beschreibung der vorliegenden Erfindung wurde zum Zwecke der Veranschaulichung und Erläuterung vorgelegt und ist mit Blick auf die in dieser Form beschriebene Erfindung nicht als vollständig oder beschränkend zu verstehen. Der Fachmann weiß, dass zahlreiche Änderungen und Abwandlungen möglich sind, ohne vom inhaltlichen Umfang und gedanklichen Wesensgehalt der Erfindung abzuweichen. Die Ausführungsform wurde ausgewählt und beschrieben, um die Grundsätze der Erfindung und die praktische Anwendung bestmöglich zu erläutern und um anderen Fachleuten die Möglichkeit zu geben, die Erfindung mit Blick auf verschiedene Ausführungsformen mit verschiedenen Abwandlungen zu verstehen, wie sie für die jeweilige, in Erwägung gezogene Verwendung geeignet sind.

Claims (26)

  1. Verfahren zum Erzeugen einer Abfrage mittels einer strukturierten Datenabfragesprache, wobei das Verfahren aufweist: Empfangen einer natürlichsprachlichen Abfrage von einem Benutzer mit einer Schnittstelle; Empfangen einer ontologischen Darstellung von Daten in einer Datenbank mit einem Eingabe-Port, wobei die ontologische Darstellung der Daten in der Datenbank Namen von Tabellen in der Datenbank, Spaltennamen in den Tabellen und Zeilennamen in den Tabellen enthält; Empfangen von Vorlagenregeln mit dem Eingabe-Port, wobei die Vorlagenregeln sprachabhängig und Ontologie-unabhängig sind, wobei die Vorlagenregeln weit verbreitete Konstrukte einer Sprache beinhalten; automatisches Erzeugen von Regeln mit einer Regelerzeugungseinheit, die mit der Schnittstelle und dem Eingabe-Port verbunden ist, wobei die Regeln mit der ontologischen Darstellung der Daten in der Datenbank und den Vorlagenregeln erzeugt werden, um Entitäten und Beziehungen in der natürlichsprachlichen Abfrage zu identifizieren; Identifizieren von Entitäten und Beziehungen mit einem Prozessor, der mit der Regelerzeugungseinheit verbunden ist, wobei die Entitäten und Beziehungen in der natürlichsprachlichen Abfrage mit den Regeln identifiziert werden; und Erzeugen der Abfrage mittels einer strukturierten Datenabfragesprache mit einer Abfrageerzeugungseinheit, die mit dem Prozessor verbunden ist, wobei die Abfrage mittels einer strukturierten Datenabfragesprache aus den Entitäten und Beziehungen erzeugt wird.
  2. Verfahren nach Anspruch 1, wobei eine Vorlagenregel der Vorlagenregeln mindestens eine Variable beinhaltet.
  3. Verfahren nach Anspruch 1, wobei eine Vorlagenregel der Vorlagenregeln eine erste Variable, einen Konnektor und eine zweite Variable beinhaltet.
  4. Verfahren nach Anspruch 3, wobei der Konnektor entweder ein Verb oder eine Präposition beinhaltet.
  5. Verfahren nach Anspruch 3, wobei das Erzeugen der Regeln beinhaltet: Ersetzen der ersten Variable einer Vorlagenregel durch einen der Spaltennamen; und Ersetzen der zweiten Variable der Vorlagenregel durch einen weiteren der Spaltennamen.
  6. Verfahren nach Anspruch 1, des Weiteren aufweisend ein automatisches Erzeugen von Paraphrasen, um eine ontologische Darstellung der Daten zu ergänzen, wobei das automatische Erzeugen der Regeln, um Entitäten und Beziehungen in der natürlichsprachlichen Abfrage zu identifizieren, auf Grundlage der Paraphrasen erfolgt.
  7. Verfahren nach Anspruch 1, des Weiteren aufweisend ein automatisches Erzeugen von Synonymen von mindestens einer der Entitäten, wobei das Erzeugen der Abfrage mittels einer strukturierten Datenabfragesprache des Weiteren ein Erzeugen der Abfrage mittels einer strukturierten Datenabfragesprache aus den Synonymen der Entitäten aufweist.
  8. Verfahren zum Erzeugen einer Abfrage mittels einer strukturierten Datenabfragesprache, wobei das Verfahren aufweist: Empfangen einer natürlichsprachlichen Abfrage von einem Benutzer mit einer Schnittstelle; Empfangen einer ontologischen Darstellung von Daten in einer Datenbank mit einem Eingabe-Port, wobei die ontologische Darstellung der Daten in der Datenbank Namen von Begriffen und Namen von Begriffseigenschaften enthält; Empfangen von Vorlagenregeln mit dem Eingabe-Port, wobei die Vorlagenregeln sprachabhängig und Ontologie-unabhängig sind, wobei die Vorlagenregeln weit verbreitete Konstrukte einer Sprache beinhalten; automatisches Erzeugen von Regeln mit einer Regelerzeugungseinheit, die mit der Schnittstelle und dem Eingabe-Port verbunden ist, wobei die Regeln mit der ontologischen Darstellung der Daten in der Datenbank und den Vorlagenregeln erzeugt werden, um Entitäten und Beziehungen in der natürlichsprachlichen Abfrage zu identifizieren; Identifizieren von Entitäten und Beziehungen mit einem Prozessor, der mit der Regelerzeugungseinheit verbunden ist, wobei die Entitäten und Beziehungen in der natürlichsprachlichen Abfrage mit den Regeln identifiziert werden; und Erzeugen der Abfrage mittels einer strukturierten Datenabfragesprache mit einer Abfrageerzeugungseinheit, die mit dem Prozessor verbunden ist, wobei die Abfrage mittels einer strukturierten Datenabfragesprache aus den Entitäten und Beziehungen erzeugt wird.
  9. Verfahren nach Anspruch 8, wobei die Vorlagenregeln mindestens eine Variable beinhalten.
  10. Verfahren nach Anspruch 8, wobei die Vorlagenregeln eine erste Variable, einen Konnektor und eine zweite Variable beinhalten.
  11. Verfahren nach Anspruch 10, wobei der Konnektor entweder ein Verb oder eine Präposition beinhaltet.
  12. Verfahren nach Anspruch 10, wobei das Erzeugen der Regeln beinhaltet: Ersetzen der ersten Variable einer Vorlagenregel durch einen der Spaltennamen; und Ersetzen der zweiten Variable der Vorlagenregel durch einen weiteren der Spaltennamen.
  13. Verfahren nach Anspruch 10, wobei das Erzeugen der Regeln beinhaltet: Ersetzen der ersten Variable einer Vorlagenregel durch eine der Begriffseigenschaften; und Ersetzen der zweiten Variable der Vorlagenregel durch eine weitere der Begriffseigenschaften.
  14. Verfahren nach Anspruch 8, des Weiteren aufweisend ein automatisches Erzeugen von Paraphrasen, um eine ontologische Darstellung der Daten zu ergänzen, wobei das automatische Erzeugen der Regeln, um Entitäten und Beziehungen in der natürlichsprachlichen Abfrage zu identifizieren, auf Grundlage der Paraphrasen erfolgt.
  15. Verfahren nach Anspruch 8, des Weiteren aufweisend: automatisches Erzeugen von Synonymen von mindestens einer der Entitäten, wobei das Erzeugen der Abfrage mittels einer strukturierten Datenabfragesprache des Weiteren ein Erzeugen der Abfrage mittels einer strukturierten Datenabfragesprache aus den Synonymen der Entitäten aufweist.
  16. Verfahren nach Anspruch 8, wobei die Begriffe Tabellen in der Datenbank beinhalten.
  17. Verfahren nach Anspruch 8, wobei die Begriffseigenschaften Namen von Spalten in den Tabellen beinhalten.
  18. Computerprogrammprodukt, aufweisend: ein computerlesbares Speichermedium mit darauf gespeicherten: ersten Programmbefehlen, die durch eine Einheit ausführbar sind, um die Einheit zu veranlassen, eine natürlichsprachliche Abfrage von einem Benutzer zu empfangen; zweiten Programmbefehlen, die durch die Einheit ausführbar sind, um die Einheit zu veranlassen, eine ontologische Darstellung von Daten in einer Datenbank zu empfangen, wobei die ontologische Darstellung der Daten in der Datenbank Namen von Tabellen in der Datenbank, Spaltennamen in den Tabellen und Zeilennamen in den Tabellen enthält; dritten Programmbefehlen, die durch die Einheit ausführbar sind, um die Einheit zu veranlassen, Vorlagenregeln zu empfangen, wobei die Vorlagenregeln sprachabhängig und Ontologie-unabhängig sind, wobei die Vorlagenregeln weit verbreitete Konstrukte einer Sprache beinhalten; vierten Programmbefehlen, die durch die Einheit ausführbar sind, um die Einheit zu veranlassen, automatisch Regeln zu erzeugen, um Entitäten und Beziehungen in der natürlichsprachlichen Abfrage zu identifizieren, wobei die Regeln mit der ontologischen Darstellung der Daten in der Datenbank und den Vorlagenregeln erzeugt werden; fünften Programmbefehlen, die durch die Einheit ausführbar sind, um die Einheit zu veranlassen, Entitäten und Beziehungen in der natürlichsprachlichen Abfrage mit den Regeln zu identifizieren; und sechsten Programmbefehlen, die durch die Einheit ausführbar sind, um die Einheit zu veranlassen, die Abfrage mittels einer strukturierten Datenabfragesprache aus den Entitäten und Beziehungen zu erzeugen.
  19. Computerprogrammprodukt nach Anspruch 18, wobei die Vorlagenregeln eine erste Variable, einen Konnektor und eine zweite Variable beinhalten und wobei die vierten Programmbefehle die Einheit veranlassen: die erste Variable einer Vorlagenregel durch einen der Spaltennamen zu ersetzen; und die zweite Variable der Vorlagenregel durch einen weiteren der Spaltennamen zu ersetzen.
  20. Computerprogrammprodukt nach Anspruch 18, des Weiteren aufweisend siebte Programmbefehle, die durch die Einheit ausführbar sind, um die Einheit zu veranlassen, automatisch Synonyme von mindestens einer der Entitäten zu erzeugen, wobei die sechsten Programmbefehle die Einheit veranlassen, die Abfrage mittels einer strukturierten Datenabfragesprache aus den Synonymen der Entitäten zu erzeugen.
  21. System zum Erzeugen einer Abfrage mittels einer strukturierten Datenabfragesprache, wobei das System aufweist: eine Schnittstelle, wobei die Schnittstelle dazu dient, eine natürlichsprachliche Abfrage von einem Benutzer zu empfangen; einen Eingabe-Port, wobei der Eingabe-Port dazu dient, Folgendes zu empfangen: eine ontologische Darstellung von Daten in einer Datenbank, wobei die ontologische Darstellung der Daten in der Datenbank Namen von Tabellen in der Datenbank, Spaltennamen in den Tabellen und Zeilennamen in den Tabellen enthält, sowie Vorlagenregeln, wobei die Vorlagenregeln sprachabhängig und Ontologie-unabhängig sind, wobei die Vorlagenregeln weit verbreitete Konstrukte einer Sprache beinhalten; eine Regelerzeugungseinheit, die mit der Schnittstelle und dem Eingabe-Port verbunden ist, wobei die Regelerzeugungseinheit dazu dient, automatisch Regeln zu erzeugen, wobei die Regeln mit der ontologischen Darstellung der Daten in der Datenbank und den Vorlagenregeln erzeugt werden, um Entitäten und Beziehungen in der natürlichsprachlichen Abfrage zu identifizieren; einen Prozessor, der mit der Regelerzeugungseinheit verbunden ist, wobei der Prozessor dazu dient, Entitäten und Beziehungen zu identifizieren, wobei die Entitäten und Beziehungen in der natürlichsprachlichen Abfrage mit den Regeln identifiziert werden; und eine Abfrageerzeugungseinheit, die mit dem Prozessor verbunden ist, wobei die Abfrageerzeugungseinheit dazu dient, die Abfrage mittels einer strukturierten Datenabfragesprache aus den Entitäten und Beziehungen zu erzeugen.
  22. System nach Anspruch 21, wobei eine Vorlagenregel der Vorlagenregeln mindestens eine Variable beinhaltet.
  23. System nach Anspruch 21, wobei eine Vorlagenregel der Vorlagenregeln eine erste Variable, einen Konnektor und eine zweite Variable beinhaltet.
  24. System nach Anspruch 23, wobei der Konnektor entweder ein Verb oder eine Präposition beinhaltet.
  25. System nach Anspruch 23, wobei die Regelerzeugungseinheit die erste Variable einer Vorlagenregel durch einen der Spaltennamen ersetzt und die zweite Variable der Vorlagenregel durch einen weiteren der Spaltennamen ersetzt.
  26. Computerprogramm, aufweisend ein Programmcodemittel, das so gestaltet ist, dass es das Verfahren nach einem beliebigen der Ansprüche 1 bis 17 durchführt, wenn das Programm auf einem Computer ausgeführt wird.
DE112016003626.4T 2015-09-18 2016-09-15 Natürlichsprachliche Schnittstelle zu Datenbanken Pending DE112016003626T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/858,841 2015-09-18
US14/858,841 US9959311B2 (en) 2015-09-18 2015-09-18 Natural language interface to databases
PCT/IB2016/055494 WO2017046729A1 (en) 2015-09-18 2016-09-15 Natural language interface to databases

Publications (1)

Publication Number Publication Date
DE112016003626T5 true DE112016003626T5 (de) 2018-05-03

Family

ID=58282482

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112016003626.4T Pending DE112016003626T5 (de) 2015-09-18 2016-09-15 Natürlichsprachliche Schnittstelle zu Datenbanken

Country Status (6)

Country Link
US (1) US9959311B2 (de)
JP (1) JP6736173B2 (de)
CN (1) CN108027833B (de)
DE (1) DE112016003626T5 (de)
GB (1) GB2557535A (de)
WO (1) WO2017046729A1 (de)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190102390A1 (en) * 2017-09-29 2019-04-04 Novabase Sgps, S.A. Semantic search engine and visualization platform
US11023461B2 (en) * 2018-01-19 2021-06-01 Servicenow, Inc. Query translation
EP3776276A1 (de) * 2018-03-30 2021-02-17 Koninklijke Philips N.V. Systeme und verfahren zur dynamischen erzeugung strukturierter qualitätsindikatoren und deren verwaltung
US20190354851A1 (en) * 2018-05-17 2019-11-21 International Business Machines Corporation Construction of a machine learning model for structured inputs
EP3788503A1 (de) * 2018-07-25 2021-03-10 Oracle International Corporation Schnittstellen von natürlicher sprache für datenbanken unter verwendung von autonomen agenten und thesauri
US10977164B2 (en) * 2018-08-29 2021-04-13 International Business Machines Corporation Automated generation of test cases for analyzing natural-language-interface-to-database systems
US10853395B2 (en) * 2018-09-24 2020-12-01 Salesforce.Com, Inc. Extraction of keywords for generating multiple search queries
CN109271392B (zh) * 2018-10-30 2022-07-26 长威信息科技发展股份有限公司 快速判别和抽取关系型数据库实体及属性的方法及设备
US11188716B2 (en) 2019-01-16 2021-11-30 International Business Machines Corporation Text display with visual distinctions per class
US11528296B2 (en) 2019-02-18 2022-12-13 Bank Of America Corporation Unauthorized data manipulation detection
US20200311057A1 (en) * 2019-03-28 2020-10-01 International Business Machines Corporation Accuracy of qa systems by normalizing logical queries
US11036939B2 (en) * 2019-04-11 2021-06-15 International Business Machines Corporation Data driven approach for automatically generating a natural language processing cartridge
US11409959B2 (en) * 2019-06-14 2022-08-09 Intuit Inc. Representation learning for tax rule bootstrapping
US11151131B2 (en) 2019-07-19 2021-10-19 Bank Of America Corporation Query generation from a natural language input
US11789940B2 (en) * 2019-08-16 2023-10-17 American Express Travel Related Services Company, Inc. Natural language interface to databases
US11640398B2 (en) * 2019-08-16 2023-05-02 Bank Of America Corporation Method and system for data communication with relational database management
WO2021035347A1 (en) * 2019-08-30 2021-03-04 Element Ai Inc. Decision support system for data retrieval
CN112035506A (zh) * 2019-10-28 2020-12-04 竹间智能科技(上海)有限公司 一种语义识别方法及其设备
US11693855B2 (en) * 2019-12-20 2023-07-04 International Business Machines Corporation Automatic creation of schema annotation files for converting natural language queries to structured query language
EP4127970A4 (de) * 2020-03-23 2024-05-01 Sorcero Inc Kontextübergreifende erzeugung eines modells in natürlicher sprache
US11934392B2 (en) 2020-06-10 2024-03-19 Alation, Inc. Method and system for data conversations
US20210390099A1 (en) * 2020-06-10 2021-12-16 Lyngo Analytics Inc. Method and system for advanced data conversations
CN112084346A (zh) * 2020-09-11 2020-12-15 上海飞机制造有限公司 用于航空线缆连接器的孔位信息采集装置及采集方法
US11630833B2 (en) 2020-10-29 2023-04-18 International Business Machines Corporation Extract-transform-load script generation
CN112783921A (zh) * 2021-01-26 2021-05-11 中国银联股份有限公司 一种数据库操作方法及装置
US20220309106A1 (en) * 2021-03-29 2022-09-29 Microsoft Technology Licensing, Llc Natural language query processing and debugging
US11977841B2 (en) 2021-12-22 2024-05-07 Bank Of America Corporation Classification of documents
US20230396496A1 (en) * 2022-06-02 2023-12-07 At&T Intellectual Property I, L.P. Automated rule generation for network functions
EP4303719A1 (de) * 2022-06-30 2024-01-10 Tata Consultancy Services Limited Automatische erzeugung von webanwendungen auf der basis von aus benutzeranforderungen erzeugten wireframe-metadaten
CN117075966B (zh) * 2023-08-31 2024-04-19 中科驭数(北京)科技有限公司 指令处理方法、装置、设备及可读存储介质

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6999963B1 (en) * 2000-05-03 2006-02-14 Microsoft Corporation Methods, apparatus, and data structures for annotating a database design schema and/or indexing annotations
JP2002342361A (ja) * 2001-05-15 2002-11-29 Mitsubishi Electric Corp 情報検索装置
US7403938B2 (en) * 2001-09-24 2008-07-22 Iac Search & Media, Inc. Natural language query processing
US7424701B2 (en) * 2002-02-12 2008-09-09 Sandpiper Software, Inc. Method and apparatus for frame-based knowledge representation in the unified modeling language (UML)
US7752197B2 (en) 2002-10-03 2010-07-06 International Business Machines Corporation SQL query construction using durable query components
US7263517B2 (en) 2002-10-31 2007-08-28 Biomedical Objects, Inc. Structured natural language query and knowledge system
US7747601B2 (en) * 2006-08-14 2010-06-29 Inquira, Inc. Method and apparatus for identifying and classifying query intent
US8612208B2 (en) * 2004-04-07 2013-12-17 Oracle Otc Subsidiary Llc Ontology for use with a system, method, and computer readable medium for retrieving information and response to a query
JP2006004274A (ja) * 2004-06-18 2006-01-05 Nippon Telegr & Teleph Corp <Ntt> 対話処理装置、対話処理方法及び対話処理プログラム
US7853618B2 (en) * 2005-07-21 2010-12-14 The Boeing Company Methods and apparatus for generic semantic access to information systems
CN101136028B (zh) * 2006-07-10 2012-07-04 日电(中国)有限公司 基于自然语言的位置查询系统以及基于关键词的位置查询系统
US7937402B2 (en) * 2006-07-10 2011-05-03 Nec (China) Co., Ltd. Natural language based location query system, keyword based location query system and a natural language and keyword based location query system
US20160004766A1 (en) * 2006-10-10 2016-01-07 Abbyy Infopoisk Llc Search technology using synonims and paraphrasing
EP1918827A1 (de) * 2006-10-31 2008-05-07 British Telecommunications Public Limited Company Datenverarbeitungssystem und Datenverarbeitungsverfahren
US20080235199A1 (en) 2007-03-19 2008-09-25 Yunyao Li Natural language query interface, systems, and methods for a database
US8140556B2 (en) * 2009-01-20 2012-03-20 Oracle International Corporation Techniques for automated generation of queries for querying ontologies
US8983989B2 (en) * 2010-02-05 2015-03-17 Microsoft Technology Licensing, Llc Contextual queries
US11068657B2 (en) * 2010-06-28 2021-07-20 Skyscanner Limited Natural language question answering system and method based on deep semantics
US8862458B2 (en) * 2010-11-30 2014-10-14 Sap Ag Natural language interface
US9471666B2 (en) * 2011-11-02 2016-10-18 Salesforce.Com, Inc. System and method for supporting natural language queries and requests against a user's personal data cloud
DE112012005177T5 (de) * 2011-12-12 2014-08-28 International Business Machines Corporation Erzeugens eines Verarbeitungsmodells für natürliche Sprache für einen Informationsbereich
US8935277B2 (en) * 2012-03-30 2015-01-13 Sap Se Context-aware question answering system
US9280610B2 (en) * 2012-05-14 2016-03-08 Apple Inc. Crowd sourcing information to fulfill user requests
US20130311166A1 (en) 2012-05-15 2013-11-21 Andre Yanpolsky Domain-Specific Natural-Language Processing Engine
US20140039878A1 (en) * 2012-08-01 2014-02-06 Apollo Group, Inc. Symbolic-To-Natural Language Conversion
US8996555B2 (en) 2012-11-26 2015-03-31 Sap Se Question answering framework for structured query languages
EP3055786A4 (de) * 2013-10-09 2017-05-17 Google, Inc. Automatische definition von entitätssammlungen
CN103646032B (zh) 2013-11-11 2017-01-04 漆桂林 一种基于本体和受限自然语言处理的数据库查询方法
US9652451B2 (en) * 2014-05-08 2017-05-16 Marvin Elder Natural language query
US10303798B2 (en) * 2014-12-18 2019-05-28 Nuance Communications, Inc. Question answering from structured and unstructured data sources
US9846901B2 (en) * 2014-12-18 2017-12-19 Nuance Communications, Inc. Product recommendation with ontology-linked product review
CN104657439B (zh) 2015-01-30 2019-12-13 欧阳江 用于自然语言精准检索的结构化查询语句生成系统及方法

Also Published As

Publication number Publication date
GB201805522D0 (en) 2018-05-16
CN108027833A (zh) 2018-05-11
CN108027833B (zh) 2022-04-08
JP2018533126A (ja) 2018-11-08
WO2017046729A1 (en) 2017-03-23
US9959311B2 (en) 2018-05-01
JP6736173B2 (ja) 2020-08-05
US20170083569A1 (en) 2017-03-23
GB2557535A (en) 2018-06-20

Similar Documents

Publication Publication Date Title
DE112016003626T5 (de) Natürlichsprachliche Schnittstelle zu Datenbanken
DE112020003820T5 (de) Erkennung von Anomalien und Abweichungen unter Verwendung eines domänenindizierten Einschränkungs-Repository
US10042921B2 (en) Robust and readily domain-adaptable natural language interface to databases
DE202016005239U1 (de) Graph-basierte Abfragen
US7743071B2 (en) Efficient data handling representations
DE112019001533T5 (de) Erweiterung von trainingsdaten für die klassifikation von natürlicher sprache
DE112017005638T5 (de) Systeme und Verfahren zur Bestimmung der Beziehung zwischen Datenelementen
DE112016002395T5 (de) Zugriffskontrolle für Datenressourcen
DE112018005167T5 (de) Aktualisieren von trainingsdaten
DE112012005177T5 (de) Erzeugens eines Verarbeitungsmodells für natürliche Sprache für einen Informationsbereich
DE112019002235T5 (de) Einbinden eines wörterbuch-bearbeitungssystems in ein text mining
DE112013001308T5 (de) Verwalten von mandantenspezifischen Datensätzen in einer mandantenfähigen Umgebung
US7720831B2 (en) Handling multi-dimensional data including writeback data
DE102014103279A1 (de) Pivot-Facets für Text-Mining und Suche
DE112016005374T5 (de) Identifizieren von Abfragemustern und zugeordneten aggregierten Statistikdaten unter Suchabfragen
DE112019001433T5 (de) Datenanonymisierung
DE112018006131T5 (de) Semantisches normalisieren beim digitalisieren von dokumenten
DE112021000338T5 (de) Auslagern der statistikerfassung
Wang et al. Developing an employee turnover risk evaluation model using case-based reasoning
DE112021004234T5 (de) Einsetzen von metalernen zum optimieren der automatischen auswahl von pipelinesdes maschinellen lernens
DE112021001743T5 (de) Vektoreinbettungsmodelle für relationale tabellen mit null- oder äquivalenten werten
DE112021003031T5 (de) Archivieren von nur-beschleuniger-datenbanktabellen
US10387969B1 (en) Computer implemented methods systems and articles of manufacture for suggestion-based interview engine for tax return preparation application
DE112020004806T5 (de) Cluster-sicherheit auf der grundlage von inhalten virtueller maschinen
CN109558522A (zh) 企业网络图的建立方法、装置和计算机可读存储介质

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0017300000

Ipc: G06F0016000000

R016 Response to examination communication