-
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.