DE112018005813T5 - Erleichterung von domänen- und kundenspezifischen empfehlungen für anwendungsprogramm-schnittstellen - Google Patents

Erleichterung von domänen- und kundenspezifischen empfehlungen für anwendungsprogramm-schnittstellen Download PDF

Info

Publication number
DE112018005813T5
DE112018005813T5 DE112018005813.1T DE112018005813T DE112018005813T5 DE 112018005813 T5 DE112018005813 T5 DE 112018005813T5 DE 112018005813 T DE112018005813 T DE 112018005813T DE 112018005813 T5 DE112018005813 T5 DE 112018005813T5
Authority
DE
Germany
Prior art keywords
computer
application program
entity
client application
ontology
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112018005813.1T
Other languages
English (en)
Inventor
Chen Lin
Anup Kalia
Jin Xiao
Maja Vukovic
Nikolaos Anerousis
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 DE112018005813T5 publication Critical patent/DE112018005813T5/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/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/313Selection or weighting of terms for indexing
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2264Multidimensional index structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/36Creation of semantic tools, e.g. ontology or thesauri
    • G06F16/367Ontology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • G06F18/232Non-hierarchical techniques
    • G06F18/2321Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
    • G06F18/23213Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/088Non-supervised learning, e.g. competitive learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/022Knowledge engineering; Knowledge acquisition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/10Machine learning using kernel methods, e.g. support vector machines [SVM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • Animal Behavior & Ethology (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Machine Translation (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

Es werden Techniken zum Erzeugen von domänen- und kundenspezifischen Empfehlungen für Client-Anwendungsprogramm-Schnittstellen zur Verfügung gestellt. In einem Beispiel umfasst ein computer-implementiertes Verfahren die Änderung einer Beschreibung einer Client-Anwendungsprogramm-Schnittstelle durch eine Vorrichtung, die in Wirkverbindung mit einem Prozessor steht, indem Textdaten, die mit der Beschreibung der Client-Anwendungsprogramm-Schnittstelle verknüpft sind, entfernt werden, was zu einer geänderten Beschreibung der Client-Anwendungsprogramm-Schnittstelle führt. Das computer-implementierte Verfahren kann ferner das Analysieren einer mit der Client-Anwendungsprogramm-Schnittstelle verknüpften Leistung durch das Gerät umfassen, um eine Ontologie zu erzeugen, die auf einer semantischen Ähnlichkeit zwischen der geänderten Beschreibung der Client-Anwendungsprogramm-Schnittstelle und einer oder mehreren vorangehenden Beschreibungen einer oder mehrerer vorangehender Client-Anwendungsprogramm-Schnittstellen basiert.

Description

  • HINTERGRUND
  • Der Gegenstand der Offenlegung bezieht sich auf Abfragen an Anwendungsprogramm-Schnittstellen, und insbesondere auf domänen- und kundenspezifische Empfehlungen für Anwendungsprogramm-Schnittstellen.
  • ZUSAMMENFASSUNG
  • Im Folgenden wird eine Zusammenfassung vorgelegt, um ein grundlegendes Verständnis einer oder mehrerer Ausführungsformen der Offenlegung bereitzustellen. Diese Zusammenfassung ist nicht dazu gedacht, Schlüssel- oder kritische Elemente zu identifizieren oder den Umfang der einzelnen Ausführungsformen oder den Umfang der Ansprüche abzugrenzen. Ihr einziger Zweck besteht darin, die Konzepte in vereinfachter Form als Vorspiel zu der detaillierteren Beschreibung, die weiter unten vorgelegt wird, darzustellen. In einer oder mehreren hierin beschriebenen Ausführungsformen werden Geräte, Systeme, computer-implementierte Verfahren, Vorrichtungen und/oder Computerprogrammprodukte beschrieben, die domänen- und kundenspezifische Empfehlungen für Client-Anwendungsprogramm-Schnittstellen erleichtern.
  • Gemäß einer Ausführungsform kann ein System einen Speicher umfassen, der computerausführbare Komponenten speichert, und einen Prozessor, der die im Speicher gespeicherten computerausführbaren Komponenten ausführt. Die computerausführbaren Komponenten des Systems können eine Vorprozessorkomponente umfassen, die die Beschreibung einer Client-Anwendungsprogramm-Schnittstelle ändert, indem sie Textdaten entfernt, die mit der Beschreibung der Client-Anwendungsprogramm-Schnittstelle verknüpft sind, was zu einer geänderten Beschreibung der Client-Anwendungsprogramm-Schnittstelle führt. Die computerausführbaren Komponenten des Systems können auch eine Ontologiekomponente umfassen, die eine mit der Client-Anwendungsprogramm-Schnittstelle verknüpfte Leistung analysiert, um eine Ontologie auf Grundlage einer semantischen Ähnlichkeit zwischen der geänderten Beschreibung der Client-Anwendungsprogramm-Schnittstelle und einer oder mehreren vorangehenden Beschreibungen einer oder mehrerer vorangehender Client-Anwendungsprogramm-Schnittstellen zu erzeugen.
  • Gemäß einer anderen Ausführungsform kann ein Computerprogrammprodukt, das Empfehlungen für Anwendungsprogramm-Schnittstellen erleichtert, ein computerlesbares Speichermedium mit darin enthaltenen Programmbefehlen umfassen. Die Programmbefehle können von einem Prozessor ausgeführt werden, und der Prozessor kann eine Beschreibung einer Client-Anwendungsprogramm-Schnittstelle ändern, indem er Textdaten entfernt, die mit der Beschreibung der Client-Anwendungsprogramm-Schnittstelle verknüpft sind, was zu einer geänderten Beschreibung der Client-Anwendungsprogramm-Schnittstelle führt. Die Programmbefehle können auch ausführbar sein, um durch den Prozessor eine mit der Client-Anwendungsprogramm-Schnittstelle verknüpfte Leistung zu analysieren, um eine Ontologie zu erzeugen, die auf einer semantischen Ähnlichkeit zwischen der geänderten Beschreibung der Client-Anwendungsprogramm-Schnittstelle und einer oder mehreren vorangehenden Beschreibungen einer oder mehrerer vorangehender Client-Anwendungsprogramm-Schnittstellen basiert.
  • Gemäß einer weiteren Ausführungsform wird ein computer-implementiertes Verfahren bereitgestellt. Das computer-implementierte Verfahren umfasst ein Ändern, durch eine Vorrichtung, die in Wirkverbindung mit einem Prozessor steht, einer Beschreibung einer Client-Anwendungsprogramm-Schnittstelle durch Entfernen von Textdaten, die mit der Beschreibung der Client-Anwendungsprogrammschnittstelle verknüpft sind, was zu einer geänderten Beschreibung der Client-Anwendungsprogramm-Schnittstelle führt. Das computer-implementierte Verfahren kann ferner ein Analysieren, durch die Vorrichtung, einer mit der Client-Anwendungsprogramm-Schnittstelle verknüpften Leistung, um eine Ontologie zu erzeugen, die auf einer semantischen Ähnlichkeit zwischen der geänderten Beschreibung der Client-Anwendungsprogramm-Schnittstelle und einer oder mehreren vorangehenden Beschreibungen einer oder mehrerer vorangehender Client-Anwendungsprogramm-Schnittstellen basiert.
  • Gemäß einer anderen Ausführungsform kann ein System einen Speicher umfassen, der computerausführbare Komponenten speichert, und einen Prozessor, der die im Speicher gespeicherten computerausführbaren Komponenten ausführt. Die computerausführbaren Komponenten des Systems können eine Ontologiekomponente umfassen, die Domänenontologiedaten analysiert, die repräsentativ für eine Domänenontologie sind, die von einer Entität empfangen wurden, basierend auf von der Entität bereitgestellten Feedback-Daten. Die computerausführbaren Komponenten des Systems können auch eine neuronale Netzkomponente umfassen, die ein Anwendungsprogramm-Empfehlungssystem trainiert, um auf Grundlage der Domänenontologiedaten eine Community zu erzeugen.
  • Gemäß einer anderen Ausführungsform kann ein Computerprogrammprodukt, das Anwendungsprogramm-Schnittstellenempfehlungen erleichtert, ein computerlesbares Speichermedium mit darin enthaltenen Programmbefehlen umfassen. Die Programmbefehle können von einem Prozessor ausgeführt werden, und der Prozessor kann Domänenontologiedaten analysieren, die repräsentativ für eine Domänenontologie sind, die von einer Entität erhalten wurde, basierend auf Grundlagen von Feedback-Daten, die von der Entität bereitgestellt wurden. Die Programmbefehle können auch ausführbar sein, um durch den Prozessor ein Anwendungsprogramm-Empfehlungssystem zu trainieren, um eine Community auf Grundlage der Domänenontologiedaten zu erzeugen.
  • In einigen Ausführungsformen können eines oder mehrere der oben genannten Elemente, die in Verbindung mit den Systemen, computer-implementierten Verfahren und/oder Computerprogrammprogrammen beschrieben werden, in verschiedenen Formen enthalten sein, wie z.B. ein computer-implementiertes Verfahren, ein Computerprogrammprodukt oder ein System.
  • Figurenliste
    • 1 veranschaulicht ein Blockdiagramm eines beispielhaften, nicht einschränkenden Systems, das domänen- und kundenspezifische Empfehlungen für Client-Anwendungsprogramm-Schnittstellen gemäß einer oder mehrerer hierin beschriebenen Ausführungsformen erleichtert.
    • 2 veranschaulicht ein Blockdiagramm eines beispielhaften, nicht einschränkenden Systems, das domänen- und kundenspezifische Empfehlungen für Anwendungsprogramm-Schnittstellen gemäß einer oder mehreren hierin beschriebenen Ausführungsformen erleichtert.
    • 3 veranschaulicht ein Blockdiagramm eines beispielhaften, nicht einschränkenden Systems, das domänen- und kundenspezifische Empfehlungen für Anwendungsprogramm-Schnittstellen gemäß einer oder mehreren hierin beschriebenen Ausführungsformen erleichtert.
    • 4 veranschaulicht ein beispielhaftes, nicht einschränkendes Systemnetzwerk, das domänen- und kundenspezifische Empfehlungen für Anwendungsprogramm-Schnittstellen gemäß einer oder mehreren hierin beschriebenen Ausführungsformen erleichtert.
    • 5 veranschaulicht ein beispielhaftes, nicht einschränkendes Blockdiagramm, das ein Abfrage-Abgleichen unter Verwendung einer Domänenontologie gemäß einer oder mehreren hierin beschriebenen Ausführungsformen erleichtert.
    • 6 veranschaulicht ein beispielhaftes, nicht einschränkendes Flussdiagramm, das domänen- und kundenspezifische Empfehlungen für Anwendungsprogramm-Schnittstellen gemäß einer oder mehreren hierin beschriebenen Ausführungsformen erleichtert.
    • 7 veranschaulicht ein weiteres beispielhaftes, nicht einschränkendes Flussdiagramm, das domänen- und kundenspezifische Empfehlungen für Anwendungsprogramm-Schnittstellen gemäß einer oder mehreren hierin beschriebenen Ausführungsformen erleichtert.
    • 8 veranschaulicht ein beispielhaftes, nicht einschränkendes Flussdiagramm für einen Autokodierer mit langem Kurzzeitgedächtnis, welcher domänen- und kundenspezifische Empfehlungen für Anwendungsprogramm-Schnittstellen gemäß einer oder mehreren hierin beschriebenen Ausführungsformen erleichtert.
    • 9 veranschaulicht ein beispielhaftes, nicht einschränkendes Flussdiagramm für ein computer-implementiertes Verfahren, das domänen- und kundenspezifische Empfehlungen für Anwendungsprogramm-Schnittstellen gemäß einer oder mehreren hierin beschriebenen Ausführungsformen erleichtert.
    • 10 veranschaulicht ein Blockdiagramm einer beispielhaften, nicht einschränkenden Betriebsumgebung, in der eine oder mehrere hierin beschriebene Ausführungsformen erleichtert werden können.
  • DETAILLIERTE BESCHREIBUNG
  • Die folgende detaillierte Beschreibung dient lediglich der Veranschaulichung und ist nicht dazu gedacht, Ausführungsformen und/oder die Anwendung oder den Gebrauch von Ausführungsformen einzuschränken. Darüber hinaus besteht keine Absicht, durch ausdrückliche oder implizite Informationen, die in den vorangegangenen Abschnitten „Hintergrund“ oder „Zusammenfassung“ oder im Abschnitt „Ausführliche Beschreibung“ dargestellt sind, gebunden zu sein.
  • Eine oder mehrere Ausführungsformen werden nun unter Bezugnahme auf die Zeichnungen beschrieben, wobei durchgehend mit gleichartigen Bezugszeichen auf gleichartige Elemente verwiesen wird. In der folgenden Beschreibung werden zu Erklärungszwecken zahlreiche spezifische Details aufgeführt, um ein tieferes Verständnis der einen oder mehreren Ausführungsformen bereitzustellen. Es ist jedoch in verschiedenen Fällen offensichtlich, dass die eine oder mehrere Ausführungsformen auch ohne diese spezifischen Einzelheiten praktiziert werden können.
  • Bestehende Herangehensweisen zur Empfehlung von Dienstleistungen unter Verwendung natürlichsprachlicher Abfragen basieren auf Grundlagen von überwachten und unüberwachten Herangehensweisen. Überwachte Herangehensweisen stützen sich auf einen Datensatz mit natürlichsprachlichen Abfragen, die mit spezifischen Diensten kommentiert werden. Da der Annotationsprozess manuell erfolgt und in der Regel tiefes Domänenwissen erfordert, sind diese Herangehensweisen nicht ohne weiteres auf verschiedene Datensätze anwendbar, insbesondere nicht auf Datensätze aus neuen Domänen. Beispielhaft basieren sie in erster Linie auf übereinstimmenden Stichworten, Entitätsbeziehungen, Themen und Clustern. Stichworte und Entitätsbeziehungen ignorieren jedoch die semantische Ähnlichkeit zwischen einer Abfrage und Diensten. Themen und Cluster erfassen die semantische Ähnlichkeit, sie stützen sich jedoch auf Mashups, die explizit Beziehungen zwischen Diensten erfassen. Für eine neue Domäne sind solche Daten jedoch nicht ohne weiteres verfügbar.
  • Ein Rahmenwerk, das sich bei der Empfehlung von Diensten auf Dienstbeschreibungen stützt, kann die oben genannten Probleme beheben. Eine oder mehrere Ausführungsformen des Rahmenwerks haben den Vorteil, dass sie sofort als Bootstrap-Empfehlung für neue Datensätze anwendbar sind. Um die Beziehungen zwischen den Diensten zu erfassen, können eine oder mehrere Ausführungsformen des Rahmenwerks verschiedene Herangehensweisen zum Aufbau von Communities bereitstellen, wobei eine Community eine Abstraktion über eine Gruppe von Diensten darstellt. Auf Grundlage der Communities und der Benutzerabfragen können eine oder mehrere Ausführungsformen des Rahmenwerks eine Herangehensweise zum Abgleich von Abfragen anwenden, um Top-K-Dienste zu empfehlen. Das Rahmenwerk kann anhand mehrerer gesammelter Datensätze evaluiert werden, um aussagekräftige Empfehlungen für Entitäten aus den mehreren gesammelten Datensätzen bereitzustellen. Wie hier verwendet, kann der Begriff „Entität“ (und „Entitäten“) Hardware, Software, Maschinen, Menschen oder anderes sein oder einschließen.
  • Eine oder mehrere hierin beschriebene Ausführungsformen können domänen- und kundenspezifische Empfehlungen für Client-Anwendungsprogramm-Schnittstellen erzeugen. Zusätzlich umfassen eine oder mehrere hierin beschriebene Ausführungsformen Systeme, computer-implementierte Verfahren, Vorrichtungen und Computerprogrammprodukte, die die Erzeugung von domänen- und kundenspezifischen Empfehlungen für Anwendungsprogramm-Schnittstellen erleichtern.
  • 1 veranschaulicht ein Blockdiagramm eines beispielhaften, nicht einschränkenden Systems, das domänen- und kundenspezifische Empfehlungen für Client-Anwendungsprogramm-Schnittstellen gemäß einer oder mehreren hier beschriebenen Ausführungsformen erleichtert.
  • Wie in 1 dargestellt, kann die Komponente 100 zum Erzeugen von Intents mehrere Unterkomponenten (z.B. eine Vorprozessorkomponente 102, eine Komponente 104 zur Extraktion von Communities, usw.), einen Prozessor 106 und einen Speicher 108 umfassen, die in verschiedenen Ausführungsformen elektrisch und/oder kommunikativ miteinander gekoppelt werden können. Es ist auch zu beachten, dass in einigen Ausführungsformen die Subkomponenten (z.B. eine Vorprozessorkomponente 102, eine Komponente 104 zur Extraktion von Communities usw.) außerhalb der Komponente 100 zum Erzeugen von Intents liegen können.
  • Aspekte des Prozessors 106 können maschinenausführbare Komponente(n) darstellen, die in der/den Maschine(n) enthalten sind, z.B. in einer oder mehreren computerlesbaren Datenträgern (oder Medien), die mit einer oder mehreren Maschinen verknüpft sind. Solche Komponente(n) kann(können), wenn sie von einer oder mehreren Maschinen, z.B. einem oder mehreren Computern, einem oder mehreren Rechengeräten, einer oder mehreren virtuellen Maschinen usw. ausgeführt wird(en), die Maschine(n) veranlasst(veranlassen), die durch die Komponente 100 zum Erzeugen von Intents beschriebenen Operationen auszuführen. In einem Aspekt kann die Komponente 100 zum Erzeugen von Intents auch Speicher 108 enthalten, der computerausführbare Komponenten und Anweisungen speichert.
  • In einer Ausführungsform kann die Vorprozessorkomponente 102 Dienstbeschreibungen in natürlicher Sprache als Eingaben empfangen und sie mit Hilfe einer spezialisierten natürlichsprachlichen Programmpipeline vorverarbeiten. Die Vorverarbeitung kann eine oder mehrere Funktionen umfassen. Beispielhaft kann eine Interpunktion einer Texteingabe 110 entfernt werden. Zusätzlich kann einen Wortart(POS)-Tagger angewendet werden, um Substantiv-Sätze aus der Texteingabe 110 zu extrahieren. Nach diesen Schritten können Worte, die als häufig und/oder selten angesehen werden, entfernt werden. Da die häufigsten Worte eine hohe Wortzahl haben können, aber wenig semantische Bedeutung haben, kann die Effizienz eines verknüpften Sprachmodells verringert werden, indem häufige Worte beibehalten werden. Die seltensten Wörter können auch entfernt werden, weil ihr Zusammentreffen mit anderen Wörtern vom Zufall dominiert wird. Wenn beispielsweise eine Dienstbeschreibung nur einen einzigen Verweis auf das Wort „Mikrodaten“ enthält, stammen alle Wörter in der Nähe von „Mikrodaten“ höchstwahrscheinlich aus einem einzigen Satz, so dass ihr gemeinsames Vorkommen nicht auf andere Sätze verallgemeinert werden kann. Beispielhaft können seltene Wörter, die in drei oder weniger Dokumenten vorkommen, und häufige Wörter, die in mehr als zehn Prozent der Dokumente vorkommen, entfernt werden. Es ist zu beachten, dass jede beliebige Schwellenzahl zum Entfernen oder Extrahieren von Begriffen verwendet werden kann und dass die oben genannten Zahlen lediglich beispielhaft sind.
  • Die Interpretierbarkeit eines Themenmodells kann anhand der häufigsten Begriffe beurteilt werden, die mit einem Thema verknüpft sind. Die post-hoc korpus-spezifische Entfernung von Stoppworten auf der Grundlage eines wirksamen Inferenzmodells kann die Interpretierbarkeit des Modells ferner erhöhen. Korpus-spezifische Stoppworte sind Begriffe, die in vielen Dokumenten vorkommen, deren Häufigkeit jedoch nicht hoch genug ist, um als häufige Wörter betrachtet werden zu können. Eine Senkung des Schwellenwertes für häufige Worte birgt das Risiko, viele andere informative Worte zu verlieren. Die Stoppworte neigen jedoch dazu, in einige wenige Themen von geringer Qualität isoliert zu werden (z.B. Worte, die keine kohärente und sinnvolle Bedeutung haben). Folglich können Themen von geringer Qualität ausgewählt werden, um gezielt die häufigsten Begriffe in den Themen zu entfernen.
  • Zusätzlich kann die Komponente 100 zum Erzeugen von Intents so konfiguriert werden, dass eine semantische Ähnlichkeit zwischen Anwendungsprogramm-Schnittstellen (API) auf Grundlage ihrer Beschreibungen bestimmt werden kann. Beispielsweise kann eine Beschreibung, die mit einer ersten Client-Anwendungsprogramm-Schnittstelle verknüpft ist, durch die oben erwähnten Prozesse der Vorprozessorkomponente 102 geändert werden, was zu einer geänderten API-Beschreibung führt. Die geänderte API-Beschreibung kann dann mit einer anderen Client-API-Beschreibung verglichen werden, um Ähnlichkeiten zwischen den beiden festzustellen. Folglich kann die Komponente 100 zum Erzeugen von Intents, wenn einen bestimmten Ähnlichkeitsschwellenwert erreicht ist, mit weiteren Prozessen fortfahren.
  • Eine Komponente 104 zur Extraktion von Communities kann die vorverarbeiteten API-Beschreibungen empfangen und entsprechend ihrer Relevanz Communities bilden. Innerhalb jeder Community (oder, in einigen Ausführungsformen, innerhalb einer oder mehrerer Communities) kann eine hierarchische Struktur aufgebaut werden, bei der Blattknoten Themen sind, die durch eine Themenmodellierungstechnik hergeleitet werden, jedes Thema (Blatt) (oder, in einigen Ausführungsformen, ein oder mehrere Themen) kann mit einer Liste von Dienstbeschreibungen verknüpft werden, wobei die Nicht-Blattknoten Intents darstellen können. Es ist zu beachten, dass die Tiefe der Struktur Intents auf verschiedenen Abstraktionsebenen anzeigen kann. Intents, die näher am Wurzelknoten liegen, können abstrakte und allgemeine Intents (z.B. Investitionen) darstellen, während Intents, die näher an den Themen liegen, detaillierte und spezifische Intents (z.B. Börse) darstellen können. Themen, die gemeinsame Vorfahren haben, kann ein höherer Grad an Relevanz zugeschrieben werden. Beispielsweise sind die Themen „Musik“, „Fernsehen“ und „Video“ lose miteinander verwandt, obwohl die Themen „Standort“, „Route“ und „Karte“ als eng verwandt angesehen werden können.
  • Communities lassen sich über drei Herangehensweisen extrahieren. Der erste ist eine Herangehensweise, bei der eine Themenmodellierungstechnik verwendet wird, wobei jedes gelernte Thema (oder, in einigen Ausführungsformen, ein oder mehrere gelernte Themen) eine einzige Community bildet. Es ist zu beachten, dass die grundlegende Herangehensweise keinen hierarchischen Intents-Baum aufbaut. Die zweite Herangehensweise kann eine Herangehensweise von unten nach oben sein, bei der zunächst Themen abgeleitet werden und dann das Verfahren der Community-Erkennung angewendet wird, um Communities für diese Themen zu identifizieren. Die dritte Herangehensweise kann eine Herangehensweise von oben nach unten sein, bei der eine latente hochrangige niedrigdimensionale Vektordarstellung für jeden Dienst (oder für einen oder mehrere Dienste) gelernt wird und dann ähnliche Vektoren mit Hilfe eines k-Mittel-Cluster-Ansatzes zu einer Community gruppiert werden. Danach kann ein Verfahren zur Themenmodellierung auf Dienste innerhalb jedes Clusters (oder, in einigen Ausführungsformen, innerhalb eines oder mehrerer Cluster) angewendet werden.
  • Eine nichtnegative Matrix-Faktorisierung von Themen (TNMF) ist ein Verfahren, mit dem Themen aus kurzen Texten ermittelt werden können. Die herkömmliche Modellierung der nichtnegativen Matrix-Faktorisierung (NMF) kann eine Begriff-Dokumenten-Matrix zerlegen, die das Vorkommen des Begriffs in einem bestimmten Dokument anzeigt. Bei kurzen Texten kann die Begriff-Dokumenten-Matrix jedoch äußerst spärlich (sparse) sein, was das Modell daran hindern kann, zuverlässige Themen zu lernen. Die TNMF geht dieses Problem an, indem sie davon ausgeht, dass Begriffe, die häufig gleichzeitig vorkommen, höchstwahrscheinlich für ein gemeinsames Thema relevant sind. Wenn z.B. die Begriffe „Adresse“ und „Postleitzahl“ in mehreren der gleichen Dokumente gleichzeitig vorkommen, ist es wahrscheinlicher, dass sie sich auf ein gemeinsames Thema beziehen (z.B. Ort). So kann die TNMF zuverlässige Themen lernen, indem sie stattdessen eine Begriffskorrelationsmatrix zerlegt. Da diese Matrix nicht unter einem Knappheitsproblem leidet, kann der Wortschatzumfang stabil bleiben, auch wenn die Anzahl der Dokumente zunimmt.
  • In der TNMF kann jeder Begriff ti als Begriffsvorkommens-Vektor (wi,1, ... , wi,m) dargestellt werden, wobei wi,m auf Grundlage des gleichzeitigen Vorkommens der Begriffe ti und tm entschieden wird. Zur Bewertung von wi,m wird für die Begriffe ti und tm die gegenseitige Information über positive Punkte (Positive Point Mutual Information, PPMI) berechnet. Nach der Berechnung eines Begriffsvorkommens-Vektors wird ein gemeinsames Vektorähnlichkeitsmaß (z.B. Kosinuskoeffizient) berechnet, um die Begriffskorrelationsmatrix S zu erzeugen. Sobald die Begriffskorrelationsmatrix S gelernt ist, kann das Themenlernproblem so formuliert werden, dass eine Begriffsthemenmatrix U gefunden wird, die die folgende Zielfunktion minimiert: L ( U ) = S UU T F 2 ,  s . t .  U > = 0 .
    Figure DE112018005813T5_0001
  • Gleichung (1) ist die Zielfunktion, die das Modell zu minimieren versucht. Als solche ist Gleichung (1) eine Formulierung der nicht-negativen Matrixfaktorisierung. F steht für die Frobenious-Form einer Matrix, wobei S UU T i j 2 ,  als  i j ( S U U T ) i j 2 .
    Figure DE112018005813T5_0002
    dargestellt wird. Eine symmetrische nicht-negative Matrixfaktorisierung kann auf die Begriffskorrelationsmatrix angewendet werden, um die Themen zu extrahieren und die Begriffs-Themenmatrix U zu lernen. Dann kann die Themen-Dokumentenmatrix V auf Grundlage der vorliegenden ursprünglichen Begriffs-Dokumenten-Matrix X und Begriffs-Themenmatrix U gelöst werden. Folglich kann die Komponente 100 zum Erzeugen von Intents so konfiguriert werden, dass sie kurze Texte empfängt, die kurzen Texte durch die Vorprozessorkomponente 102 laufen lässt, um Fremdtext zu extrahieren, was zu verfeinerten Textdaten führt, und dann die verfeinerten Textdaten auf Grundlage der TNMF, die durch die Komponente 104 zur Extraktion von Communities durchgeführt wird, mit einem bestimmten Thema verknüpft werden.
  • Die Komponente 100 zum Erzeugen von Intents kann eingesetzt werden, um Hard- und/oder Software zur Lösung von Problemen zu verwenden, die hochtechnischer Natur sind (z.B. Software-Text-Suchen, semantisches Tagging, Bestimmung der Texthäufigkeit, Abgleich ungleichartiger Begriffe innerhalb von Korpora, die aus Millionen von Begriffen, Sätzen usw. bestehen), die nicht abstrakt sind und die aufgrund der Verarbeitungsfähigkeiten, die benötigt werden, um z.B. domänen- und kundenspezifische API-Empfehlungen aus Benutzer-Text-Abfragen zu erleichtern, nicht als eine Reihe mentaler Handlungen durch einen Menschen ausgeführt werden können. Ferner können einige der durchgeführten Prozesse von einem spezialisierten Computer zur Ausführung definierter Aufgaben im Zusammenhang mit Speicheroperationen ausgeführt werden. Beispielhaft kann ein spezialisierter Computer eingesetzt werden, um Aufgaben im Zusammenhang mit der Vorverarbeitung von Texteingaben auf der Grundlage einer Begriffshäufigkeit oder ähnlichem auszuführen.
  • 2 veranschaulicht ein Blockdiagramm eines beispielhaften, nicht einschränkenden Systems, das domänen- und kundenspezifische Empfehlungen für Anwendungsprogramm-Schnittstellen gemäß einer oder mehreren hier beschriebenen Ausführungsformen erleichtert. Auf die wiederholte Beschreibung ähnlicher Elemente, die in anderen hier beschriebenen Ausführungsformen verwendet werden, wird der Kürze halber verzichtet.
  • Die Komponente 200 zum Erzeugen von Intents kann eine Abfrageabgleichungskomponente 202 umfassen. Die Abfrageabgleichungskomponente 202 kann eine Liste von Diensten einer/an eine Entität auf Grundlage einer Abfrage von der Entität empfehlen/ausgeben. Auf Grundlage einer Abfrage 206 können Communities und zugrunde liegende Themen gegen die Abfrage 206 geprüft werden, um Beziehungen zu bestimmen. Um zum Beispiel Verwandtschaft zu prüfen, kann einen Punktwert M (Abfrage, Thema) einer Abgleichung zwischen der Abfrage 206 und dem Thema erzeugt werden (z. B. die Summe der Ähnlichkeitspunktwerte zwischen jedem Wort in einer Abfrage und jedem obersten Stichwort in einem bestimmten Thema). Die Wortähnlichkeit kann auf Grundlage eines Wu-Palmer-Punktwerts berechnet werden, der die Verwandtschaft zweier Wortsinne berechnet, indem die Tiefe der Wortsinne in Bezug auf die Taxonomien berücksichtigt wird. Der Wu-Palmer-Punktwert kann auch die Tiefe des kleinsten gemeinsamen Subsumers des Wortes berechnen (z.B. ein bestimmter übergeordneter Knoten). M ( A b f r a g e , T h e m a ) = U A b f r a g e V T h e m a Ä h n l i c h k e i t ( U , V ) ,
    Figure DE112018005813T5_0003
    Ähnlichkeit ( u , v ) = max ( Wu Palmer ( u i , v j ) ) ( 4 ) ,
    Figure DE112018005813T5_0004
    wobei u Worte in der Abfrage 206 sind, und w Themenbegriffe sind, und ui und vj Wortsinne sind.
  • Es wird eine Ontologie betrachtet, die aus einer Menge von Knoten und einer Wurzel besteht. In der Ontologie können C1 und C2 als zwei Ontologieelemente betrachtet werden, deren Ähnlichkeit berechnet wird. Die Ähnlichkeit wird auf Grundlage der Distanz (N1 und N2), die C1 und C2 vom Wurzelknoten trennt, und der Distanz (N), die den gemeinsamen nächsten Vorfahren von C1 und C2 vom Wurzelknoten trennt, berechnet. Die Ähnlichkeit wird als Sim_Wu-Palmer definiert, der als Ähnlichkeit (Wu-Palmer(C1, C2)) dargestellt ist, die gleich (2*N)/(N1+N2) sein kann. In der Formulierung von Wordnet wird die Ähnlichkeit für eine Vielzahl von Synonymen (Synset) s1 und s2 berechnet, indem die Tiefen der beiden Synsets in den WordNet-Taxonomien zusammen mit der Tiefe des kleinsten gemeinsamen Subsumers (LCS) berücksichtigt werden. Die Formel lautet: Punktwert = (2*Tiefe (LCS))/(Tiefe (s1)+Tiefe (s2)). M(Abfrage, Thema) stellt die Berechnung von Sim_Wu-Palmer für jedes Wort u in einer Abfrage und jedes Wort w in einem Thema dar. Ähnlichkeit(Abfrage, Thema) wird auf Grundlage eines maximalen Wertes berechnet, der von M(Abfrage, Thema) für u in einer Abfrage und Wort w in einem Thema erhalten wird.
  • Wenn also die in Frage kommenden Themen verschiedenen Communities gehören und keinen gemeinsamen Vorfahren haben, dann können die übergeordneten Knoten der Themen identifiziert werden, und Dienste unter den identifizierten Intents können als Kandidaten zurückgegeben werden.
  • Wenn eine Menge von Diensten als Kandidaten in Frage kommt, kann ein latenter semantischer Index (LSI) verwendet werden, um einen Abgleichungspunktwert zwischen den in Frage kommenden Diensten und der Abfrage 206 zu berechnen. Der LSI kann einen k-dimensionalen Raum erzeugen, indem er eine Matrix von Begriffshäufigkeit - inverse Dokumentenhäufigkeit (TF-IDF) erstellt und die TF-IDF-Matrix durch Singulärwertzerlegung (SVD) approximiert. SVD reduziert die Dimensionen der ursprünglichen Matrix unter Beibehaltung der Ähnlichkeitsstruktur zwischen den Spalten. Folglich kann die Query 206 einer Entität auf den k-dimensionalen LSI-Raum abgebildet werden. Die Ähnlichkeit der Query 206 und eines gegebenen Dokuments kann anhand der Kosinusähnlichkeit zweier Vektoren berechnet werden. Folglich können API-Dienste mit dem höchsten Ähnlichkeitspunktwert der Entität als Ausgabe 208 empfohlen werden.
  • Die Komponente 104 zur Extraktion von Communities kann auch eine neuronale Netz-Komponente 204 umfassen. Beispielsweise kann künstliche Intelligenz (Kl) die Erleichterung der Automatisierung eines oder mehrerer Merkmale in Übereinstimmung mit den veröffentlichten Aspekten erleichtern. Ein Speicher und ein Prozessor sowie andere Komponenten können Funktionalität in Bezug auf die Figuren enthalten. Die offengelegten Aspekte in Verbindung mit der Erzeugung von API-Empfehlungen können verschiedene Klbasierte Schemas zur Ausführung verschiedener Aspekte davon verwenden. Zum Beispiel kann ein Prozess zur Erkennung eines oder mehrerer Trigger-Ereignisse, zur Bestimmung einer Aktivität als Ergebnis des einen oder der mehreren Trigger-Ereignisse und zur Erzeugung von API-Empfehlungen usw. durch ein beispielhaftes automatisches Klassifizierungssystem und -verfahren erleichtert werden. In einem anderen Beispiel kann ein Prozess zur Bestrafung eines Begriffs bei gleichzeitiger Bevorzugung eines anderen Begriffs auf Grundlage der Häufigkeit mit dem automatischen Klassifizierungssystem und - prozess erleichtert werden.
  • Ein beispielhafter Klassifikator kann eine Funktion sein, die einen Eingangsattributvektor, x = (x1, x2, x3, x4, xn), auf eine Konfidenz abbildet, dass die Eingabe zu einer Klasse gehört, d.h. f(x) = Konfidenz(Klasse). Eine solche Klassifizierung kann eine probabilistische und/oder statistikbasierte Analyse (z.B. Faktorisierung in die Analyse-Dienstprogramme) verwenden, um eine Prognose zu erstellen oder eine Aktion abzuleiten, die automatisch ausgeführt werden kann (z.B. Extrahieren von häufigem Text). Eine Support-Vektor-Maschine (SVM) ist ein Beispiel für einen Klassifikator, der eingesetzt werden kann. Die SVM kann so wirken, dass sie im Raum der möglichen Eingaben eine Hyperfläche findet, die versucht, die auslösenden Kriterien von den nicht auslösenden Ereignissen zu trennen. Intuitiv macht dies die Klassifikation korrekt für das Testen von Daten, die nahe, aber nicht identisch mit Trainingsdaten sind. Andere gerichtete und ungerichtete Herangehensweisen zur Modellklassifizierung sind beispielsweise naive Bayes'sche Herangehensweisen, Bayes'sche Netze, wiederkehrende neuronale Netze, Entscheidungsbäume, Fuzzy-Logik-Modelle und probabilistische Klassifizierungsmodelle, die verschiedene Muster der Unabhängigkeit zur Verfügung stellen. Die hier verwendete Klassifikation kann auch eine statistische Regression einschließen, die zur Entwicklung von Prioritätsmodellen verwendet wird.
  • Die offengelegten Aspekte können sowohl explizit (z.B. über generische Trainingsdaten) als auch implizit (z.B. über die Beobachtung der Extraktion von Begriffen in Bezug auf die auslösenden Ereignisse) trainierte Klassifikatoren beschäftigen. Beispielhaft können SVMs über eine Lern- oder Trainingsphase innerhalb eines Klassifikator-Konstruktors und eines Merkmals-Auswahlmoduls konfiguriert werden. Der/die Klassifikator(en) kann/können somit zum automatischen Lernen und Ausführen einer Reihe von Funktionen verwendet werden, einschließlich, aber nicht beschränkt auf die Extraktion von Begriffen, die Gewichtung von Begriffen, das Filtrieren von Begriffen, das Verknüpfen von Begriffen mit Themen und so weiter. Die Kriterien können unter anderem vordefinierte Werte, Beitragsabschwächungstabellen oder andere Parameter, Präferenzen und/oder Richtlinien usw. umfassen. Es ist zu beachten, dass die neuronale Netz-Komponente 204 auch eine Subkomponente der verschiedenen anderen Komponenten dieser Offenlegung sein kann. Zum Beispiel kann die Ontologiekomponente, die im Hinblick auf 3 diskutiert wird, auch ein neuronales Netz umfassen.
  • 3 veranschaulicht ein Blockdiagramm eines beispielhaften, nicht einschränkenden Systems, das domänen- und kundenspezifische Empfehlungen für Anwendungsprogramm-Schnittstellen gemäß einer oder mehreren hier beschriebenen Ausführungsformen erleichtert. Auf die wiederholte Beschreibung ähnlicher Elemente, die in anderen hier beschriebenen Ausführungsformen verwendet werden, wird der Kürze halber verzichtet.
  • In einer anderen Ausführungsform kann die Komponente 300 zum Erzeugen von Intents eine Ontologiekomponente 302 umfassen. Die Ontologiekomponente 302 kann die Themen, Eigenschaften und Wechselbeziehungen der Communities und Abfragen, die auf Grundlage einer kunden- und/oder domänenspezifischen Abfrage bestehen, formal benennen und definieren. Die Ontologiekomponente 302 kann die Variablen, die für die Berechnungen durch die Komponente 300 zum Erzeugen von Intents benötigt werden, aufgliedern und die Beziehungen zwischen ihnen herstellen.
  • Die Ontologiekomponente 302 kann so konfiguriert werden, dass sie die verknüpfte Ontologie auf Grundlage von Übereinstimmungen, die von der ABFRAGEABGLEICHUNGSKOMPONENTE 202 erzeugt werden, der Ausgabe 208 (z. B. Empfehlungen, Konfidenzpunktwerte usw.), Feedback von Entitäten usw. rekursiv ändert. Nachdem die Ausgabedaten beispielsweise für die Ausgabe 208 erzeugt wurden, können die Ausgabedaten von der Ontologiekomponente 302 empfangen werden. Die Ontologiekomponente 302 kann dann aus den Ausgabedaten eine neue Domänenontologie erzeugen, die neue Domänenontologie an die Komponente 104 zur Extraktion von Communities, an die Vorprozessorkomponente 102 und/oder an die Abfrageabgleichungskomponente 202 senden. Basierend auf der Ontologiekomponente 302, die eine neue Domänenontologie erzeugt, kann die Vorprozessorkomponente 102 neue Eingaben in Übereinstimmung mit der neuen Domänenontologie vorverarbeiten, um zusätzliche Dienste, Themen und/oder Communities zu erzeugen.
  • In einer anderen Ausführungsform kann die Entität ihre eigene spezifische Domänenontologie oder eine Präferenz an die Komponente 300 zum Erzeugen von Intents für die Komponente 300 zum Erzeugen von Intents zum Gegenabgleich bereitstellen. Auf Grundlage der Ausgabe 208 (z.B. API-Empfehlung), die aus einer textbasierten Abfrage der Entität erzeugt wird, kann die Entität beispielsweise bestimmen, ob die Entität die empfohlene API bevorzugt oder ob die Entität eine andere API vorziehen würde. Folglich können Präferenzdaten, die mit der Präferenz der Entität verknüpft sind, von der Ontologiekomponente 302 empfangen werden, um die Abgleichprozesse für künftige Iterationen weiter zu verfeinern. Somit können zukünftige Empfehlungen an dieselbe Entität die Präferenzen der Entität bei der Erzeugung zusätzlicher API-Empfehlungen berücksichtigen.
  • 4 veranschaulicht ein beispielhaftes, nicht einschränkendes Systemnetzwerk, das domänen- und kundenspezifischen Anwendungsprogramm-Schnittstellen-Empfehlungen gemäß einer oder mehreren hier beschriebenen Ausführungsformen erleichtert. Auf die wiederholte Beschreibung ähnlicher Elemente, die in anderen hier beschriebenen Ausführungsformen verwendet werden, wird der Kürze halber verzichtet.
  • In einer anderen Ausführungsform besteht eine Herangehensweise des Systems darin, zunächst Themen mittels der TNMF (wie oben beschrieben) zu lernen und dann einen gierigen Optimierungsalgorithmus, genannt Louvain's Community Detektion (LCD), zu verwenden, um Communities unter Verwendung eines konstruierten Netzwerks 400 zu extrahieren, das paarweise Verknüpfungen zwischen Themen und Diensten modelliert. Genauer gesagt ist das Netzwerk 400 auf Grundlage einer gelernten Themen-Dokumenten-Matrix V konstruiert. Im Netzwerk 400 können Knotenpunkte Dienste (oder Dokumente) und Themen darstellen. Zwischen dem Thema und den Diensten kann eine gewichtete Kante gebildet werden, wenn der entsprechende Eintrag in V ungleich Null ist. Die Gewichtung ist also der Wert in diesem Eintrag.
  • Nachdem das Netzwerk 400 wie dargestellt fertiggestellt ist, kann LCD angewendet werden, um Communities daraus zu extrahieren. LCD ist ein gieriger Optimierungsalgorithmus, wobei der von LCD zu optimierende Wert ein Skalenwert ist, der Modularität genannt wird (im Bereich zwischen -1 bis 1, wie dargestellt). Modularität misst die Dichte von Kanten innerhalb von Communities zu Kanten außerhalb von Communities. Daher kann die Optimierung der Modularität zu einer Teilung der Community führen. Ein Iterieren durch alle möglichen Partitionen ist höchst unpraktisch. Daher kann eine heuristische Herangehensweise angewendet werden, wobei die folgenden zwei Phasen iterativ wiederholt werden, bis keine Veränderung eintritt.
  • In der ersten Phase werden alle Knoten ihren eigenen Communities zugeordnet. Die Änderung der Modularität wird für einen wandernden Knoten i von seiner eigenen Community 402 zu seiner Nachbar-Community 404 j berechnet (enthält Knoten j nur zu Beginn). Die Änderung der Modularität kann mit der folgenden heuristischen Funktion berechnet werden: Δ Q = [ i n + k 2 m ( t o t + k i 2 m ) 2 ] [ i n 2 m ( t o t 2 m ) 2 ( k i 2 m ) 2 ] ,
    Figure DE112018005813T5_0005
    wobei Σin die Summe aller Gewichte der Kanten innerhalb der Community (C), in die sich / bewegt (z.B. Community 404) (in einigen Ausführungsformen kann Σin als die Summe der Links innerhalb von C betrachtet werden); Σtot die Summe der Links darstellt, die zu Knoten in Cführen. Σtot ist die Summe aller Gewichte der Kanten in der Community (z.B. Community 402). Die Variable ki ist der gewichtete Grad von i (in einigen Ausführungsformen kann ki als die Summe der Gewichte der Links betrachtet werden, die auf Knoten / zutreffen), ki,in ist die Summe der Gewichte der Links zwischen / und anderen Knoten in der Community (z.B. Community 402) und m ist die Summe der Gewichte aller Links im Netzwerk.
  • In einigen Ausführungsformen steht Σin für die Summe der Links innerhalb von C; Σtot steht für die Summe der Links, die zu Knoten in Cführen; ki ist die Summe der Gewichte der Links, die zu Knoten i führen; ki,n ist die Summe der Gewichte der Links von / zu Knoten in C; und m ist die Summe der Gewichte aller Links im Netzwerk.
  • Sobald der Wert für alle Communities, mit denen der Knoten / verknüpft ist, berechnet ist, kann der Knoten / zu der Community 404 kombiniert werden, die die größte ΔQ ergeben hat. Dieses Verfahren kann sequenziell auf alle Communities im Netzwerk angewendet werden. In einer zweiten Phase können die Knoten in derselben Community gruppiert werden, und die gesamte Community kann als Knoten behandelt werden, so dass ein neues Netzwerk aufgebaut werden kann. Dann kann die erste Phase erneut angewendet werden, und dieser Prozess kann so lange wiederholt werden, bis keine Änderung in der Modularität größer als ein definierter Schwellenwert ist.
  • 5 veranschaulicht ein beispielhaftes, nicht einschränkendes Blockdiagramm, das die Erleichterung von Abfragen unter Verwendung einer Domänenontologie gemäß einer oder mehrerer hier beschriebenen Ausführungsformen ermöglicht. Die wiederholte Beschreibung ähnlicher Elemente, die in anderen hier beschriebenen Ausführungsformen verwendet werden, wird der Kürze halber weggelassen.
  • Auf Grundlage einer Abfrage 206, die den Text 502 enthält (z.B. „Karte, Standort, Adresse“), können Communities und die zugrunde liegenden Themen mit der Abfrage 206 abgeglichen werden, um Zusammenhänge zu ermitteln. Um z.B. die Verwandtschaft einer Abfrage 206 mit dem Wort „Standort“ zu überprüfen, können ähnliche Begriffe (z.B. „Karte“ und „Adresse“), die zur Verfügung gestellt werden, verwendet werden, um einen Abgleichungspunktwert M (Abfrage, Thema) zu erzeugen. Zusätzlich kann der Punktwert M der Abgleichung zwischen der Abfrage 206 und dem Thema erzeugt werden (z.B. die Summe der Ähnlichkeitspunktwerte zwischen jedem Wort in einer Abfrage und jedem obersten Stichwort in einem bestimmten Thema). Daher können die Wörter „Karte“, „Standort“ und „Adresse“ so bestimmt werden, dass sie sich auf Thema 1 beziehen, wobei Thema 1 während eines Community-Discover-Verfahrens 504 so bestimmt wird, dass es sich auf Community 1 bezieht. Danach kann eine latente semantische Indexierung (LSI) durchgeführt werden, um Kandidaten-APIs 506 auf Grundlage eines bestimmten Dokuments zu identifizieren, das mit Community 1 in Beziehung steht.
  • Wenn eine Menge von Diensten als Kandidaten in Frage kommt, kann die LSI folglich dazu verwendet werden, einen Punktwert der Abgleichung zwischen den Kandidatendiensten und der Abfrage zu berechnen. Der LSI erzeugt einen k-dimensionalen Raum, indem er eine Matrix von Begriffshäufigkeit - inverse Dokumentenhäufigkeit (TF-IDF) erstellt und diese mittels Singulärwertzerlegung (SVD) approximiert. Die SVD reduziert die Dimensionen der ursprünglichen Matrix, während die Ähnlichkeitsstruktur zwischen den Spalten erhalten bleibt. Folglich wird die Abfrage 206 der Entität auf den k-dimensionalen LSI-Raum abgebildet. Auf diese Weise kann die Ähnlichkeit der Abfrage 206 und eines gegebenen Dokuments unter Verwendung der Kosinusähnlichkeit zweier Vektoren berechnet werden.
  • 6 veranschaulicht ein beispielhaftes, nicht einschränkendes Flussdiagramm, das domänen- und kundenspezifische Empfehlungen für Client-Anwendungsprogramm-Schnittstellen gemäß einer oder mehreren hier beschriebenen Ausführungsformen erleichtert. Auf die wiederholte Beschreibung ähnlicher Elemente, die in anderen hier beschriebenen Ausführungsformen verwendet werden, wird der Kürze halber verzichtet.
  • In einer anderen Ausführungsform kann ein API-Empfehlungsprozess 600 zum Erlernen hierarchischer Intents den Empfang von Begriffen umfassen, die mit einer API in Block 602 verknüpft sind. Beispielsweise kann ein Datenbestand von APIs, API-Beschreibungen und/oder mit den APIs verknüpften Begriffen in die Komponente 100, 200, 300 zum Erzeugen von Intents hochgeladen werden. Die Komponente 100, 200, 300 zum Erzeugen von Intents kann dann mit der Vorverarbeitung der hochgeladenen API-Begriffe durch die Vorprozessorkomponente 102 beginnen. Die Vorverarbeitung der API-Begriffe kann mit verschiedenen Verfahren durchgeführt werden, einschließlich, aber nicht beschränkt auf 1) Entfernen der Interpunktion und Extrahieren von Wortart-Tags, 2) Filtern von häufigen und/oder seltenen Begriffen, 3) Entfernen von kanonischen Stoppwörtern und/oder 4) Extrahieren und Entfernen von wiederholten, aber nicht-informativen allgemeinen Wörtern. In einer Ausführungsform kann die TNMF zur Extraktion und Entfernung der wiederholten, aber nicht-informativen allgemeinen Wörter verwendet werden.
  • Nach der Vorverarbeitung kann die Komponente 100, 200, 300 zum Erzeugen von Intents im Block 606 entscheiden, eine von zwei Herangehensweisen zur Bildung von Communities auf Grundlage der Begriffsrelevanz zu wählen. Die erste Herangehensweise umfasst die Anwendung der TNMF und der Community- Erkennung (z.B. Louvain's Community Detection (LCD), wie in 4 erörtert) auf die vorverarbeiteten Begriffe in Block 608. Die zweite Herangehensweise umfasst die Anwendung des langen Kurzzeitgedächtnisses (LSTM), des k-Mittel-Clustering und der Themenmodellierung (wie in 8 erörtert) auf die vorverarbeiteten Begriffe in Block 610. Die Ergebnisse aus den Blöcken 608 und 610 können sowohl zur Erzeugung von Stichwörtern als auch zur Zuweisung von Communities für die APIs in Block 612 verwendet werden. Es ist zu beachten, dass die TNMF in weiteren Ausführungsformen auch zur Bildung von Communities ohne die LCD-Herangehensweise verwendet werden können.
  • 7 veranschaulicht ein weiteres beispielhaftes, nicht einschränkendes Flussdiagramm, das domänen- und kundenspezifische Empfehlungen für Client-Anwendungsprogramm-Schnittstellen gemäß einer oder mehreren hier beschriebenen Ausführungsformen erleichtert. Auf die wiederholte Beschreibung ähnlicher Elemente, die in anderen hier beschriebenen Ausführungsformen verwendet werden, wird der Kürze halber verzichtet.
  • In Block 702 kann eine textbasierte Abfrage für eine API-Empfehlung von einer Entität empfangen werden. Die textbasierte Abfrage kann eine Beschreibung umfassen, die mit einer interessierenden API verknüpft ist. Beispielhaft kann die Entität nach einer API suchen, die mit einem Standort verknüpft ist. In Block 704 können Zielwörter und -verben aus der Beschreibung extrahiert werden, um einen vorhergesagten Intent der Entität auf Grundlage der textbasierten Abfrage zu bestimmen. Auf Grundlage von Stichwörtern, die (über die Komponente 104 zur Extraktion von Communities) pro Cluster oder Community in Block 612 erzeugt werden, kann der vorhergesagte Intent der Entität mit den hierarchischen Intents abgeglichen werden, die unter Bezugnahme auf den zuvor in Block 708 erörterten hierarchischen Intent-Lernprozess erzeugt wurden. Der Abgleich des Intents der Entität mit den hierarchischen Intents kann Daten ergeben, die verwendet werden, um APIs zu empfehlen, die mit Orten in Block 710 auf Grundlage der abgeglichenen Intents verknüpft sind.
  • Die Komponente 100, 200, 300 zum Erzeugen von Intents kann so konfiguriert werden, dass sie eine Entität auf Grundlage der empfohlenen APIs auffordert und Feedback von Entitäten erhält und das Entitäts-Feedback in Block 712 sammelt. Nachdem beispielsweise APIs in Block 710 empfohlen wurden, kann die Komponente 100, 200, 300 zum Erzeugen von Intents die Entität auffordern, Feedback zu den empfohlenen APIs einzuholen. Das Feedback kann repräsentativ dafür sein, ob die Entität die API im Hinblick auf die von der Entität initiierte Abfrage für nützlich hält. Das Feedback kann einen Hinweis darauf enthalten, dass die empfohlene API nicht anwendbar ist, dass die empfohlene API das ist, was die Entität bevorzugt, oder dass die empfohlene API nur einige der von der Entität bevorzugten Attribute umfasst. Das gesammelte Entitäts-Feedback kann dann an Block 714 geschickt werden, wobei es zur Bestimmung client- oder domänenspezifischer Ontologien verwendet werden kann. Wenn das Feedback der Entität beispielsweise darauf hinweist, dass die empfohlenen APIs weit von dem entfernt sind, was die Entität abgefragt hat, dann kann die Komponente 300 zum Erzeugen von Intents bestimmen, dass die Entität ihre eigene Ontologie haben könnte, die sie in Zukunft auf den Prozess angewendet haben möchte, so dass die Komponente 100, 200, 300 zum Erzeugen von Intents genauere Empfehlungsergebnisse bereitstellen kann. Folglich können in Zukunft auch Daten, die mit kunden- oder domänenspezifischen Ontologien verknüpft sind, verwendet werden, um den Intent der Entität mit den hierarchischen Intents abzugleichen.
  • 8 veranschaulicht ein beispielhaftes, nicht einschränkendes Flussdiagramm für einen Autokodierer mit einem langen Kurzzeitgedächtnis, das domänen- und kundenspezifischen Empfehlungen für Client-Anwendungsprogramm-Schnittstellen gemäß einer oder mehreren hierin beschriebenen Ausführungsformen erleichtert. Auf die wiederholte Beschreibung ähnlicher Elemente, die in anderen hier beschriebenen Ausführungsformen verwendet werden, wird der Kürze halber verzichtet.
  • In einer anderen Ausführungsform kann ein auf dem langen Kurzzeitgedächtnis (LSTM) basierender Autokodierer darauf trainiert werden, eine Einbettung für die Dienstbeschreibungen zu erstellen und dann die Einbettung zu dekodieren, um den ursprünglichen Satz zu rekonstruieren. Die Einbettung kann als eine niedrigdimensionale Darstellung der ursprünglichen Dienstbeschreibungen auf hoher Ebene betrachtet werden. Zusätzlich kann das k-means-Clustering-Verfahren verwendet werden, um die Dienst-Einbettung in verschiedene Cluster oder Communities zu partitionieren.
  • Das LSTM umfasst die Fähigkeit, lokale Abhängigkeiten zwischen Worten zu erfassen, wobei benachbarte Worte kombiniert werden, um eine bestimmte Bedeutung auszudrücken. Das LSTM ist ein Typ eines rekursiven neuronalen Netzes (RNN), das das Problem des verschwindenden (und explodierenden) Gradienten vermeiden kann. Eine LSTM-Einheit kann drei Komponenten umfassen: Vergessen, Eingabe und Ausgabe. Die Komponenten interagieren miteinander, um den Informationsfluss zu steuern. Die Vergessen-Komponente bestimmt, welche Informationen aus einer vorangehenden Speicherzelle nicht mehr gültig sind (aufgrund von Ablaufdatum) und weggeworfen werden sollten. Die Eingabekomponente bestimmt, welche Informationen neu sind und aktualisiert werden müssen, und die Ausgabekomponente ist eine Aktivierungsfunktion, die den Wert aus einer Speicherzelle filtert.
  • Wie beispielhaft in 8 dargestellt, kann das Element 802 die Eingabe von Text umfassen, der in Element 804 kodiert werden kann. Der Autokodierer kann eine kompakte Darstellung einer Dienstbeschreibung erlernen, indem er eine unüberwachte (oder selbstüberwachte) Technik verwendet, wobei keine zusätzlichen Labels erforderlich sind. Ein auf LSTM basierter Autokodierer kann ein neuronales Modell sein, das zwei LSTMs umfasst, wobei ein LSTM eine Reihenfolge von Worten in eine Vektordarstellung fester Länge kodieren kann, wodurch eine komprimierte Darstellung am Element 806 erzeugt wird. Die Ausgabe der letzten LSTM-Einheit kann eine Einbettung der Dienstbeschreibung erzeugen. Am Element 808 kann das zweite LSTM die Darstellung in eine andere Reihenfolge von Symbolen dekodieren. Der Kodierer und der Dekodierer des vorgeschlagenen Modells können gemeinsam trainiert werden, um die bedingte Wahrscheinlichkeit einer Zielsequenz bei einer gegebenen Quellsequenz zu maximieren, wodurch ein Ziel am Element 810 erzeugt wird. Nachdem die niedrigdimensionale Darstellung erhalten wurde, kann das k-Means-Clustering-Verfahren am Element 812 angewendet werden, um die Dienste in k spezifizierte Cluster oder Communities zu partitionieren. Schließlich kann die TNMF auf die Dienste innerhalb jeder Community angewendet werden, um ein Thema pro Community bei Element 814 zu extrahieren.
  • 9 veranschaulicht ein beispielhaftes, nicht einschränkendes Flussdiagramm eines computer-implementierten Verfahrens 900, das domänen- und kundenspezifische Empfehlungen für Client-Anwendungsprogramm-Schnittstellen gemäß einer oder mehreren hier beschriebenen Ausführungsformen erleichtert. Auf die wiederholte Beschreibung ähnlicher Elemente, die in anderen hier beschriebenen Ausführungsformen verwendet werden, wird der Kürze halber verzichtet.
  • In einer anderen Ausführungsform umfasst ein computer-implementiertes Verfahren 900 das Ändern (z.B. über die Vorprozessorkomponente 102) einer Beschreibung einer Client-Anwendungsprogramm-Schnittstelle durch eine Vorrichtung, die in Wirkverbindung mit einem Prozessor steht, indem Textdaten, die mit der Beschreibung der Client-Anwendungsprogramm-Schnittstelle verknüpft sind, entfernt werden, was zu einer geänderten Beschreibung der Client-Anwendungsprogramm-Schnittstelle führt. Das computer-implementierte Verfahren kann ferner das Analysieren (z.B. über die Ontologiekomponente 302) einer mit der Client-Anwendungsprogramm-Schnittstelle verknüpften Leistung umfassen, um eine Ontologie (z.B. über die Ontologiekomponente 302) auf Grundlage einer semantischen Ähnlichkeit zwischen der geänderten Beschreibung der Client-Anwendungsprogramm-Schnittstelle und einer oder mehreren vorangehenden Beschreibungen einer oder mehrerer vorangehender Client-Anwendungsprogramm-Schnittstellen zu erzeugen.
  • Um einen Kontext für die verschiedenen Aspekte des offengelegten Gegenstands bereitzustellen, sollen sowohl 10 als auch die folgende Erörterung eine allgemeine Beschreibung einer geeigneten Umgebung liefern, in der die verschiedenen Aspekte des offengelegten Gegenstands implementiert werden können. 10 veranschaulicht ein Blockdiagramm einer beispielhaften, nicht einschränkenden Betriebsumgebung, in der eine oder mehrere hier beschriebene Ausführungsformen erleichtert werden können. Unter Bezugnahme auf 10 kann eine geeignete Betriebsumgebung 1000 für die Implementierung verschiedener Aspekte dieser Offenlegung auch einen Computer 1012 umfassen. Der Computer 1012 kann auch eine Verarbeitungseinheit 1014, einen Systemspeicher 1016 und einen Systembus 1018 umfassen. Der Systembus 1018 koppelt Systemkomponenten einschließlich, aber nicht beschränkt auf den Systemspeicher 1016 an die Verarbeitungseinheit 1014. Bei der Verarbeitungseinheit 1014 kann es sich um einen der verschiedenen verfügbaren Prozessoren handeln. Auch Dual-Mikroprozessoren und andere Multiprozessor-Architekturen können als Verarbeitungseinheit 1014 eingesetzt werden. Der Systembus 1018 kann eine von mehreren Typen von Busstruktur(en) sein, einschließlich des Speicherbusses oder Speicher-Controllers, ein Peripheriebus oder externer Bus und/oder ein lokaler Bus, der eine Vielzahl von verfügbaren Busarchitekturen verwendet, einschließlich, aber nicht beschränkt auf, die Industrial Standard Architecture (ISA), Mikrokanalarchitektur (MSA), Extended ISA (EISA), Intelligente Antriebselektronik (IDE), VESA Local Bus (VLB), Peripheral Component Interconnect (PCI), Kartenbus, Universal Serial Bus (USB), Advanced Graphics Port (AGP), Firewire (IEEE 1394) und Small Computer Systems Interface (SCSI).
  • Der Systemspeicher 1016 kann auch den flüchtigen Speicher 1020 und den nichtflüchtigen Speicher 1022 enthalten. Das grundlegende Ein-/Ausgabesystem (BIOS), das die grundlegenden Routinen zur Übertragung von Informationen zwischen Elementen innerhalb des Computers 1012 enthält, wie z.B. beim Hochfahren, wird im nichtflüchtigen Speicher 1022 gespeichert. Zur Veranschaulichung und ohne Einschränkung kann der nichtflüchtige Speicher 1022 einen Nur-Lese-Speicher (ROM), einen programmierbaren ROM (PROM), einen elektrisch programmierbaren ROM (EPROM), einen elektrisch löschbaren programmierbaren ROM (EEPROM), einen Flash-Speicher oder einen nichtflüchtigen Speicher mit wahlfreiem Zugriff (RAM) (z.B. ferroelektrischer RAM (FeRAM)) enthalten. Der flüchtige Speicher 1020 kann auch einen Speicher mit wahlfreiem Zugriff (RAM) enthalten, der als externer Cache-Speicher fungiert. Zur Veranschaulichung und nicht zur Einschränkung: RAM ist in vielen Formen erhältlich, z. B. als statisches RAM (SRAM), dynamisches RAM (DRAM), synchrones DRAM (SDRAM), SDRAM mit doppelter Datenrate (DDR-SDRAM), erweitertes SDRAM (ESDRAM), Synchlink-DRAM (SLDRAM), direktes Rambus-RAM (DRRAM), direktes dynamisches Rambus-RAM (DRDRAM) und dynamisches Rambus-RAM.
  • Computer 1012 kann auch herausnehmbare/nicht herausnehmbare, flüchtige/nicht flüchtige Computerspeichermedien enthalten. 10 veranschaulicht beispielhaft einen Plattenspeicher 1024. Der Plattenspeicher 1024 kann auch Geräte, einschließlich, aber nicht beschränkt auf Geräte wie ein Magnetplattenlaufwerk, ein Diskettenlaufwerk, ein Bandlaufwerk, ein Jaz-Laufwerk, ein Zip-Laufwerk, ein LS-100-Laufwerk, eine Flash-Speicherkarte oder einen Memory Stick enthalten. Zum Plattenspeicher 1024 können auch Speichermedien separat oder in Kombination mit anderen Speichermedien gehören, einschließlich, aber nicht beschränkt auf, ein optisches Laufwerk wie ein Compact-Disk-ROM-Laufwerk (CD-ROM), ein beschreibbares CD-Laufwerk (CD-R-Laufwerk), ein wiederbeschreibbares CD-Laufwerk (CD-RW-Laufwerk) oder ein Digital Versatile Disk ROM-Laufwerk (DVD-ROM). Zur Erleichterung des Anschlusses des Plattenspeichers 1024 an den Systembus 1018 wird in der Regel eine entfernbare oder nichtentfernbare Schnittstelle verwendet, wie z.B. die Schnittstelle 1026. 10 stellt auch Software dar, die als Vermittler zwischen den Benutzern und den grundlegenden Computerressourcen fungiert, die in der geeigneten Betriebsumgebung 1000 beschrieben sind. Zu einer solchen Software kann auch z.B. ein Betriebssystem 1028 gehören. Das Betriebssystem 1028, das auf dem Plattenspeicher 1024 gespeichert werden kann, dient der Steuerung und Zuweisung von Ressourcen des Computers 1012.
  • Systemanwendungen 1030 nutzen die Vorteile der Ressourcenverwaltung des Betriebssystems 1028 durch Programm-Module 1032 und Programmdaten 1034, die z.B. entweder im Systemspeicher 1016 oder auf dem Plattenspeicher 1024 gespeichert sind. Es ist zu würdigen, dass diese Offenlegung mit verschiedenen Betriebssystemen oder Betriebssystemkombinationen implementiert werden kann. Ein Benutzer gibt über Eingabevorrichtung(en) 1036 Befehle oder Informationen in den Computer 1012 ein. Zu den Eingabevorrichtungen 1036 gehören unter anderem ein Zeigegerät wie eine Maus, ein Trackball, ein Stift, ein Touchpad, eine Tastatur, ein Mikrofon, ein Joystick, ein Gamepad, eine Satellitenschüssel, ein Scanner, eine TV-Tunerkarte, eine Digitalkamera, eine digitale Videokamera, eine Webkamera und dergleichen. Diese und andere Eingabegeräte werden über den Systembus 1018 über den/die Schnittstellenanschluss(e) 1038 mit der Verarbeitungseinheit 1014 verbunden. Zu den Schnittstellenanschlüssen 1038 gehören z.B. ein serieller Anschluss, ein paralleler Anschluss, ein Spieleanschluss und ein universeller serieller Bus (USB). Ausgabevorrichtung(en) 1040 verwendet (verwenden) einige Anschlüsse desselben Typs wie Eingabevorrichtung(en) 1036. So kann beispielsweise ein USB-Anschluss verwendet werden, um einen Anschluss für Computer 1012 bereitzustellen und um Informationen von Computer 1012 an eine Ausgabevorrichtung 1040 auszugeben. Der Ausgabeadapter 1042 wird bereitgestellt, um zu veranschaulichen, dass es einige Ausgabevorrichtungen 1040 wie Monitore, Lautsprecher und Drucker gibt, neben anderen Ausgabevorrichtungen 1040, die spezielle Adapter erfordern. Zu den Ausgabeadaptern 1042 gehören, zur Veranschaulichung und nicht zur Beschränkung, Video- und Soundkarten, die ein Mittel zur Verbindung zwischen der Ausgabevorrichtung 1040 und dem Systembus 1018 bereitstellen. Es ist zu beachten, dass andere Geräte und/oder Systeme von Geräten sowohl Eingabe- als auch Ausgabefähigkeiten bereitstellen, wie z.B. der/die Remote-Computer 1044.
  • Computer 1012 kann in einer Netzwerkumgebung über logische Verbindungen zu einem oder mehreren Remote-Computer, wie z.B. Remote-Computer(n) 1044, betrieben werden. Der (die) Remote-Computer 1044 kann (können) ein Computer, ein Server, ein Router, ein Netzwerk-PC, eine Arbeitsstation, ein mikroprozessorbasiertes Gerät, ein Peer-Gerät oder ein anderer gemeinsamer Netzwerkknoten und dergleichen sein und kann (können) in der Regel auch viele oder alle der im Zusammenhang mit Computer 1012 beschriebenen Elemente enthalten. Der Kürze halber wird nur ein Speicherungsvorrichtung 1046 mit dem/den Remote-Computer(n) 1044 veranschaulicht. Der (die) Remote-Computer 1044 ist (sind) logisch mit Computer 1012 über eine Netzwerkschnittstelle 1048 und dann physisch über die Kommunikationsverbindung 1050 verbunden. Die Netzwerkschnittstelle 1048 umfasst drahtgebundene und/oder drahtlose Kommunikationsnetzwerke wie lokale Netzwerke (LAN), Weitverkehrsnetzwerke (WAN), zellulare Netzwerke usw. Zu den LAN-Technologien gehören Fiber Distributed Data Interface (FDDI), Copper Distributed Data Interface (CDDI), Ethernet, Token Ring und dergleichen. Zu den WAN-Technologien gehören unter anderem Punkt-zu-Punkt-Links, leitungsvermittelnde Netzwerke wie die integrierten Schaltungen (ISDN) und Varianten davon, paketvermittelnde Netzwerke und digitale Teilnehmeranschlüsse (DSL). Kommunikationsverbindung(en) 1050 bezieht sich/beziehen sich auf die Hardware/Software, die verwendet wird, um die Netzwerkschnittstelle 1048 mit dem Systembus 1018 zu verbinden. Während die Kommunikationsverbindung 1050 zur veranschaulichenden Klarheit innerhalb des Computers 1012 dargestellt ist, kann sie auch außerhalb des Computers 1012 liegen. Die Hardware/Software für den Anschluss an die Netzschnittstelle 1048 kann auch, nur für beispielhafte Zwecke, interne und externe Technologien umfassen, wie z.B. Modems einschließlich normaler Modems der Telefonklasse, Kabelmodems und DSL-Modems, ISDN-Adapter und Ethernet-Karten.
  • Bei der vorliegenden Offenlegung kann es sich um ein System, ein Verfahren, eine Vorrichtung und/oder ein Computerprogrammprodukt auf jeder möglichen technischen Detailebene der Integration handeln. Das Computerprogrammprodukt kann ein computerlesbares Speichermedium (oder Medien) mit darin enthaltenen computerlesbaren Programmbefehlen umfassen, die einen Prozessor veranlassen, Aspekte der vorliegenden Offenlegung auszuführen. Das computerlesbare Speichermedium kann ein greifbares Gerät sein, das Anweisungen zur Verwendung durch ein Befehlsausführungsgerät speichern und aufbewahren kann. Das computerlesbare Speichermedium kann zum Beispiel, aber nicht ausschließlich, ein elektronisches Speichergerät, ein magnetisches Speichergerät, ein optisches Speichergerät, ein elektromagnetisches Speichergerät, ein Halbleiterspeichergerät oder jede geeignete Kombination der vorgenannten sein. Eine nicht erschöpfende Liste spezifischerer Beispiele für das computerlesbare Speichermedium kann auch Folgendes umfassen: eine tragbare Computerdiskette, eine Festplatte, ein Speicher mit wahlfreiem Zugriff (RAM), ein Festwertspeicher (ROM), ein löschbarer programmierbarer Festwertspeicher (EPROM oder Flash-Speicher), ein statischer Speicher mit wahlfreiem Zugriff (SRAM), ein tragbarer Compact-Disc-Festwertspeicher (CD-ROM), eine digitale versatile Disk (DVD), ein Speicherstick, eine Diskette, eine mechanisch kodierte Vorrichtung wie Lochkarten oder erhabene Strukturen in einer Rille mit darauf aufgezeichneten Befehlen und jede geeignete Kombination der vorstehenden Elemente. Ein computerlesbares Speichermedium, wie es hier verwendet wird, ist nicht als vorübergehendes Signal an sich auszulegen, wie z.B. Radiowellen oder andere sich frei verbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich über einen Wellenleiter oder andere Übertragungsmedien ausbreiten (z.B. Lichtimpulse, die durch ein Glasfaserkabel laufen), oder elektrische Signale, die über einen Draht übertragen werden.
  • Die hierin beschriebenen computerlesbaren Programmanweisungen können von einem computerlesbaren Speichermedium oder über ein Netzwerk, z.B. das Internet, ein lokales Netzwerk, ein Weitverkehrsnetzwerk und/oder ein drahtloses Netzwerk, auf die entsprechenden Rechen- und Verarbeitungsgeräte heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, optische Übertragungsfasern, drahtlose Übertragung, Router, Firewalls, Switches, Gateway-Computer und/oder Edge-Server umfassen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jedem Rechen-/Prozessorgerät empfängt computerlesbare Programmbefehle vom Netzwerk und leitet die computerlesbaren Programmbefehle zur Speicherung in einem computerlesbaren Speichermedium innerhalb des jeweiligen Rechen-/Prozessorgeräts weiter. Bei den computerlesbaren Programmbefehlen zur Durchführung der Operationen der vorliegenden Offenlegung kann es sich um Assembler-Befehle, Befehle mit Befehlssatzarchitektur (ISA), Maschinenbefehle, maschinenabhängige Befehle, Mikrocode, Firmware-Befehle, Zustandseinstellungsdaten, Konfigurationsdaten für integrierte Schaltungen oder entweder um Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen, einschließlich einer objektorientierten Programmiersprache wie Smalltalk, C++ oder dergleichen, und prozeduralen Programmiersprachen, wie der Programmiersprache „C“ oder ähnlichen Programmiersprachen, geschrieben sind. Die computerlesbaren Programmbefehle können 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 Remote-Computer oder vollständig auf dem Remote-Computer oder Server ausgeführt werden. Im letzteren Fall kann der Ferncomputer mit dem Computer des Benutzers über jede Art von Netzwerk verbunden werden, einschließlich eines lokalen Netzwerks (LAN) oder eines Weitverkehrsnetzwerks (WAN), oder die Verbindung kann zu einem externen Computer hergestellt werden (z.B. über das Internet mit Hilfe eines Internet Service Providers). In einigen Ausführungsformen können elektronische Schaltungen, einschließlich z.B. programmierbare Logikschaltungen, feldprogrammierbare Gatterfelder (FPGA) oder programmierbare Logikfelder (PLA), die computerlesbaren Programmbefehle ausführen, indem sie die Zustandsinformationen der computerlesbaren Programmbefehle zur Personalisierung der elektronischen Schaltung nutzen, um Aspekte der vorliegenden Offenlegung auszuführen.
  • Aspekte der vorliegenden Offenlegung werden hierin unter Bezugnahme auf Flussdiagramm-Illustrationen und/oder Blockdiagramme von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Offenlegung beschrieben. Es wird davon ausgegangen, dass jeder Block der Flussdiagramm-Abbildungen und/oder Blockdiagramme und Kombinationen von Blöcken in den Flussdiagramm-Abbildungen und/oder Blockdiagrammen durch computerlesbare Programmanweisungen implementiert werden kann. Diese computerlesbaren Programmbefehle können einem Prozessor eines Allzweckrechners, eines Spezialrechners oder einer anderen programmierbaren Datenverarbeitungsvorrichtung zur Erzeugung einer Maschine zur Verfügung gestellt werden, so dass die Befehle, die durch den Prozessor des Rechners oder einer anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, Mittel zur Implementierung der im Flussdiagramm- und/oder Blockdiagrammblock oder in den Blockdiagrammen spezifizierten Funktionen/Aktionen schaffen. Diese computerlesbaren Programmbefehle können auch in einem computerlesbaren Speichermedium gespeichert werden, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Vorrichtungen anweisen kann, in einer bestimmten Weise zu funktionieren, so dass das computerlesbare Speichermedium mit den darin gespeicherten Befehlen einen Herstellungsgegenstand umfasst, der Befehle enthält, die Aspekte der im Flussdiagramm und/oder Blockdiagrammblock oder in den Blockdiagrammblöcken spezifizierten Funktion/Handlung implementieren. Die computerlesbaren Programmbefehle können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einrichtung geladen werden, um zu bewirken, dass eine Reihe von Betriebsvorgängen auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einrichtung ausgeführt werden, um einen computerimplementierten Prozess zu erzeugen, so dass die Befehle, die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einrichtung ausgeführt werden, die Funktionen/Handlungen implementieren, die in dem Flussdiagramm- und/oder Blockdiagrammblock oder den Blockdiagrammblöcken spezifiziert sind.
  • Das Flussdiagramm und die Blockdiagramme in den Figuren veranschaulichen die Architektur, Funktionalität und Funktionsweise möglicher Implementierungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedener Ausführungsformen der vorliegenden Offenlegung. In dieser Hinsicht kann jeder Block im Flussdiagramm oder in den Blockdiagrammen ein Modul, ein Segment oder einen Teil von Befehlen darstellen, der einen oder mehrere ausführbare Befehle zur Implementierung der angegebenen logischen Funktion(en) umfasst. In einigen alternativen Implementierungen können die Funktionen, die in den Blöcken zu berücksichtigen sind, außerhalb der in den Figuren angegebenen Reihenfolge auftreten. So können z.B. zwei nacheinander dargestellte Blöcke im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal in der umgekehrten Reihenfolge ausgeführt werden, je nach der betreffenden Funktionalität. Es ist zu beachten, dass jeder Block der Blockdiagramme und/oder der veranschaulichenden Flussdiagrammdarstellung sowie Kombinationen von Blöcken in den Blockdiagrammen und/oder der veranschaulichenden Flussdiagrammdarstellung durch auf Spezialzweck-Hardware basierende Systeme implementiert werden kann, die die spezifizierten Funktionen oder Handlungen ausführen oder Kombinationen von Spezialzweck-Hardware und Computerbefehlen ausführen.
  • Obwohl der Gegenstand oben im allgemeinen Kontext der computerausführbaren Anweisungen eines Computerprogrammprodukts beschrieben wurde, das auf einem Computer und/oder Computern läuft, werden diejenigen, die sich in der Technik auskennen, erkennen, dass diese Offenlegung auch in Kombination mit anderen Programmmodulen implementiert werden kann. Im Allgemeinen umfassen Programmmodule Routinen, Programme, Komponenten, Datenstrukturen usw., die bestimmte Aufgaben ausführen und/oder bestimmte abstrakte Datentypen implementieren. Darüber hinaus werden diejenigen, die sich auf dem Gebiet der Technik auskennen, es zu schätzen wissen, dass die erfinderischen computer-implementierten Verfahren mit anderen Computersystemkonfigurationen geübt werden können, einschließlich Ein- oder Mehrprozessor-Computersystemen, Mini-Computergeräten, Großrechnern sowie Computern, Handheld-Computergeräten (z.B. PDA, Telefon), mikroprozessorbasierter oder programmierbarer Unterhaltungs- oder Industrieelektronik und dergleichen. Die veranschaulichenden Aspekte können auch in verteilten Computerumgebungen geübt werden, in denen die Aufgaben von Fernverarbeitungsgeräten ausgeführt werden, die über ein Kommunikationsnetz miteinander verbunden sind. Einige, wenn auch nicht alle Aspekte dieser Offenlegung können jedoch auf eigenständigen Computern geübt werden. In einer verteilten Rechnerumgebung können sich Programmodule sowohl in lokalen als auch in Remote-Speichervorrichtungen befinden.
  • Die in dieser Offenlegung verwendeten Begriffe „Komponente“, „System“, „Plattform“, „Schnittstelle“ und dergleichen können sich auf eine rechnerbezogene Einheit oder eine Einheit, die sich auf eine betriebsbereite Maschine mit einer oder mehreren spezifischen Funktionalitäten bezieht, beziehen und/oder eine solche einschließen. Die hierin offengelegten Entitäten können entweder Hardware, eine Kombination aus Hardware und Software, Software oder Software im Betrieb sein. Eine Komponente kann zum Beispiel ein Prozess sein, der auf einem Prozessor, einem Prozessor, einem Objekt, einer ausführbaren Datei, einem Ausführungsstrang, einem Programm und/oder einem Computer läuft, ist aber nicht darauf beschränkt. Zur Veranschaulichung: Sowohl eine Anwendung, die auf einem Server läuft, als auch der Server können eine Komponente sein. Eine oder mehrere Komponenten können sich innerhalb eines Prozesses und/oder Ausführungs-Threads befinden, und eine Komponente kann auf einem Computer lokalisiert und/oder auf zwei oder mehrere Computer verteilt sein. In einem anderen Beispiel können entsprechende Komponenten von verschiedenen computerlesbaren Medien, auf denen verschiedene Datenstrukturen gespeichert sind, ausgeführt werden. Die Komponenten können über lokale und/oder Remote-Prozesse kommunizieren, z.B. in Entsprechung zu einem Signal mit einem oder mehreren Datenpaketen (z.B. Daten von einer Komponente, die mit einer anderen Komponente in einem lokalen System, einem verteilten System und/oder über ein Netzwerk wie das Internet mit anderen Systemen über das Signal interagieren). Als ein weiteres Beispiel kann eine Komponente eine Vorrichtung mit spezifischer Funktionalität sein, die durch mechanische Teile bereitgestellt wird, die durch elektrische oder elektronische Schaltungen betrieben werden, die durch eine von einem Prozessor ausgeführte Software- oder Firmware-Anwendung betrieben werden. In einem solchen Fall kann der Prozessor intern oder extern zu der Vorrichtung sein und zumindest einen Teil der Software- oder Firmware-Anwendung ausführen. Als ein weiteres Beispiel kann eine Komponente eine Vorrichtung sein, die eine spezifische Funktionalität durch elektronische Komponenten ohne mechanische Teile bereitstellt, wobei die elektronischen Komponenten einen Prozessor oder andere Mittel zur Ausführung von Software oder Firmware enthalten können, die zumindest teilweise die Funktionalität der elektronischen Komponenten verleihen. In einem Aspekt kann eine Komponente eine elektronische Komponente über eine virtuelle Maschine emulieren, z.B. innerhalb eines Cloud-Computing-Systems.
  • Des Weiteren soll der Begriff „oder“ eher ein einschließendes „oder“ als ein ausschließliches „oder“ bedeuten. Das heißt, sofern nicht anders angegeben oder aus dem Kontext klar hervorgeht, bedeutet „X beschäftigt A oder B“ eine der natürlichen einschließenden Permutationen. Das heißt, wenn X A verwendet; X verwendet B; oder X verwendet sowohl A als auch B, dann ist „X verwendet A oder B“ in jedem der vorstehenden Fälle erfüllt. Darüber hinaus sollten die Artikel „ein“ und „eine“, wie sie in der Subjektspezifikation und den beigefügten Zeichnungen verwendet werden, im Allgemeinen so ausgelegt werden, dass sie „eine oder mehrere“ bedeuten, es sei denn, sie sind anderweitig spezifiziert oder aus dem Kontext klar auf eine singuläre Form ausgerichtet. Die hier verwendeten Begriffe „Beispiel“ und/oder „exemplarisch“ werden so verwendet, dass sie als Beispiel, Instanz oder veranschaulichende Darstellung dienen. Zur Vermeidung von Zweifeln wird der hier offengelegte Gegenstand nicht durch solche Beispiele eingeschränkt. Darüber hinaus ist jeder Aspekt oder Entwurf, der hier als „Beispiel“ und/oder „beispielhaft“ beschrieben wird, nicht notwendigerweise so auszulegen, dass er gegenüber anderen Aspekten oder Entwürfen bevorzugt oder vorteilhaft ist, noch soll er gleichwertige beispielhafte Strukturen und Techniken ausschließen, die Durchschnittsfachleuten bekannt sind.
  • Wie er in der Fachspezifikation verwendet wird, kann sich der Begriff „Prozessor“ im Wesentlichen auf jede Recheneinheit oder Vorrichtung beziehen, die unter anderem, aber nicht ausschließlich, Einzelkernprozessoren, Einzelprozessoren mit Software-Multithread-Ausführungsfähigkeit, Mehrkernprozessoren, Mehrkernprozessoren mit Software-Multithread-Ausführungsfähigkeit, Mehrkernprozessoren mit Hardware-Multithread-Technologie, parallele Plattformen und parallele Plattformen mit verteiltem gemeinsamen Speicher umfasst. Darüber hinaus kann sich ein Prozessor auf eine integrierte Schaltung, eine anwendungsspezifische integrierte Schaltung (ASIC), einen digitalen Signalprozessor (DSP), ein Field Programmable Gate Array (FPGA), eine programmierbare logische Steuerung (PLC), ein komplexes programmierbares Logikbauelement (CPLD), eine diskrete Gate- oder Transistorlogik, diskrete Hardwarekomponenten oder eine beliebige Kombination davon beziehen, die dazu bestimmt sind, die hier beschriebenen Funktionen auszuführen. Ferner können Prozessoren nanoskalige Architekturen wie z.B., aber nicht nur, molekulare und quantenpunktbasierte Transistoren, Schalter und Gatter nutzen, um die Raumnutzung zu optimieren oder die Leistung von Benutzergeräten zu verbessern. Ein Prozessor kann auch als eine Kombination von Recheneinheiten implementiert werden. In dieser Offenlegung werden Begriffe wie „Speicher“, „Speicherung“, „Datenspeicher“, „Datenspeicherung“, „Datenbank“ und im Wesentlichen jede andere Informationsspeicherkomponente, die für den Betrieb und die Funktionalität einer Komponente relevant ist, verwendet, um sich auf „Speicherkomponenten“, in einem „Speicher“ enthaltene Entitäten oder Komponenten, die einen Speicher umfassen, zu beziehen. Es ist zu beachten, dass der hier beschriebene Speicher und/oder die hierin beschriebenen Speicherkomponenten entweder ein flüchtiger Speicher oder ein nichtflüchtiger Speicher sein können oder sowohl einen flüchtigen als auch einen nichtflüchtigen Speicher umfassen können. Zur Veranschaulichung und ohne Einschränkung kann ein nichtflüchtiger Speicher einen Festwertspeicher (ROM), einen programmierbaren ROM (PROM), einen elektrisch programmierbaren ROM (EPROM), einen elektrisch löschbaren ROM (EEPROM), einen Flash-Speicher oder einen nichtflüchtigen Speicher mit wahlfreiem Zugriff (RAM) (z.B. ferroelektrischer RAM (FeRAM)) umfassen. Zu den flüchtigen Speichern kann ein RAM gehören, das beispielsweise als externer Cache-Speicher fungieren kann. Zur Veranschaulichung und nicht zur Einschränkung: RAM ist in vielen Formen erhältlich, z. B. als synchrones RAM (SRAM), dynamisches RAM (DRAM), synchrones DRAM (SDRAM), SDRAM mit doppelter Datenrate (DDR-SDRAM), erweitertes SDRAM (ESDRAM), Synchlink-DRAM (SLDRAM), direktes Rambus-RAM (DRRAM), direktes dynamisches Rambus-RAM (DRDRAM) und dynamisches Rambus-RAM (RDRAM). Darüber hinaus sollen die hierin offengelegten Speicherkomponenten von Systemen oder computer-implementierten Verfahren diese und alle anderen geeigneten Typen von Speicher umfassen, ohne darauf beschränkt zu sein.
  • Was oben beschrieben wurde, sind lediglich beispielhaft beschriebene Systeme und computer-implementierte Verfahren. Es ist natürlich unmöglich, jede erdenkliche Kombination von Komponenten oder computer-implementierten Verfahren zum Zwecke der Beschreibung dieser Offenlegung zu beschreiben, aber ein Durchschnittsfachmann kann erkennen, dass viele weitere Kombinationen und Permutationen dieser Offenlegung möglich sind. Darüber hinaus sollen in dem Umfang, in dem die Begriffe „umfasst“, „hat“, „besitzt“ und dergleichen in der detaillierten Beschreibung, den Ansprüchen, Anhängen und Zeichnungen verwendet werden, diese Begriffe in ähnlicher Weise umfassend sein wie der Begriff „umfasst“, da „umfasst“ interpretiert wird, wenn es als Übergangswort in einem Anspruch verwendet wird.
  • Die Beschreibungen der verschiedenen Ausführungsformen wurden zum Zwecke der Veranschaulichung vorgelegt, sollen aber weder erschöpfend noch auf die offengelegten Ausführungsformen beschränkt sein. Viele Modifikationen und Variationen werden sich gegenüber den Durchschnittsfachleuten zeigen, ohne vom Umfang und Geist der beschriebenen Ausführungsformen abzuweichen. Die hier verwendete Terminologie wurde gewählt, um die Prinzipien der Ausführungsformen, die praktische Anwendung oder die technische Verbesserung gegenüber den auf dem Markt befindlichen Technologien am besten zu erklären oder um es Durchschnittsfachleuten zu ermöglichen, die hier offengelegten Ausführungsformen zu verstehen.

Claims (25)

  1. Ein System, umfassend: einen Speicher, der computerausführbare Komponenten speichert; und einen Prozessor, der die in dem Speicher gespeicherten computerausführbaren Komponenten ausführt, wobei die computerausführbaren Komponenten umfassen: eine Vorprozessorkomponente, die: eine Beschreibung einer Client-Anwendungsprogramm-Schnittstelle ändert, indem Textdaten, die mit der Beschreibung der Client-Anwendungsprogramm-Schnittstelle verknüpft sind, entfernt werden, was zu einer geänderten Beschreibung der Client-Anwendungsprogramm-Schnittstelle führt; und eine Ontologiekomponente, die: eine mit der Client-Anwendungsprogramm-Schnittstelle verknüpfte Leistung analysiert, um eine Ontologie zu erzeugen, die auf einer semantischen Ähnlichkeit zwischen der geänderten Beschreibung der Client-Anwendungsprogramm-Schnittstelle und einer oder mehreren vorangehenden Beschreibungen einer oder mehrerer vorangehender Client-Anwendungsprogramm-Schnittstellen basiert.
  2. Das System nach Anspruch 1, wobei die Ontologie ferner auf Präferenzdaten basiert, die repräsentativ für eine Präferenz einer Entität sind.
  3. Das System nach Anspruch 2, wobei die Präferenzdaten an die Ontologiekomponente gesendet werden, um gemäß der Präferenz der Entität analysiert zu werden.
  4. Das System nach Anspruch 2, wobei die Präferenz der Entität über eine textbasierte Abfrage, die von der Entität initiiert wird, an die Ontologiekomponente gesendet wird.
  5. Das System nach Anspruch 1, wobei die Ontologiekomponente eine Anwendungsprogramm-Schnittstelle empfiehlt, die auf einer von einer Entität initiierten textbasierten Abfrage basiert.
  6. Das System von Anspruch 3, wobei die Vorprozessorkomponente einen hierarchischen Intent erzeugt, die mit einem vorhergesagten Intent der Entität verglichen werden soll.
  7. Das System nach Anspruch 1, wobei die Vorprozessorkomponente die Textdaten auf Grundlage einer Häufigkeit eines Begriffs extrahiert, die als erfüllt bestimmt wird.
  8. Ein Computerprogrammprodukt, das Empfehlungen für Anwendungsprogramm-Schnittstellen erleichtert, wobei das Computerprogrammprodukt ein computerlesbares Speichermedium mit darin enthaltenen Programmbefehlen umfasst, wobei die Programmbefehle von einem Prozessor ausgeführt werden können, um den Prozessor dazu zu veranlassen: eine Beschreibung einer Client-Anwendungsprogramm-Schnittstelle zu ändern, indem Textdaten, die mit der Beschreibung der Client-Anwendungsprogramm-Schnittstelle verknüpft sind, entfernt werden, was zu einer geänderten Beschreibung der Client-Anwendungsprogramm-Schnittstelle führt; und eine mit der Client-Anwendungsprogramm-Schnittstelle verknüpfte Leistung zu analysieren, um eine Ontologie zu erzeugen, die auf einer semantischen Ähnlichkeit zwischen der geänderten Beschreibung der Client-Anwendungsprogramm-Schnittstelle und einer oder mehreren vorangehenden Beschreibungen einer oder mehrerer vorangehender Client-Anwendungsprogramm-Schnittstellen basiert.
  9. Das Computerprogrammprodukt nach Anspruch 8, wobei die Ontologie ferner auf Präferenzdaten basiert, die repräsentativ für eine Präferenz einer Entität sind.
  10. Das Computerprogrammprodukt nach Anspruch 9, wobei die Präferenz der Entität auf Grundlage einer textbasierten Abfrage verarbeitet wird, die von der Entität initiiert wird.
  11. Das Computerprogrammprodukt nach Anspruch 10, wobei die Programmbefehle ferner durch den Prozessor ausführbar sind, um den Prozessor zu veranlassen, einen hierarchischen Intent zu erzeugen, die mit einem vorhergesagten Intent der Entität verglichen wird.
  12. Das Computerprogrammprodukt nach Anspruch 8, wobei die Programmbefehle ferner durch den Prozessor ausführbar sind, um den Prozessor zu veranlassen, die Textdaten auf Grundlage einer definierten Bedingung, die mit einem Begriff verknüpft ist, zu extrahieren.
  13. Das Computerprogrammprodukt nach Anspruch 12, wobei die definierte Bedingung eine Häufigkeit des Begriffs umfasst, die als erfüllt bestimmt wird.
  14. Ein computer-implementiertes Verfahren, umfassend: Ändern, durch eine Vorrichtung, die in Wirkverbindung mit einem Prozessor steht, einer Beschreibung einer Client-Anwendungsprogramm-Schnittstelle durch Entfernen von Textdaten, die mit der Beschreibung der Client-Anwendungsprogramm-Schnittstelle verknüpft sind, was zu einer geänderten Beschreibung der Client-Anwendungsprogramm-Schnittstelle führt; und Analysieren, durch die Vorrichtung, einer mit der Client-Anwendungsprogramm-Schnittstelle verknüpften Leistung, um eine Ontologie zu erzeugen, die auf einer semantischen Ähnlichkeit zwischen der geänderten Beschreibung der Client-Anwendungsprogramm-Schnittstelle und einer oder mehreren vorangehenden Beschreibungen einer oder mehrerer vorangegangener Client-Anwendungsprogramm-Schnittstellen basiert.
  15. Das computer-implementierte Verfahren nach Anspruch 14, wobei die Ontologie ferner auf Präferenzdaten basiert.
  16. Das computer-implementierte Verfahren nach Anspruch 15, wobei die Präferenzdaten repräsentativ für eine Präferenz einer Entität sind.
  17. Das computer-implementierte Verfahren nach Anspruch 16, wobei die Präferenz der Entität über eine von der Entität initiierte textbasierte Abfrage verarbeitet wird.
  18. Das computer-implementierte Verfahren nach Anspruch 14, ferner umfassend: Empfehlen einer Anwendungsprogramm-Schnittstelle durch die Vorrichtung.
  19. Das computerimplementierte Verfahren nach Anspruch 18, wobei das Empfehlen auf einer textbasierten Abfrage basiert, die von einer Entität initiiert wird.
  20. Das computer-implementierte Verfahren nach Anspruch 17, ferner umfassend: Erzeugen, durch die Vorrichtung, eines hierarchischen Intents, die mit einem vorhergesagten Intent der Entität zu vergleichen ist.
  21. Ein System, umfassend: einen Speicher, der computerausführbare Komponenten speichert; und einen Prozessor, der die in dem Speicher gespeicherten computerausführbaren Komponenten ausführt, wobei die computerausführbaren Komponenten umfassen: eine Ontologiekomponente, die: Domänenontologiedaten analysiert, die repräsentativ für eine Domänenontologie sind, die von einer Entität empfangen wurde, basierend auf Feedback-Daten, die von der Entität bereitgestellt werden; und eine neuronale Netz-Komponente, die: ein Anwendungsprogramm-Empfehlungssystem trainiert, um eine Community auf Grundlage der Domänenontologiedaten zu erzeugen.
  22. Das System nach Anspruch 21, wobei die neuronale Netz-Komponente Textdaten, die aus einer Abfrage der Entität stammen, der Community auf Grundlage der Domänenontologiedaten zuordnet.
  23. Das System nach Anspruch 22, wobei Textdaten erste Textdaten sind und wobei die computerausführbaren Komponenten ferner umfassen: eine Vorprozessorkomponente, die zweite Textdaten aus der Abfrage extrahiert, um einen vorhergesagten Intent der Entität zu bestimmen.
  24. Ein Computerprogrammprodukt, das Empfehlungen für Anwendungsprogramm-Schnittstellen erleichtert, wobei das Computerprogrammprodukt ein computerlesbares Speichermedium mit damit enthaltenen Programmbefehlen umfasst, wobei die Programmbefehle durch einen Prozessor ausführbar sind, um den Prozessor dazu zu veranlassen: Domänenontologiedaten zu analysieren, die repräsentativ für eine Domänenontologie sind, die von einer Entität erhalten wurde, basierend auf Feedback-Daten, die von der Entität bereitgestellt werden; und ein Empfehlungssystem für Anwendungsprogramme zu trainieren, um eine Community auf Grundlage der Domänenontologiedaten zu erzeugen.
  25. Das Computerprogrammprodukt nach Anspruch 24, wobei die Programmbefehle ferner durch den Prozessor ausführbar sind, um den Prozessor zu veranlassen, Textdaten, die aus einer Abfrage der Entität stammen, der Community auf Grundlage der Domänenontologiedaten zuzuordnen.
DE112018005813.1T 2017-12-20 2018-12-12 Erleichterung von domänen- und kundenspezifischen empfehlungen für anwendungsprogramm-schnittstellen Pending DE112018005813T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/848,589 2017-12-20
US15/848,589 US10803108B2 (en) 2017-12-20 2017-12-20 Facilitation of domain and client-specific application program interface recommendations
PCT/IB2018/059903 WO2019123112A1 (en) 2017-12-20 2018-12-12 Facilitation of domain and client-specific application program interface recommendations

Publications (1)

Publication Number Publication Date
DE112018005813T5 true DE112018005813T5 (de) 2020-07-30

Family

ID=66814490

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112018005813.1T Pending DE112018005813T5 (de) 2017-12-20 2018-12-12 Erleichterung von domänen- und kundenspezifischen empfehlungen für anwendungsprogramm-schnittstellen

Country Status (6)

Country Link
US (1) US10803108B2 (de)
JP (1) JP7316721B2 (de)
CN (1) CN111386524B (de)
DE (1) DE112018005813T5 (de)
GB (1) GB2583638A (de)
WO (1) WO2019123112A1 (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110674287A (zh) * 2018-06-07 2020-01-10 阿里巴巴集团控股有限公司 层级意图体系的建立方法及装置
US10977250B1 (en) * 2018-09-11 2021-04-13 Intuit, Inc. Responding to similarity queries using vector dimensionality reduction
US11170032B2 (en) * 2018-10-03 2021-11-09 Walmart Apollo, Llc Method and apparatus for determining responses to digital inquiry related questions
US11194331B2 (en) * 2018-10-30 2021-12-07 The Regents Of The University Of Michigan Unsupervised classification of encountering scenarios using connected vehicle datasets
US11404058B2 (en) 2018-10-31 2022-08-02 Walmart Apollo, Llc System and method for handling multi-turn conversations and context management for voice enabled ecommerce transactions
US11238850B2 (en) * 2018-10-31 2022-02-01 Walmart Apollo, Llc Systems and methods for e-commerce API orchestration using natural language interfaces
US11288453B1 (en) * 2019-03-22 2022-03-29 Pinterest, Inc. Key-word identification
CN112351076B (zh) * 2020-10-21 2023-07-18 咪咕文化科技有限公司 推荐***api的生成方法、装置、电子设备及存储介质
CN112799928B (zh) * 2021-01-29 2023-08-18 索为技术股份有限公司 基于知识图谱的工业app关联性分析方法、装置及介质
US11635878B2 (en) * 2021-01-31 2023-04-25 Walmart Apollo, Llc Systems and methods for altering a graphical user interface
CN115862333B (zh) * 2022-12-07 2023-11-21 东南大学 考虑信息流特征的高速公路车路协同场景和功能划分方法

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6286047B1 (en) 1998-09-10 2001-09-04 Hewlett-Packard Company Method and system for automatic discovery of network services
US6640231B1 (en) 2000-10-06 2003-10-28 Ontology Works, Inc. Ontology for database design and application development
US7734652B2 (en) 2003-08-29 2010-06-08 Oracle International Corporation Non-negative matrix factorization from the data in the multi-dimensional data table using the specification and to store metadata representing the built relational database management system
US7383269B2 (en) * 2003-09-12 2008-06-03 Accenture Global Services Gmbh Navigating a software project repository
US7716357B2 (en) 2003-10-24 2010-05-11 Microsoft Corporation Service discovery and publication
US20070288419A1 (en) 2006-06-07 2007-12-13 Motorola, Inc. Method and apparatus for augmenting data and actions with semantic information to facilitate the autonomic operations of components and systems
US8813102B2 (en) 2008-02-22 2014-08-19 Samsung Electronics Co., Ltd. Method and apparatus for generating mashup graph, and method and apparatus for recommending mashup service
US20100235313A1 (en) * 2009-03-16 2010-09-16 Tim Rea Media information analysis and recommendation platform
US20110153590A1 (en) 2009-12-18 2011-06-23 Electronics And Telecommunications Research Institute Apparatus and method for searching for open api and generating mashup block skeleton code
US8965896B2 (en) 2009-12-22 2015-02-24 Nec Corporation Document clustering system, document clustering method, and recording medium
US8627322B2 (en) 2010-10-29 2014-01-07 Google Inc. System and method of active risk management to reduce job de-scheduling probability in computer clusters
US8719257B2 (en) 2011-02-16 2014-05-06 Symantec Corporation Methods and systems for automatically generating semantic/concept searches
JP5730413B2 (ja) 2011-02-25 2015-06-10 エンパイア テクノロジー ディベロップメント エルエルシー オントロジ拡張
US8577914B2 (en) 2011-05-18 2013-11-05 Google Inc. APIS discovery service
US9621435B2 (en) 2012-09-07 2017-04-11 Oracle International Corporation Declarative and extensible model for provisioning of cloud based services
US9336533B2 (en) 2013-03-13 2016-05-10 Salesforce.Com, Inc. Systems, methods, and apparatuses for implementing a similar command with a predictive query interface
US9130900B2 (en) 2013-03-15 2015-09-08 Bao Tran Assistive agent
US9965792B2 (en) 2013-05-10 2018-05-08 Dell Products L.P. Picks API which facilitates dynamically injecting content onto a web page for search engines
US9448859B2 (en) 2013-09-17 2016-09-20 Qualcomm Incorporated Exploiting hot application programming interfaces (APIs) and action patterns for efficient storage of API logs on mobile devices for behavioral analysis
CN104516910B (zh) * 2013-09-26 2018-01-12 Sap欧洲公司 在客户端服务器环境中推荐内容
GB2519348B (en) 2013-10-18 2021-04-14 Vision Semantics Ltd Visual data mining
EP3063652B1 (de) * 2013-10-30 2020-04-29 Hewlett-Packard Enterprise Development LP Entdeckung einer anwendungsprogrammierbaren schnittstelle (api)
US9146787B2 (en) * 2013-11-07 2015-09-29 Accenture Global Services Limited Analytics for application programming interfaces
US9015730B1 (en) 2013-12-17 2015-04-21 International Business Machines Corporation Natural language access to application programming interfaces
KR102067017B1 (ko) 2014-01-27 2020-02-11 한국전자통신연구원 매쉬업 서비스를 위한 가상 api 제공 장치 및 방법
US9886247B2 (en) * 2014-10-30 2018-02-06 International Business Machines Corporation Using an application programming interface (API) data structure in recommending an API composite
US20160162464A1 (en) 2014-12-09 2016-06-09 Idibon, Inc. Techniques for combining human and machine learning in natural language processing
US9588738B2 (en) * 2015-02-16 2017-03-07 International Business Machines Corporation Supporting software application developers to iteratively refine requirements for web application programming interfaces
US10061848B2 (en) 2015-05-22 2018-08-28 Microsoft Technology Licensing, Llc Ontology-crowd-relevance deep response generation
CN106209959A (zh) 2015-05-26 2016-12-07 徐尚英 基于用户需求的网络服务智能发现方法
US9921952B2 (en) 2015-06-02 2018-03-20 International Business Machines Corporation Early risk identification in DevOps environments
US10354006B2 (en) * 2015-10-26 2019-07-16 International Business Machines Corporation System, method, and recording medium for web application programming interface recommendation with consumer provided content
US10705835B2 (en) 2015-12-03 2020-07-07 International Business Machines Corporation Transparent multi-architecture support in a container based cloud
US9626627B1 (en) * 2016-01-26 2017-04-18 International Business Machines Corporation Predicting API storytelling mapping
US10031745B2 (en) 2016-02-02 2018-07-24 International Business Machines Corporation System and method for automatic API candidate generation
US10606658B2 (en) * 2016-03-22 2020-03-31 International Business Machines Corporation Approach to recommending mashups
US10360224B2 (en) 2016-03-28 2019-07-23 International Business Machines Corporation Image and data capture and machine learning for automatic generation of search queries
US20170364331A1 (en) 2016-06-17 2017-12-21 International Business Machines Corporation Method to support multiple versions of apis and to control run-time execution of an api
CN106445515A (zh) 2016-09-18 2017-02-22 深圳市华云中盛科技有限公司 一种基于容器的PaaS云的实现方法
US20180232442A1 (en) * 2017-02-16 2018-08-16 International Business Machines Corporation Web api recommendations
CN107122469B (zh) * 2017-04-28 2019-12-17 中国人民解放军国防科学技术大学 基于语义相似度与时效性频率的查询推荐排序方法与装置
CN107479879B (zh) 2017-07-28 2021-09-14 扬州大学 一种面向软件功能维护的api及其使用推荐方法
US10409820B2 (en) * 2017-09-19 2019-09-10 Adobe Inc. Semantic mapping of form fields
US10360087B2 (en) * 2017-10-27 2019-07-23 International Business Machines Corporation Web API recommendations based on usage in cloud-provided runtimes
US10579371B2 (en) * 2017-12-13 2020-03-03 International Business Machines Corporation Recommendations for custom software upgrade by cognitive technologies

Also Published As

Publication number Publication date
JP7316721B2 (ja) 2023-07-28
US10803108B2 (en) 2020-10-13
GB202010666D0 (en) 2020-08-26
US20190188319A1 (en) 2019-06-20
CN111386524A (zh) 2020-07-07
GB2583638A (en) 2020-11-04
CN111386524B (zh) 2023-09-12
JP2021508866A (ja) 2021-03-11
WO2019123112A1 (en) 2019-06-27

Similar Documents

Publication Publication Date Title
DE112018005813T5 (de) Erleichterung von domänen- und kundenspezifischen empfehlungen für anwendungsprogramm-schnittstellen
CN107808011B (zh) 信息的分类抽取方法、装置、计算机设备和存储介质
DE102019000294A1 (de) Erstellen unternehmensspezifischer Wissensgraphen
DE112018004376T5 (de) Schützen kognitiver systeme vor auf gradienten beruhenden angriffen durch die verwendung irreführender gradienten
DE112018000334T5 (de) System und Verfahren zur domänenunabhängigen Aspektebenen-Stimmungserkennung
DE102020113545A1 (de) Verfahren, vorrichtungen, systeme und erzeugnisse zum bereitstellen von abfrageauswahlsystemen
DE102015009910A1 (de) Automatische Aggregation von Online-Benutzerprofilen
DE112020003365T5 (de) Überwachte kreuzmodale wiedergewinnung für zeitreihen und text unter verwendung von multimodalen triplettverlusten
DE112013004082T5 (de) Suchsystem der Emotionsentität für das Microblog
CN111344695B (zh) 促进特定于域和客户端的应用程序接口推荐
DE112021001986T5 (de) Verfahren und System zum Verarbeiten von Datenaufzeichnungen
DE102019004300A1 (de) Verwendung eines dynamischen speichernetzwerks zum verfolgen digitaler dialogzustände und erzeugen von antworten
Kmail et al. An automatic online recruitment system based on exploiting multiple semantic resources and concept-relatedness measures
DE102022201222A1 (de) Neuronales netz mit interaktionsschicht, zum suchen, abrufen und einstufen
WO2021032824A1 (de) Verfahren und vorrichtung zur vorauswahl und ermittlung ähnlicher dokumente
DE112018006345T5 (de) Abrufen von unterstützenden belegen für komplexe antworten
DE112020003538T5 (de) Kreuzmodale wiedergewinnung mit wortüberlappungsbasiertem clustern
DE102016010910A1 (de) Strukturiertes Modellieren und Extrahieren von Wissen aus Bildern
DE112020003909T5 (de) Verfahren zum multimodalen abrufen bzw. wiedergewinnen und clustern unter verwendung einer tiefen cca und aktiver paarweiser abfragen
DE102015121509A1 (de) Methodik und Vorrichtung zur Konsistenzprüfung durch Vergleich von Ontologiemodellen
DE112018005272T5 (de) Suchen von mehrsprachigen dokumenten auf grundlage einer extraktion der dokumentenstruktur
DE102021004562A1 (de) Abwandlung von Szenengraphen auf Grundlage von Befehlen in natürlicher Sprache
DE112017007530T5 (de) Entitätsmodell-erstellung
DE102021130081A1 (de) Auf deep learning basierende automatische ontologieextraktion zur erfassung von neuen wissensbereichen
DE102018007024A1 (de) Dokumentdurchsuchen mittels grammatischer einheiten

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R084 Declaration of willingness to licence