DE102016125509A1 - Einbindung von auswählbaren Anwendungsverknüpfungen in Nachrichtenaustausch-Threads - Google Patents

Einbindung von auswählbaren Anwendungsverknüpfungen in Nachrichtenaustausch-Threads Download PDF

Info

Publication number
DE102016125509A1
DE102016125509A1 DE102016125509.2A DE102016125509A DE102016125509A1 DE 102016125509 A1 DE102016125509 A1 DE 102016125509A1 DE 102016125509 A DE102016125509 A DE 102016125509A DE 102016125509 A1 DE102016125509 A1 DE 102016125509A1
Authority
DE
Germany
Prior art keywords
application
thread
messaging
processors
computer
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
DE102016125509.2A
Other languages
English (en)
Inventor
Tilke Judd
Yariv ADAN
Behshad Behzadi
Lucas Mirelmann
Jan Lamecki
Dhruv Bakshi
Zaheed Sabur
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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of DE102016125509A1 publication Critical patent/DE102016125509A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • 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/33Querying
    • G06F16/338Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • 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/316Indexing structures
    • G06F16/328Management therefor
    • 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/33Querying
    • G06F16/3331Query processing
    • G06F16/3332Query translation
    • G06F16/3334Selection or weighting of terms from queries, including natural language queries
    • 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/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/93Document management systems
    • G06F16/94Hypermedia
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • G06F16/9558Details of hyperlinks; Management of linked annotations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/134Hyperlinking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/186Templates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • H04L51/046Interoperability with other network applications or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/06Message adaptation to terminal or network requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/07User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
    • H04L51/18Commands or executable codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/216Handling conversation history, e.g. grouping of messages in sessions or threads
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/12Messaging; Mailboxes; Announcements

Abstract

Verfahren, Vorrichtungen, Systeme und computerlesbare Medien sind vorgesehen, um Anwendungsverknüpfungen in Nachrichtenaustausch-Threads einzubinden. Ein oder mehrere Stichwörter, die von einem Nachrichtenaustausch-Thread mit zwei oder mehreren Nachrichtenaustausch-Clients ausgehen, können erfasst werden. Das eine oder die mehreren Stichwörter können die Einbindung einer auswählbaren Verknüpfung zu einer bestimmten Anwendung in den Nachrichtenaustausch-Thread auslösen. Mindestens eine auf einem gegebenen, von einem Teilnehmer an dem Nachrichtenaustausch-Thread betriebenen Client-Computergerät installierte Kandidatenanwendung kann identifiziert werden. Die Kandidatenanwendung kann mit dem Inhalt des Nachrichtenaustausch-Threads verbunden sein. Eine auswählbare Verknüpfung kann in ein Transkript des Nachrichtenaustausch-Threads, das auf einer grafischen Benutzeroberfläche eines auf dem gegebenen Client-Computergerät ausgeführten Nachrichtenaustausch-Clients angezeigt wird, integriert werden. Die auswählbare Verknüpfung kann durch den Teilnehmer aktivierbar sein, um den Teilnehmer einer Oberfläche auszusetzen, die mit einer entsprechenden Kandidatenanwendung verbunden ist.

Description

  • Hintergrund
  • Mehrere Benutzer können über Nachrichtenaustausch-Threads, die mittels verschiedener Techniken implementiert werden können, miteinander kommunizieren, wie beispielsweise Textnachrichten, Online-Chats (z. B. Instant-Messenger, Internet-Relay-Chats usw.), Social Network Messaging und so weiter. Nachrichtenaustausch-Client-Anwendungen (oder „Apps”), wie beispielsweise Textnachrichten-Apps, Online-Chat-Apps, Apps für soziale Netzwerke usw., können zumindest einen Teil eines Transkriptes (z. B. eine Live- oder Near-Live-Aufzeichnung von Texten bzw. Bildern, die in Echtzeit aktualisiert werden, während sich die Benutzer unterhalten) eines laufenden Nachrichtenaustausch-Threads als Teil einer grafischen Benutzeroberfläche anzeigen, damit die Benutzer der Konversation folgen können. Der laufende Nachrichtenaustausch-Thread und somit das angezeigte Transkript ist typischerweise auf Text oder andere Daten beschränkt, wie beispielsweise Bilder, die Benutzer bewusst und explizit in den Nachrichtenaustausch-Thread einbinden. Folglich müssen Benutzer, die verschiedene Aktionen in Reaktion auf verschiedene Ereignisse des Gesprächs durchführen möchten, wie beispielsweise eine Reservierung vornehmen oder eine Karte aufrufen, hierfür zu einer anderen Anwendung wechseln. Ein manuelles Umschalten von Anwendungen, z. B. durch Minimieren des Nachrichtenaustausch-Clients zum Lokalisieren und Öffnen einer gewünschten Anwendung und das anschließende Ausfüllen eines oder mehrerer Datenfelder kann lästig sein sowie den Fluss der Konversation stören.
  • Kurzdarstellung
  • Die vorliegende Offenbarung ist allgemein auf Verfahren, Vorrichtungen und computerlesbare Medien (transitorische und nicht transitorische) auf das direkte Einbinden von „wählbaren Anwendungsverknüpfungen” – von einem Teilnehmer an einen Nachrichtenaustausch-Thread bedienbare grafische Elemente zur Anzeige einer mit einer mit einer anderen Anwendung verbundenen Oberfläche für den Teilnehmer – in ein auf einem oder mehreren Nachrichtenaustausch-Clients gerenderten Transkript des Nachrichtenaustausch-Threads ausgerichtet. Die Einbindung auswählbarer Anwendungsverknüpfungen in den Nachrichtenaustausch-Thread kann die Anzahl der Benutzereingaben reduzieren, die ein Benutzer in einem Gerät vornehmen muss, um auf über Verknüpfungen verfügbare Informationen zuzugreifen. Dies kann insbesondere für Benutzer mit geringer Geschicklichkeit oder für Benutzer, die ansonsten Schwierigkeiten haben, Benutzereingaben in ein Gerät vorzunehmen, von Vorteil sein. Für zumindest diese Benutzer kann die Einbindung auswählbarer Anwendungsverknüpfungen in den Nachrichtenaustausch-Thread die Zuverlässigkeit und die Geschwindigkeit der Verwendung der Vorrichtung erhöhen, z. B. indem der Benutzer Fehler aufgrund seiner oder ihrer relativ geringen Geschicklichkeit vermeidet. In verschiedenen Implementierungen können die in ein Transkript einzubindenden auswählbaren Anwendungsverknüpfungen durch Ressourcen des Client-Gerätes, das das Transkript als Teil eines Nachrichtenaustausch-Clients rendert, festgelegt werden. So können beispielsweise eine oder mehrere Kandidatenanwendungen, die für den Inhalt des Nachrichtenaustausch-Threads irgendwie relevant sind und die ebenfalls auf einem gegebenen, von einem Teilnehmer an dem Nachrichtenaustausch-Thread betriebenen Client-Computergerät installiert sind, identifiziert werden. In einigen Implementierungen können nur auswählbare Anwendungsverknüpfungen zu installierten Anwendungen präsentiert werden (es sei denn, es sind keine anwendbaren Anwendungen installiert, wobei in diesem Fall eine Verknüpfung zu einem Anwendungsinstallierer oder zu einer Web-Seite mit entsprechender Funktionalität einer nicht installierten App enthalten sein kann).
  • Das Einfügen auswählbarer Anwendungsverknüpfungen in ein Transkript kann durch verschiedene Stichwörter ausgelöst werden. In einigen Implementierungen können die Stichwörter von dem Inhalt des Nachrichtenaustausch-Threads ausgehen. Zum Beispiel kann ein Teilnehmer fragen: „Wo sollen wir heute Abend essen?” Ein anderer Teilnehmer könnte mit einem spezifischen Restaurantvorschlag antworten. Ein solcher Austausch kann das Einfügen einer oder mehrerer auswählbarer Anwendungsverknüpfungen auslösen, die dem Restaurant zugeordnet sind (z. B. eine Verknüpfung zu einer Karten-App, die den geografischen Standort anzeigt, eine Verknüpfung zu einer Reservierungs-App zum Vornehmen einer Reservierung, usw.). Zusätzlich oder alternativ kann die bloße Erwähnung einer Entität eine Suche in einer Wissensbasis mit bekannten Entitäten (z. B. Personen, Orten, Dingen) und Beziehungen zwischen diesen auslösen, um eine bekannte Entität zu identifizieren, und nach dem Identifizieren einer bekannten Entität das Einfügen eines auswählbaren Anwendungsverknüpfung zu einer Anwendung, die für diese Entität (beispielsweise würde Restaurant eine Reservierungs-App, ein Musiker würde eine Musik-App auslösen, usw.) relevant ist. Es versteht sich, dass derartige Suchvorgänge von besonderem Vorteil für Benutzer mit geringer Geschicklichkeit oder für Benutzer, die es sonst schwierig finden würden, Eingaben in ein Gerät zur Identifizierung der Entität vorzunehmen, sein können. Als ein weiteres Beispiel können ein oder mehrere Schlüsselwörter oder Schlüsselphrasen einer oder mehreren Anwendungen zugeordnet werden, sodass, wenn das Schlüsselwort oder die Phrase in dem Nachrichtenaustausch-Thread erfasst wird, eine auswählbare Anwendungsverknüpfung zu dieser Anwendung eingefügt wird. Als ein weiteres Beispiel kann ein Teilnehmer explizit das Einfügen auswählbarer Anwendungsverknüpfungen in das Transkript anfordern, z. B. durch den Aufruf eines sogenannten persönlichen Assistenzmoduls oder „Bots” zum Einfügen von Verknüpfungen (z. B. „[BOT], nehmen wir eine Reservierung bei XYZ vor”).
  • Auf einem Client-Gerät installierte Anwendungen können auf verschiedene Weisen identifiziert werden. In einigen Implementierungen können die auf dem Client-Gerät installierten Anwendungen von dem Client-Gerät entfernt bekannt sein, z. B. einem Anwendungsspeicherserver, der eine Aufzeichnung über die auf einem oder mehreren Client-Geräten installierte Anwendungen aufweist, die ein „Ökosystem” der von einem Teilnehmer betriebenen Geräte bilden. In einem solchen Fall kann die eine oder können die mehreren auswählbaren Anwendungsverknüpfungen angebenden Daten, die mit Anwendungen verbunden sind, von denen bekannt ist, dass diese auf einem Client-Gerät installiert sind, auf das Client-Gerät heruntergeladen werden, damit das Client-Gerät auswählbare Anwendungsverknüpfungen zu diesen Anwendungen in einen Nachrichten-Thread einbinden kann. In zumindest diesen Szenarien können die auswählbaren, in dem Nachrichtenaustausch-Thread enthaltenen Verknüpfungen einen Effekt außerhalb des Geräts durch die Anzeige von Verknüpfungen zeigen – zumindest dadurch, indem Daten von einem oder mehreren externen Computer auf das Gerät heruntergeladen werden. Dieser Prozess kann durch auswählbare Verknüpfungen, die sicherstellen, dass das Risiko fehlerhafter Daten, die aufgrund eines oder mehrerer fehlerhafter Benutzereingaben, wie beispielsweise das Herunterladen eines fehlerhaften manuellen Suchergebnisses auf das Gerät durch eine Benutzerauswahl, signifikant reduziert wird, zuverlässiger gemacht werden. Hierdurch kann der Netzwerkverkehr verringert werden und das Gesamtsystem effizienter arbeiten. In einigen Implementierungen können mehrere installierte Anwendungen aus der Ferne identifiziert werden (und diese anzeigende Daten, die auf den Client heruntergeladen werden), und anschließend kann das Client-Gerät eine Untermenge der mehreren Anwendungen basierend auf verschiedenen Signalen, wie beispielsweise die Häufigkeit der Verwendung der Anwendung (wie z. B. auf einem oder mehreren Client-Computergeräten des Teilnehmer-Ökosystems oder auf einem einzelnen Client-Computergerät), auswählen. In einigen Implementierungen kann das Client-Gerät selbst die installierten Anwendungen identifizieren. Zum Beispiel kann eine Anwendung „Kategorie” (z. B. „Karten”, „Reservierungen”, „Musik”, „Film”, „Messaging”. „Videokonferenzen”, „Telefon” usw.) basierend auf dem Inhalt eines Nachrichtenaustausch-Threads identifiziert werden, und anschließend kann ein Client-Gerät innerhalb der Kategorie identifizieren, welche ggf. vorhandenen übereinstimmenden Anwendungen installiert sind.
  • In einigen Implementierungen kann ein computerimplementiertes Verfahren bereitgestellt werden, das die folgenden Operationen umfasst: Erfassen eines oder mehrerer Stichwörter, die von einem Nachrichtenaustausch-Thread ausgehen, der zwei oder mehrere Nachrichtenaustausch-Clients umfasst, wobei das eine oder die mehreren Stichwörter die Einbindung einer oder mehrerer auswählbarer Verknüpfungen mit einer oder mehreren, vom Nachrichtenaustausch-Thread externen Anwendungen, in den Nachrichtenaustausch-Thread auslösen; Identifizieren einer oder mehrerer Kandidatenanwendungen, die auf einem gegebenen Client-Computergerät installiert sind, das von einem Teilnehmer für den Nachrichtenaustausch-Thread verwendet wird, wobei die eine oder die mehreren Kandidatenanwendungen dem Inhalt des Nachrichtenaustausch-Threads zugeordnet sind, und das Einbinden einer oder mehrerer auswählbarer Verknüpfungen in ein Transkript des Nachrichtenaustausch-Threads, das auf einer grafischen Benutzeroberfläche eines auf dem gegebenen Client-Computergerät ausgeführten Nachrichtenaustausch-Clients angezeigt wird, wobei jede auswählbare Verknüpfung von dem Teilnehmer bedienbar ist, um zu bewirken, dass das gegebene Client-Computergerät den Teilnehmer einer mit einer jeweiligen Kandidatenanwendung verknüpften Oberfläche aussetzt.
  • Dieses Verfahren und andere Implementierungen der hierin offenbarten Technik können jeweils optional eines oder mehrere der folgenden Merkmale umfassen.
  • In verschiedenen Implementierungen kann die Identifizierung entfernt von dem gegebenen Client-Computergerät durchgeführt werden, und die eine oder mehrere auswählbare Verknüpfungen angebenden Daten können auf das gegebene Client-Gerät heruntergeladen werden. In verschiedenen Implementierungen kann das Verfahren ferner die Auswahl einer Untermenge der heruntergeladenen oder der mehreren auswählbaren Verknüpfungen zur Anzeige auf der Grundlage eines oder mehrerer Informationssignale durch das gegebene Client-Gerät umfassen. In verschiedenen Implementierungen kann das eine oder die mehreren Informationssignale eine Häufigkeitsangabe der Verwendung der einen oder mehreren Kandidatenanwendungen enthalten. In anderen Implementierungen kann die Identifizierung durch einen oder mehrere Prozessoren durchgeführt werden, die Bestandteil des gegebenen Client-Computergerätes sind.
  • In verschiedenen Implementierungen kann das eine oder können die mehreren Stichwörter von dem Inhalt des Nachrichtenaustausch-Threads ausgehen. In verschiedenen Implementierungen kann das eine oder können die mehreren Stichwörter ein Schlüsselwort oder eine Phrase enthalten, die mit einer bestimmten Anwendung verknüpft ist. In verschiedenen Implementierungen kann das eine oder können die mehreren Stichwörter eine Aussage enthalten, die von einem Teilnehmer des Nachrichtenaustausch-Threads an einen anderen Teilnehmer gerichtet ist, die mit einem Muster übereinstimmt, das einer bestimmten Anwendung zugeordnet ist. In verschiedenen Implementierungen kann das eine oder können die mehreren Stichwörter eine Übereinstimmung zwischen der Aussage und einer Vorlage enthalten, die der bestimmten Anwendung zugeordnet ist. In einigen Implementierungen kann die Vorlage aus einem Korpus von Nachrichten erzeugt werden, der Nachrichten von vorhergehenden Nachrichtenaustausch-Threads enthält. In einigen Implementierungen kann die Vorlage mit einer Gruppe von Nachrichten aus dem Korpus verknüpft sein, die ein oder mehrere Attribute gemeinsam aufweisen.
  • In verschiedenen Implementierungen kann das Identifizieren das Identifizieren eines auf dem gegebenen Client-Computergerät installierten Web-Browsers, in Reaktion auf eine Bestimmung, dass eine gegebene, mit dem Inhalt des Nachrichtenaustausch-Threads verknüpfte Anwendung nicht auf dem gegebenen Client-Computer installiert ist, als Kandidatenanwendung identifiziert werden. In verschiedenen Implementierungen kann das Einbinden die Aufnahme einer auswählbaren Verknüpfung zu einer interaktiven Web-Seite in das Transkript beinhalten, wobei die interaktive Web-Seite eine Funktionalität umfasst, die der Funktionalität der gegebenen, nicht auf dem gegebenen Client-Computergerät installierten Anwendung entspricht. In anderen Implementierungen kann das Integrieren das Einbinden einer auswählbaren Verknüpfung zu einer Web-Seite, die dem Herunterladen eines Installers der gegebenen Anwendung zugeordnet ist, in das Transkript enthalten.
  • In verschiedenen Implementierungen kann das Verfahren ferner das Bestimmen eines Kontexts eines oder mehrerer Teilnehmer an dem Nachrichtenaustausch-Thread und das Vorbereiten eines oder mehrerer Datenpunkte, die mit der mindestens einen oder den mehreren Kandidaten-Anwendungen verbunden sind, basierend auf dem bestimmten Kontext, umfassen. In verschiedenen Implementierungen kann das Bestimmen des Kontexts das Empfangen von einem oder mehreren kontextbezogenen Signalen von dem einen oder den mehreren Client-Geräten beinhalten. In verschiedenen Implementierungen kann das eine oder können die mehreren kontextbezogenen Signale einen geografischen Standort von mindestens einem Teilnehmer an dem Nachrichtenaustausch-Thread enthalten. In verschiedenen Implementierungen kann das Bestimmen des Kontexts das Analysieren des Inhalts des Nachrichtenaustausch-Threads umfassen, um ein oder mehrere Attribute von mindestens einem der Teilnehmer zu bestimmen.
  • In verschiedenen Implementierungen kann das Verfahren ferner das Identifizieren einer Anwendungskategorie umfassen, die mit dem einen oder den mehreren Stichwörtern verbunden ist. In verschiedenen Implementierungen kann die eine oder können die mehreren Kandidatenanwendungen eine Kandidatenanwendung umfassen, die der Anwendungskategorie zugeordnet ist und ebenfalls auf dem gegebenen Client-Computergerät installiert ist. In verschiedenen Implementierungen kann das eine oder können die mehreren Stichwörter eine Erwähnung einer Entität umfassen. In verschiedenen Implementierungen kann das Verfahren ferner die Übereinstimmungssuche der erwähnten Entität mit einer oder mehreren bekannten Entitäten in einer Wissensbasis von Entitäten und Beziehungen zwischen diesen umfassen.
  • Andere Implementierungen können ein nicht transitorisches computerlesbares Speichermedium umfassen, auf dem von einem Prozessor ausführbare Anweisungen gespeichert sind, um eines oder mehrere der zuvor beschriebenen Verfahren durchzuführen. Eine weitere Implementierung kann ein System umfassen, das einen Speicher und einen oder mehrere Prozessoren umfasst, die verwendbar sind, um in dem Speicher gespeicherte Anweisungen auszuführen, um ein oder mehrere Module oder Engines zu implementieren, die alleine oder gemeinsam ein Verfahren wie eines oder mehrere der zuvor beschriebenen Verfahren durchführen.
  • Es sollte erkannt werden, dass alle Kombinationen der vorstehenden Konzepte und zusätzlicher Konzepte, die hierin detaillierter beschrieben sind, als Teil des hierin offenbarten Gegenstandes in Betracht gezogen werden sollen. Beispielsweise werden alle Kombinationen des beanspruchten Gegenstandes, die sich am Ende dieser Offenbarung befinden, als Teil des hierin offenbarten Gegenstandes angesehen.
  • Kurze Beschreibung der Zeichnungen
  • 1 veranschaulicht eine Umgebung, in der eine oder mehrere auswählbare Anwendungsverknüpfungen in einem Nachrichtenaustausch-Thread in Übereinstimmung mit verschiedenen Implementierungen eingebunden sein können.
  • 2 und 3 zeigen Beispiele, wie Client-Geräte eine grafische Benutzeroberfläche für einen Nachrichtenaustausch-Client gemäß verschiedenen Implementierungen darstellen können.
  • 4 stellt ein Beispiel dar, wie einzelne Client-Geräte Kandidatenanwendungen identifizieren können, die in Übereinstimmung mit verschiedenen Implementierungen lokal installiert sind.
  • 5 zeigt ein Beispiel, wie auf einzelnen Client-Geräten installierte Kandidatenanwendungen gemäß den verschiedenen Implementierungen aus der Ferne identifiziert werden können.
  • 6 stellt ein Flussdiagramm dar, das ein beispielhaftes Verfahren zum Einbinden in ein Transkript eines Nachrichtenaustausch-Threads auswählbarer, dem Inhalt des Nachrichtenaustausch-Threads zugeordneter Anwendungsverknüpfungen zu einer oder mehreren Anwendungen gemäß verschiedenen Implementierungen veranschaulicht.
  • 7 zeigt schematisch eine beispielhafte Architektur eines Computersystems.
  • Ausführliche Beschreibung
  • 1 veranschaulicht eine Umgebung, in der eine oder mehrere auswählbare Anwendungsverknüpfungen in einem Nachrichtenaustausch-Thread in Übereinstimmung mit verschiedenen Implementierungen enthalten sein können. Die beispielhafte Umgebung umfasst eine Vielzahl von Client-Geräten 106 1-N und ein Wissenssystem 102. Das Wissenssystem 102 kann in einem oder mehreren Computern implementiert sein, die beispielsweise über ein Netzwerk kommunizieren. Das Wissenssystem 102 ist ein Beispiel eines Informationsabrufsystems, in dem die hierin beschriebenen Systeme, Komponenten und Techniken implementiert werden können bzw. mit denen, die hierin beschriebenen Systemen, Komponenten und Techniken eine Schnittstelle bilden können.
  • Ein Benutzer kann mit dem Wissenssystem 102 über ein oder mehrere Client-Geräte 106 interagieren. Jedes Client-Gerät 106 kann ein Computer sein, das mit dem Wissenssystem 102 durch ein oder mehrere Netzwerke 110, wie beispielsweise ein lokales Netzwerk (LAN) oder ein Weitbereichsnetzwerk (WAN) wie das Internet, verbunden ist. Jedes Client-Gerät 106 kann beispielsweise ein Desktop-Computergerät, Laptop-Computergerät, Tablet-Computergerät, Mobiltelefon-Computergerät, Computergerät eines Fahrzeugs des Benutzers (z. B. ein fahrzeugseitiges Kommunikationssystem, ein fahrzeuginternes Unterhaltungssystem, ein fahrzeuginternes Navigationssystem) oder ein tragbares Gerät des Benutzers, das eine Recheneinrichtung (z. B. eine Uhr des Benutzers mit einer Rechenvorrichtung, eine Brille des Benutzers mit einer Rechenvorrichtung) aufweist, sein. Zusätzliche bzw. alternative Client-Geräte können bereitgestellt werden. In vielen Fällen betreibt ein Teilnehmer (d. h., ein einzelner Benutzer) an einem Nachrichtenaustausch-Thread wahrscheinlich eine Vielzahl von Client-Geräten 106, die zusammen ein koordiniertes „Ökosystem” von Client-Geräten bilden.
  • Jedes Client-Gerät 106 kann eine Vielzahl von verschiedenen Anwendungen einsetzen, wie beispielsweise einen Nachrichtenaustausch-Client 107 bzw. die Anwendungen APP A, APP B, Anhang C, APP D und APP E, die in 1 dargestellt sind. Es ist ersichtlich, dass verschiedene hypothetische Anwendungen auf verschiedenen Client-Geräten 106 installiert sind. Beispielsweise sind auf dem ersten Client-Gerät 106 1 die Anwendungen APP A, APP B und APP C installiert. Auf einem anderen Client-Gerät 106 N ist ebenfalls die Anwendung APP A installiert, aber nicht die Anwendungen APP B oder APP C. Auf dem anderen Client-Gerät 106 N sind jedoch die Anwendungen APP D und APP E installiert. Die APPs A–E sollen allgemein auf jede Anwendung Bezug nehmen, die eine Oberfläche besitzen kann, die einem Benutzer des Client-Gerätes 106 in Reaktion auf verschiedene Ereignisse präsentiert wird. Eine Anwendungsoberfläche kann einem Benutzer durch Laden/Öffnen/Starten der Anwendung (z. B. von einem nicht flüchtigen Speicher) „präsentiert” werden (d. h., um dem Benutzer zu gestatten, mit dieser zu interagieren) oder, falls die Anwendung bereits initiiert/geöffnet/im Hintergrund gestartet ist, bringt dies die Anwendung in den Vordergrund (wodurch beispielsweise das Anwendungsfenster zum aktiven Fenster wird). Diese Anwendungen (und jede in dieser Schrift erwähnte „Kandidatenanwendung”) können Anwendungen für Reservierungen (z. B. Reservierungen von Hotels, Hotelreservierungen, Flugreservierungen, Zugreservierungen, Ereignisreservierungen usw.), Kartenanwendungen, Kalenderanwendungen Erinnerungsanwendungen, Medienanwendungen (z. B. Musik- oder Videoplayer), Spiele, Messaging-Apps, Wetter-Apps, Immobilien-Apps, Gesundheitsverfolgungs-Apps, Shopping-Apps, News-Apps, Fahrtenteilungs-Apps, Produktivitätsanwendungen wie Textverarbeitungsprogramme oder Tabellenkalkulationsblatt-Anwendungen, Telefonanwendungen, Web-Browser und so weiter umfassen, sind jedoch nicht auf diese begrenzt.
  • Der Nachrichtenaustausch-Client 107 kann in verschiedenen Ausführungsformen vorliegen. In einigen Implementierungen kann der Nachrichtenaustausch-Client 107 in Form eines Kurznachrichtendienstes („SMS”) bzw. eines Multimedianachrichtendienstes („MMS”), eines Online-Chat-Clients (z. B. Instant Messenger, Internet Relay Chat oder „IRC” usw.), eine mit einem sozialen Netzwerk verbundene Messaging-Anwendung, eine Oberfläche zur Konversation mit einem auf einem Client-Gerät ausgeführten persönlichen Assistenzmodul usw. vorhanden sein. In einigen Implementierungen kann der Nachrichtenaustausch-Client 107 innerhalb einer Web-Seite implementiert sein, die durch einen Web-Browser (nicht dargestellt) gerendert wird. In verschiedenen Fällen können zwei, von Teilnehmern eines Nachrichtenaustausch-Threads betriebene Client-Geräte unterschiedliche Nachrichtenaustausch-Clients 107 ausführen, die dennoch die Kommunikation unter Verwendung eines gemeinsamen Kommunikationsprotokolls ermöglichen. So kann beispielsweise das Client-Gerät 106 1 über eine installierte SMS-Anwendung verfügen, die von einem Hersteller verteilt wird, und das Client-Gerät 106 N kann über eine andere installierte SMS-Anwendung verfügen, die von einem anderen Hersteller bereitgestellt wird.
  • Jedes Client-Gerät 106 und das Wissenssystem 102 können einen oder mehrere Speicher zum Speichern von Daten- und Softwareanwendungen, einen oder mehrere Prozessoren für den Zugriff auf Daten und zum Ausführen von Anwendungen und andere Komponenten enthalten, die die Kommunikation über ein Netzwerk ermöglichen. Die von einem oder mehreren Client-Geräten 106 bzw. dem Wissenssystem 102 ausgeführten Operationen können auf mehrere Computersysteme verteilt sein. Das Wissenssystem 102 kann beispielsweise in Form von Computerprogrammen implementiert werden, die auf einem oder mehreren Computer an einem oder mehreren über ein Netzwerk miteinander gekoppelten geografischen Standorten laufen.
  • In verschiedenen Implementierungen kann das Wissenssystem 102 eine Nachrichtenaustausch-Engine 120, eine Anwendungs-Engine 122, eine Indizierungs-Engine 126, eine Informations-Engine 130, eine Bewertungs-Engine 134 und eine alternative Abfragevorschlags-Engine 136 umfassen. In einigen Ausführungsformen kann eine oder können mehrere der Engines 120, 122, 126, 130, 134 bzw. 136 entfallen. In einigen Implementierungen können alle oder Aspekte von einer oder mehreren der Engines 120, 122, 126, 130, 134 bzw. 136 kombiniert werden. In einigen Implementierungen können eine oder mehrere der Engines 120, 122, 126, 130, 134 bzw. 136 in einer Komponente implementiert sein, die von dem Wissenssystem 102 getrennt ist. In einigen Implementierungen können eine oder mehrere der Engines 120, 122, 126, 130, 134 bzw. 136 oder ein beliebiger operativer Teil von diesen in einer Komponente implementiert sein, die von dem Client-Gerät 106 ausgeführt werden.
  • Die Anwendungs-Engine 122 kann einen Index 124 von auf den Client-Geräten 106 installierten oder anderweitig verfügbaren Anwendungen pflegen. So kann beispielsweise die Anwendungs-Engine 122 ein Bestandteil sein oder zumindest in Kommunikation mit einem sogenannten „App-Speicher” stehen, von dem Benutzer von Client-Geräten 106 Anwendungen (oder „Apps”) herunterladen. In einigen Implementierungen kann, wenn ein Benutzer eine App von der Anwendungs-Engine 122 (oder von einem App-Store in Verbindung mit der Anwendungs-Engine 122) herunterlädt bzw. installiert, ein Datensatz, z. B. im Index 124, hinzugefügt werden, dass der Benutzer diese Anwendung installiert hat. In einigen Implementierungen können diese Datensätze periodisch mit den Client-Geräten 106 synchronisiert werden, um zum Beispiel widerzuspiegeln, wenn Benutzer Apps deinstallieren, wenn Benutzer Apps von anderen Quellen als einem App-Speicher, der für die Anwendungs-Engine 122 verfügbar ist, herunterladen und installieren. Wie nachfolgend beschrieben, ist die Anwendungs-Engine 122 eine von mehreren Komponenten, die in 1 dargestellt werden, die an dem Prozess des Identifizieren der auf den Client-Geräten 106 installierten Anwendungen teilnehmen können, sodass geeignete auswählbare Anwendungsverknüpfungen in Transkripten von Nachrichtenaustausch-Threads, die in auf diesen Client-Geräten 106 gerenderten Nachrichtenaustausch-Clients 107 ausgeführt werden, eingefügt werden können.
  • In einigen Implementierungen kann die Anwendungs-Engine 122 für einzelne Benutzer über von den Benutzern eingerichtete Konten zugänglich sein. So kann beispielsweise ein Benutzer über ein Konto mit der Anwendungs-Engine 122 (oder mit einem App-Speicher in Verbindung mit der Anwendungs-Engine 122) verfügen, auf das der Benutzer mittels verschiedener Berechtigungsnachweise (z. B. Benutzername/Kennwort, Netzhaut-Scan, Fingerabdruck-Scan usw.) zugreifen kann. Sobald der Benutzer an seinem Konto angemeldet ist, kann er eine oder mehrere Apps auf ein oder mehrere Client-Geräte herunterladen, die ein vom Benutzer betriebenes Ökosystem von Client-Geräten bilden. In einigen Fallen können bestimmte Apps nur zum Herunterladen verfügbar sein, vorausgesetzt, dass der Benutzer die App (oder die Nutzungsrechte für die App) erwerben kann. In einigen Implementierungen kann der Benutzer nach dem Kauf einer App anschließend über das Recht verfügen, die App auf mehrere Client-Geräte 106 eines Ökosystems von Client-Geräten 106, die von dem Benutzer betrieben werden/die dieser besitzt, herunterzuladen und zu installieren.
  • In verschiedenen Implementierungen kann die Nachrichtenaustausch-Engine 120 so konfiguriert sein, dass diese ein Nachrichtenaustausch-Thread zwischen mehreren Nachrichtenaustausch-Clients 107, die auf von mehreren Teilnehmern verwendeten mehreren Client-Geräten 106 ausgeführt werden, ermöglicht. So kann beispielsweise die Nachrichtenaustausch-Engine 120 ein globales „Transkript” von Nachrichten und anderen Inhalten, die Teilnehmer miteinander in einem Nachrichtenaustausch-Thread austauschen, beibehalten. Wie hierin verwendet, bezieht sich ein „Transkript” auf eine Live-Aufzeichnung von Text, Bildern, Tönen bzw. Applets, die von einem oder mehreren Teilnehmern an einem Nachrichtenaustausch-Thread ausgetauscht bzw. betrachtet werden. In einigen Implementierungen kann ein Transkript eines Nachrichtenaustausch-Threads in Echtzeit oder nahezu in Echtzeit aktualisiert werden, während sich die Teilnehmer unterhalten.
  • Die Indizierungs-Engine 126 kann einen Index 128 zur Verwendung durch das Wissenssystem 102 pflegen. Die Indizierungs-Engine 126 verarbeitet Dokumente und aktualisiert Indexeinträge in dem Index 128, beispielsweise unter Verwendung herkömmlicher bzw. anderer Indizierungstechniken. Zum Beispiel kann die Indizierungs-Engine 126 eine oder mehrere Ressourcen wie das World Wide Web und Indexdokumente, auf die bei diesem Durchsuchen zugegriffen wird, durchsuchen. Als ein weiteres Beispiel kann die Indizierungs-Engine 126 Informationen empfangen, die sich auf eine oder Dokumente einer oder mehrerer Ressourcen beziehen, wie beispielsweise solche Dokumente kontrollierende Web-Master, und die Dokumente auf der Grundlage dieser Informationen indizieren. Ein Dokument umfasst alle Daten, die mit einer Dokumentadresse verknüpft sind. Zu Dokumenten gehören Web-Seiten, Textverarbeitungsdokumente, PDF-Dokumente, Bilder, E-Mails, Kalendereinträge, Videos und Web-Feeds, um nur einige zu nennen. Jedes Dokument kann Inhalte umfassen, wie beispielsweise Texte, Bilder, Videos, Töne, eingebettete Informationen (z. B. Metainformationen bzw. Hyperlinks) bzw. eingebettete Anweisungen (z. B. ECMAScript-Implementierungen wie JavaScript).
  • Die Information-Engine 130 kann einen anderen Index 132 pflegen, der den Zugriff auf nicht-dokumentspezifische Informationen zur Verwendung durch das Wissenssystem 102 beinhaltet oder ermöglicht. Zum Beispiel kann das Wissenssystem 102 konfiguriert sein, um Informationen in Reaktion auf Suchabfragen, die spezifische Informationen zu suchen scheinen, zurückzugeben. Wenn ein Benutzer nach „Ronald Reagans Geburtstag” sucht, kann das Wissenssystem 102 z. B. von der Informations-Engine 130 das Datum „6. Februar 1911” empfangen. Diese Information kann dem Benutzer als Teil der Suchergebnisse zurückgegeben werden, die von den von der Indizierungs-Engine 126 empfangenen Dokumenten getrennt sind. In verschiedenen Implementierungen kann der Index 132 selbst Informationen enthalten oder dieser kann mit einer oder mehreren anderen Informationsquellen wie beispielsweise Online-Enzyklopädien, Almanachs usw. verknüpft sein. In verschiedenen Implementierungen kann der Index 128 oder der Index 132 Abbildungen von Abfragen (oder Abfragebegriffen) und Dokumenten bzw. Informationen umfassen.
  • In dieser Spezifikation werden die Begriffe „Datenbank” und „Index” weitgehend verwendet, um irgendeine Sammlung von Daten zu referenzieren. Die Daten der Datenbank bzw. des Indexes müssen nicht in einer bestimmten Weise strukturiert sein und können auf Speichergeräten an einem oder mehreren geografischen Standorten gespeichert werden. So können beispielsweise die Indizes 124, 128 und 132 mehrere Datensammlungen enthalten, von denen jede unterschiedlich organisiert und auf die unterschiedlich zugegriffen werden kann.
  • Die Bewertungs-Engine 134 kann die Indizes 128 bzw. 132 verwenden, um Dokumente und andere, auf eine Suchabfrage zutreffende Informationen, zum Beispiel unter Verwendung herkömmlicher bzw. anderer Informationswiedergewinnungsverfahren, zu identifizieren. Die Bewertungs-Engine 134 kann Bewertungspunkte für Dokumente und andere Informationen berechnen, die in Reaktion auf eine Suchabfrage, beispielsweise unter Verwendung eines oder mehrerer Bewertungssignale, identifiziert werden. Jedes Bewertungssignal kann Informationen über das Dokument oder die Information selbst, die Beziehung zwischen dem Dokument oder der Information und der Suchabfrage bzw. der Beziehung zwischen dem Dokument oder der Information und dem die Suche durchführenden Benutzer bereitstellen.
  • Die alternative Abfragevorschlags-Engine 136 kann ein oder mehrere Signale bzw. andere Informationen verwenden, wie beispielsweise eine Datenbank mit alternativen Abfragevorschlägen (nicht dargestellt) bzw. Informationen über einen Benutzer des Client-Gerätes 106 (z. B. Suchverlauf, GPS-Standort, Benutzerattribute) zum Erzeugen alternativer Abfragevorschläge, um diese zusammen mit beliebigen Suchergebnissen dem Client-Gerät 106 zur Verfügung zu stellen. Während ein Benutzer aufeinanderfolgende Zeichen der Suchabfrage eingibt, kann die alternative Abfragevorschlags-Engine 136 alternative Abfragen identifizieren, die wahrscheinlich für den Benutzer nützliche Ergebnisse liefern. Nehmen wir beispielsweise an, dass sich das Client-Gerät 106 in Chicago befindet und die Buchstabenfolge „restaur” eingegeben wurde. Die alternative Abfragevorschlags-Engine 136 kann auf der Grundlage eines geografischen Standortsignals, das anzeigt, dass sich das Client-Gerät 106 in Chicago befindet, und eines Suchverlaufssignals, das die Vorliebe eines Benutzers für Restaurants mit Live-Musik anzeigt, eine Abfrage „Restaurants in Chicago mit Live-Musik” vorschlagen. Als ein anderes Beispiel für einen Benutzer, der „Ronald Reagans Geburts” eingegeben hat, kann die alternative Abfragevorschlags-Engine 136 z. B. unter Verwendung von Techniken wie die Präfix-Übereinstimmungssuche alternativen Abfragen wie „Ronald Reagans Geburtstag”, „Geburtsort von Ronald Reagan”, „Ronald Reagans Familienplanung” usw. vorschlagen. Die alternative Abfragevorschlags-Engine 136 kann ebenfalls andere Vorschläge unterbreiten, wie beispielsweise Rechtschreibkorrekturversionen einer teilweise eingegebenen Suchabfrage.
  • In verschiedenen Implementierungen können der eine oder die mehreren Nachrichtenaustausch-Clients 107 bzw. eine Nachrichtenaustausch-Engine 120 konfiguriert sein, um ein oder mehrere Stichwörter zu ermitteln, die von einem Nachrichtenaustausch-Thread ausgehen, der zwei oder mehrere Nachrichtenaustausch-Clients 107 umfasst. In verschiedenen Implementierungen kann das eine oder können die mehreren Stichwörter die Einbindung einer oder mehrerer auswählbarer Verknüpfungen_in dem Nachrichtenaustausch-Thread auslösen. Jede der einen oder mehreren auswählbaren Anwendungsverknüpfungen kann mit einer Anwendung verknüpft sein, die sich von dem Nachrichtenaustausch-Thread unterscheidet.
  • In einigen Implementierungen können die Stichwörter von dem Inhalt des Nachrichtenaustausch-Threads ausgehen. Zum Beispiel können eine oder mehrere Teilnehmer, die eine Entität oder ein Schlüsselwort/eine Schlüsselphrase, die mit einer oder mehreren Anwendungen verbunden ist, ein Stichwort darstellen, um eine oder mehrere auswählbare Anwendungsverknüpfungen zu der einen oder mehreren Anwendungen in den Nachrichtenaustausch-Thread einzubinden. Ein weiteres Beispiel für ein Stichwort ist eine Aussage, die von einem oder mehreren Teilnehmern zu einem anderen weitergeleitet wird und die mit einem Muster oder einer Vorlage übereinstimmt, das/die mit einer Anwendung verknüpft ist. In verschiedenen Implementierungen kann die Vorlage einer bestimmten Anwendung verbunden sein. So kann beispielsweise die Vorlage aus einem Korpus von Nachrichten erzeugt worden sein, die Nachrichten von vorherigen Nachrichtenaustausch-Threads enthält. die zum Aufruf durch den Benutzer oder zur Aktivierung einer bestimmten Anwendung führen. In einigen Implementierungen kann die Vorlage mit einer Gruppe von Nachrichten aus einem Korpus verbunden sein, die ein oder mehrere Attribute teilen, wie beispielsweise Nachrichten, die denselben oder einen ähnlichen feststehenden und „transienten” Text enthalten. In noch anderen Implementierungen können Stichwörter expliziter sein. Beispielsweise könnte ein Benutzer eine Nachricht in den Thread eingeben, der an sein persönliches Assistenzmodul gerichtet ist, z. B. „BOT, wie ist das Wetter in San Francisco?” Dies kann das persönliche Assistenzmodul veranlassen, eine oder mehrere Anwendungsverknüpfungen in das Transkript des Nachrichtenaustausch-Threads zu integrieren, wie beispielsweise eine Verknüpfung zu einer Wetter-App, in die bereits das Wetter von San Francisco vorgeladen ist.
  • Um zu bestimmen, welche auswählbaren Anwendungsverbindungen in auf den Client-Geräten 106 angezeigten Transkripten des Nachrichtenaustausch-Threads zu integrieren sind, können ein oder mehrere Nachrichtenaustausch-Clients 107 bzw. eine Nachrichtenaustausch-Engine 120 oder eine Anwendungs-Engine 122 eine oder mehrere Kandidatenanwendungen identifizieren, die auf jedem Client-Gerät 106 installiert sind, das von einem Teilnehmer in dem Nachrichtenaustausch-Thread verwendet wird. In verschiedenen Implementierungen kann die eine oder können die mehreren identifizierten Kandidatenanwendungen mit dem Inhalt des Nachrichtenaustausch-Threads verknüpft werden. In einigen Implementierungen kann das eine oder können die mehreren vorstehend erläuterten Stichwörter einer oder mehreren Anwendungen zugeordnet werden.
  • Wenn beispielsweise die Teilnehmer Musik bzw. Musiker erwähnen, kann die eine oder können die mehreren Kandidatenanwendungen Anwendungen sein, die mit dem Abspielen, Aufzeichnen und Produzieren von Musik verbunden sind. Wenn die Teilnehmer Filme, Fernsehen bzw. Schauspieler/Regisseure besprechen, kann die eine oder können die mehreren Kandidatenanwendungen mit der Wiedergabe von Filmen/Fernsehen oder mit durchsuchbaren Datenbanken für Besetzungen/Crews verbunden sein, die sich auf Film- und Fernsehproduktionen beziehen. Wenn die Teilnehmer Reisen besprechen, kann die eine oder können die mehreren Kandidatenanwendungen mit Reisebuchungen für Hotels, Fluggesellschaften, Züge, Boote, Mietwagen usw. verbunden sein. Wenn die Teilnehmer über Restaurants sprechen, kann die eine oder können die mehreren Kandidatenanwendungen mit der Durchführung von Restaurantreservierungen, mit Restaurantbewertungen, dem Anrufen von Restaurants und so weiter verbunden sein.
  • Sobald die eine oder die mehreren Kandidatenanwendungen identifiziert sind, kann eine oder können mehrere auswählbare Anwendungsverknüpfungen (die ebenfalls als „wählbare Verknüpfungen” bezeichnet werden) in ein Transkript des Nachrichtenaustausch-Threads, das auf einer auf einem gegebenen Client-Computergerät 106 ausgeführten grafischen Benutzeroberfläche eines Nachrichtenaustausch-Clients 107 angezeigt wird, integriert werden. In verschiedenen Implementierungen kann jede auswählbare Verknüpfung durch einen Teilnehmer am Nachrichtenaustausch-Thread ausgeführt werden, um zu bewirken, dass das entsprechende Client-Gerät 106 dem Teilnehmer eine mit einer jeweiligen Kandidatenanwendung verknüpfte Oberfläche anzeigt. Läuft zum Beispiel eine entsprechende Kandidatenanwendung im Hintergrund (z. B. in irgendeiner Form bereits in einen flüchtigen Speicher geladen), kann die Ausführung der entsprechenden auswählbaren Verknüpfung bewirken, dass die Kandidatenanwendung aktiviert wird, sodass dem Teilnehmer die jeweilige Kandidatenanwendung angezeigt wird und dieser daher mit einer Oberfläche (grafisch, hörbar, haptisch usw.) interagieren kann. Ist eine entsprechende Kandidatenanwendung installiert, wird diese aber nicht im Hintergrund ausgeführt, kann die Ausführung der entsprechenden auswählbaren Verknüpfung bewirken, dass die Kandidatenanwendung von z. B. einem nichtflüchtigen Speicher geöffnet oder „gestartet” wird.
  • Wählbare Anwendungsverknüpfungen können in einem Nachrichtenaustausch-Thread zwischen mehreren Nachrichtenaustausch-Clients 107 auf vielfältige Weise eingebunden werden. In einigen Implementierungen kann die Nachrichtenaustausch-Engine 120 anfordern, dass mindestens ein an dem Nachrichtenaustausch-Thread teilnehmender Nachrichtenaustausch-Client 107 eine oder mehrere auswählbare Anwendungsverknüpfungen in ein Transkript des auf einer grafischen Benutzeroberfläche angezeigten laufenden Nachrichtenaustausch-Threads einfügt. In einigen Szenarien können die auswählbaren grafischen Verbindungen in Transkripte eingebunden werden, die von mehr als einem Nachrichtenaustausch-Client 107 gerendert werden, wie in Transkripten, die von allen, am Nachrichtenaustausch-Thread teilnehmenden Nachrichtenaustausch-Clients 107 gerendert werden.
  • Auswählbare Anwendungsverknüpfungen, die in einen Nachrichtenaustausch-Thread (und damit in ein Transkript des Threads, das von mindestens einem Nachrichtenaustausch-Client 107 angezeigt wird) eingebunden sind, können verschiedene Formen besitzen. In einigen Implementierungen kann eine auswählbare Anwendungsverknüpfung in Form eines grafischen Symbols oder einer mit der verknüpften Anwendung verbundenen Animation vorhanden sein. In einigen Implementierungen kann die auswählbare Anwendungsverknüpfung Text enthalten, der Informationen über die Anwendung vermittelt, oder eine Aktion, die unter Verwendung der Anwendung ausgeführt werden kann (z. B. „Fahranweisungen für den geografischen Standort einholen”). In verschiedenen Implementierungen kann die auswählbare Verknüpfung ebenso wie jede andere Nachricht des Nachrichtenaustausch-Threads als Teil des Transkriptes gerendert werden. Als solche kann die auswählbare Anwendungsverknüpfung „nach oben” verschoben werden, wenn zusätzliche Nachrichten an den Nachrichtenaustausch-Thread angehängt werden.
  • In einigen Implementierungen kann das Wissenssystem 102 beispielsweise als Teil der Information-Engine 130 bzw. einer anderen Komponente eine sogenannte Wissensbasis aufweisen, die Datensätze von bekannten Entitäten (z. B. Personen, Orten, Dingen) und Beziehungen zwischen den bekannten Entitäten enthält. In einigen Implementierungen kann eine solche Wissensbasis beispielsweise im Index 132 als eine grafische Darstellung implementiert werden, bei dem Knoten die Entitäten und Kanten die Beziehungen zwischen den Entitäten repräsentieren, obwohl dies nicht erforderlich ist. In einigen derartigen Implementierungen können Informationen über Entitäten aus einer solchen Wissensbasis Komponenten wie der Nachrichtenaustausch-Engine 120 bzw. einem oder mehreren Nachrichtenaustausch-Clients 107 zur Verfügung gestellt werden. Diese Komponenten können dann die Entitätsinformationen verwenden, um relevante Anwendungen zu identifizieren, um ein oder mehrere Eingabefelder oder andere Datenpunkte, die zum Wechsel zwischen verschiedenen Zuständen einer Zustandsmaschine, die mit den identifizierten Kandidatenanwendungen verknüpft ist, usw., verwendet werden können, im Voraus auszufüllen.
  • In einigen Implementierungen kann die Wissensbasis beispielsweise von einer oder mehreren der Engines 120, 122, 126 bzw. 130 verwendet werden, um eine erste Entität zu identifizieren, die in einer oder mehreren Nachrichten, die zwischen den mindestens zwei Benutzern ausgetauscht werden, als Teil des Nachrichtenaustausch-Threads aufgeführt wird. Informationen, die sich auf die Entität beziehen, die zum Beispiel in Reaktion auf eine Suchabfrage über die Entität erhalten wird, können dann verwendet werden, um eine oder mehrere Kandidatenanwendungen zu identifizieren. Angenommen, ein Benutzer sendet in dem Nachrichtenaustausch-Thread eine Nachricht wie „Babe Ruth war der Größte!” „Babe Ruth” kann z. B. durch eine Informations-Engine 130, basierend auf einer im Index 132 gespeicherten Wissensbasis zusammen mit einem oder mehreren Attributen von Babe Ruth bzw. einer oder mehreren zugehörigen Entitäten, wie einem oder mehreren Teams (z. B. die New York Yankees), seinen Familienmitgliedern, seinen Teammitgliedern, Jahre aktiv, Jahre lebend usw., identifiziert werden. Ein oder mehrere Teile dieser Informationen können dann verwendet werden, um eine oder mehrere Kandidatenanwendungen oder Anwendungs-„Kategorien” zu identifizieren, die auf die Erwähnung der Entität zutreffen oder anderweitig relevant sein können. In einigen Implementierungen können Teile dieser Information verwendet werden, um einen oder mehrere mit einer Anwendung verbundene Datenpunkte (z. B. Eingabeparameter, Dateneingabefelder, Datenpunkte, die einen Übergang zwischen Zuständen einer Zustandsmaschine verursachen usw.) im Voraus „auszufüllen”. Auf diese Weise kann, wenn der Benutzer eine auswählbare Anwendungsverknüpfung aktiviert, die verknüpfte Anwendung in einem Zustand geöffnet werden, in dem der eine oder die mehreren Datenpunkte bereits ausgefüllt sind.
  • 2 zeigt ein beispielhaftes Client-Gerät 206, das von einem Benutzer namens Sven bedient wird. Das Client-Gerät 206 umfasst eine grafische Benutzeroberfläche 250, die mit einem Nachrichtenaustausch-Client (nicht spezifisch in 2 dargestellt) verbunden ist, der auf dem Client-Gerät 206 ausgeführt wird. Die grafische Benutzeroberfläche 250 zeigt ein Transkript 252 eines Nachrichtenaustausch-Threads zwischen Sven und zwei weiteren Benutzern, John und Dennis. Die grafische Benutzeroberfläche 250 enthält ebenfalls ein Texteingabefeld 254, das Sven verwenden kann, um Text oder einen anderen Inhalt in den Nachrichtenaustausch-Thread einzugeben, z. B. in Reaktion auf vorhergehende Aussagen der beiden anderen. In diesem Beispiel machte John die Aussage, dass er hungrig sei. Dennis stimmte zu, und stellte Sven die Frage, „Wohin sollen wir gehen?” Sven („Du” in 2, da dies Client-Gerät 206 von Sven ist) antwortete, indem dieser ein Restaurant namens „Hypothetisches Café” vorschlug.
  • An dieser Stelle der Konversation können die von John und Dennis gestellten Fragen/Aussagen ebenso wie der Vorschlag von Sven zu einer Vielzahl von auswählbaren Anwendungsverknüpfungen 256 1-3 führen, die in dem Transkript 252 gerendert werden sollen. Die erste auswählbare Anwendungsverknüpfung 256 1 verknüpft eine Telefonanwendung. Wenn Sven diese Verknüpfung auswählt, kann dieser eine Oberfläche einer auf dem Client-Gerät 206 installierten Telefonanwendung angezeigt werden. Zum Beispiel kann die Telefonanwendung gestartet bzw. die Telefonanwendung kann das aktive Fenster (das in vielen mobilen Geräten ein einziges Fenster ist) bereitgestellt werden. In einigen Implementierungen kann die Telefonanwendung auswählen, um eine mit dem „Hypothetischen Café” verbundene Telefonnummer anzurufen. Eine dritte auswählbare Anwendungsverknüpfung 256 3 ruft eine Kartenanwendung auf, die beispielsweise die bereits geladenen Fahranweisungen zu dem „Hypothetischem Café” enthält.
  • Die zweite auswählbare Verknüpfung 256 2 verbindet eine Anwendung „TISCHRESERVIERUNG” (GRAB A TABLE), die von einem Teilnehmer bedient werden kann, um eine Reservierung im „Hypothetischen Café” vorzunehmen. Wenn Sven oder ein anderer Teilnehmer diese Verknüpfung auswählt, kann Sven bzw. dem anderen Teilnehmer, der die Option ausgewählt hat, eine der Anwendung „TISCHRESERVIERUNG” (GRAB A TABLE) zugeordnete Oberfläche (z. B. eine grafische, interaktive Sprachreaktion, Haptik usw.) angezeigt werden. In einigen Implementierungen kann die Applikation „TISCHRESERVIERUNG” (GRAB A TABLE) verschiedene Datenpunkte aufweisen, wie beispielsweise Eingaben, die mit aus verschiedenen Quellen erhaltenen Daten im Voraus ausgefüllt werden.
  • In einigen Implementierungen können die Datenpunkte mit einem oder mehreren Teilnehmern des Nachrichtenaustausch-Threads verbundenen Kontextdaten im Voraus ausgefüllt werden. Die mit dem einen oder den mehreren Teilnehmern des Nachrichtenaustausch-Threads verbundenen kontextbezogenen Daten können aus einer Vielzahl von Quellen stammen, beispielsweise von Informationssignalen, die von dem Inhalt des Nachrichtenaustausch-Threads ausgehen (beispielsweise erwähnt ein Benutzer, dass er nicht hungrig sei und daher als potentieller Teilnehmer nicht gezählt werden könnte) oder von von verschiedenen Teilnehmern bedienten Client-Geräten. So können beispielsweise Koordinaten des satellitengestützten Navigationsverfahrens (GPS – Global Positioning System), die von einem von einem bestimmten Teilnehmer betriebenen Client-Gerät bereitgestellt werden, zeigen, dass der jeweilige Teilnehmer zu weit vom „Hypothetischen Café” entfernt ist, um das Mittagessen an diesem Ort sinnvollerweise in einer halben Stunde einzunehmen. Dieser Teilnehmer darf nicht in die Anzahl der Speisenden aufgenommen werden. Das Gleiche trifft zu, wenn ein bestimmter Teilnehmer im Nachrichtenaustausch-Thread anzeigt, dass er nicht teilnehmen kann, da er das Menü nicht mag, usw.
  • In 2 werden die auswählbaren Verknüpfungen 256 1-3 innerhalb einer „Blase” gerendert, die eine Nachricht darstellt, die in den Thread von Sven eingebunden ist. Dies sollte jedoch nicht einschränkend angesehen werden. In verschiedenen Implementierungen können auswählbare Anwendungsverknüpfungen an anderer Stelle in einem Transkript dargestellt werden, z. B. als eigenständige Verbindungen, die nicht Teil der Blase eines beliebigen Teilnehmers sind. In einigen Implementierungen können, wenn auswählbare Verknüpfungen mit Blasen gerendert werden, diese einfach als Text dargestellt werden, z. B. von einem persönlichen Assistenzmodul, das an dem Nachrichtenaustausch-Thread beteiligt ist.
  • Ein Beispiel einer Oberfläche 260, die mit einer Anwendung „TISCHRESERVIERUNG” (GRAB A TABLE) verbunden ist (die lediglich eine hier für Demonstrationszwecke beschriebene hypothetische Anwendung ist), der Sven als Antwort auf die von Sven aktivierte auswählbare Anwendungsverknüpfung 256 2 ausgesetzt werden könnte, ist in 3 dargestellt. In diesem Beispiel ist die Oberfläche „TISCHRESERVIERUNG” (GRAB A TABLE) 260 auf dem Client-Gerät 206 von Sven mit im Voraus ausgefüllten verschiedenen Datenpunkten (z. B. Eingabefeldern) dargestellt. Da beispielsweise drei Teilnehmer (John, Dennis, Sven) in dem Nachrichtenaustausch-Thread anwesend sind und da keine mit dem Inhalt des Threads oder den einzelnen Teilnehmer verbundene Informationssignale darauf schließen lassen, dass keiner von diesen das Mittagessen nicht besuchen wird, erfolgt die Reservierung für drei Gäste.
  • Die Zeit der Reservierung wurde mit 12:00 Uhr im Voraus ausgefüllt. Dies kann daran liegen, dass zum Beispiel die Teilnehmer nach dem Austauschen der Nachrichten bezüglich der Mittagsmahlzeiten, die um 11:03 Uhr, 11:04 Uhr und 11:05 Uhr ausgetauscht wurden, ausreichend Zeit zum Erreichen des Restaurants benötigen. Die Zeit der Reservierung zusätzlich oder alternativ kann mit 12:00 Uhr im Voraus ausgefüllt worden sein, da dies das nächste Mal am Tag ist, an denen Menschen häufig eine Mahlzeit einnehmen. Hätten die Teilnehmer ein Essen, um, sagen wir, 15:30 Uhr besprochen, dann wäre die Zeit für die Reservierung mit einer häufigeren Zeit für das Abendessen, wie beispielsweise 18:30 Uhr, im Voraus ausgefüllt worden. Der Name der Reservierung ist „SVEN”, da Sven der Teilnehmer war, der eine der auswählbaren Anwendungsverknüpfungen in 2 gewählt hatte. Würden jedoch ähnliche Verknüpfungen für John bzw. Dennis auf deren eigenen Client-Geräten präsentiert worden sein, und hätte jeder von ihnen die auswählbare Anwendungsverknüpfung aktiviert, dann hätte die Reservierung stattdessen mit deren Namen im Voraus ausgefüllt worden sein können.
  • Wie vorstehend erwähnt, können eine oder mehrere auswählbare Anwendungsverknüpfungen selektiv in einem durch ein Client-Gerät angezeigtes Transkript gerendert werden, das zumindest teilweise auf auf dem Client-Gerät verfügbare Ressourcen basiert. So können beispielsweise in einigen Implementierungen nur auswählbare Anwendungsverknüpfungen zu installierten Anwendungen auf einem Client-Gerät angezeigt werden. 4 zeigt verschiedene Komponenten der in 1 dargestellten Umgebung und demonstriert, wie eine oder mehrere Komponenten, die in einem Client-Gerät 406 integriert sind (z. B. in einer auf einer Hardwarekomponente installierten Software), die Identifizierung der auf dem Client-Gerät 406 installierten Anwendungen ausführen können. In diesem Beispiel ist auf dem ersten Client-Gerät 406 1 unter anderem die vorstehend erwähnte (hypothetische) Reservierungs-Client-Anwendung 462 mit dem Namen „TISCHRESERVIERUNG” (GRAB A TABLE) installiert. Auf dem zweiten Client-Gerät 406 2 ist unter anderem eine andere (hypothetische) Reservierungs-Client-Anwendung 464 mit dem Namen „ESSBEREIT” (READY TO EAT) installiert.
  • Es sei angenommen, dass ein erster, auf einem ersten Client-Gerät 406 1 arbeitender Nachrichtenaustausch-Client 407 1 ausgeführt wird, um an einem Nachrichtenaustausch-Thread teilzunehmen, der ebenfalls einen zweiten Nachrichtenaustausch-Client 407 2 umfasst, der auf einem zweiten Client-Gerät 406 2 ausgeführt. Es wird weiter angenommen, dass in einem weiteren Nachrichtenaustausch-Thread eine Diskussion darüber, wo das Essen einzunehmen sei, ähnlich zu 3 erfolgt. Basierend auf dieser Erläuterung (d. h., basierend auf einem oder mehreren Stichwörtern in der Diskussion, die sich auf die Erstellung einer Restaurantreservierung beziehen) wurde eine Anwendungskategorie „RESERVIERUNG” identifiziert, beispielsweise durch die Nachrichtenaustausch-Engine 120, und eine Angabe dieser Kategorie wurde für die Client-Geräte 406 1 und 406 2 bereitgestellt.
  • Sobald die Nachrichtenaustausch-Clients 407 1-2 die Angabe der Anwendungskategorie „RESERVIERUNG” erhalten, können diese jeweils eine oder mehrere lokal installierte Anwendungen identifizieren, die der Kategorie „RESERVIERUNG” entsprechen. Beispielsweise ist auf dem ersten Client-Gerät 406 1 der Client 462 „TISCHRESERVIERUNG” (GRAB A TABLE) installiert, den der erste Nachrichtenaustausch-Client 407 1 als eine „RESERVIERUNGS”-Anwendung identifizieren kann. Folglich kann der erste Nachrichtenaustausch-Client 407 1 in einem Transkript des von diesem angezeigten Nachrichtenaustausch-Threads eine auswählbare Anwendungsverknüpfung zu dem Client 462 „TISCHRESERVIERUNG” (GRAB A TABLE) einbinden. Dementsprechend ist auf dem zweiten Client-Gerät 406 2 der Client 464 „ESSBEREIT” (READY TO EAT) installiert, den der zweite Nachrichtenaustausch-Client 407 2 als eine „RESERVIERUNGS”-Anwendung identifizieren kann. Folglich kann der zweite Nachrichtenaustausch-Client 407 2 in einem Transkript des von diesem angezeigten Nachrichtenaustausch-Threads eine auswählbare Anwendungsverknüpfung zu dem Client 464 „ESSBEREIT” (READY TO EAT) einbinden.
  • In einigen Implementierungen können auf einem Client-Gerät mehrere Anwendungen installiert sein, die mit einer bestimmten Anwendungskategorie übereinstimmen. So kann beispielsweise ein einzelnes Client-Gerät sowohl den Client 462 „TISCHRESERVIERUNG” (GRAB A TABLE) als ebenfalls den Client 464 „ESSBEREIT” (READY TO EAT), der in 4 dargestellt ist, aufweisen. In einigen Implementierungen könnten auswählbare Anwendungsverknüpfungen zu beiden Anwendungen in dem Transkript des Nachrichtenaustausch-Threads auf diesem Client-Gerät enthalten sein. In einigen Versionen können die mehrfachen auswählbaren Anwendungsverknüpfungen in einer Reihenfolge präsentiert werden, die basierend auf einer Vielzahl von Informationssignalen, wie beispielsweise der Häufigkeit der Verwendung jedes Clients, ausgewählt wird. Wird der Client 462 „TISCHRESERVIERUNG” (GRAB A TABLE) häufiger als der Client 464 „ESSBEREIT” (READY TO EAT) verwendet, kann eine auswählbare Anwendungsverknüpfung zu dem Client 462 als Erstes, noch prominenter, noch auffälliger usw. als eine auswählbare Anwendungsverknüpfung zum Client 464 dargestellt werden.
  • In einigen Implementierungen, in denen mehrere, auf einem einzelnen Client-Gerät installierte Anwendungen mit einer Anwendungskategorie übereinstimmen, kann ein Nachrichtenaustausch-Client 407 oder eine andere Komponente analysieren, wie häufig diese mehreren Anwendungen verwendet werden, um zu bestimmen, ob jede Integration eine auswählbare Anwendungsverknüpfung zu einem Transkript eines Nachrichtenaustausch-Threads gewährleistet. So kann beispielsweise eine mit einer gegebenen Anwendung verbundene Anwendungshäufigkeit einen vorbestimmten Schwellenwert, isoliert oder relativ zu anderen übereinstimmenden installierten Anwendungen erfüllen müssen, damit eine entsprechende auswählbare Anwendungsverknüpfung in Transkripte des Nachrichtenaustausch-Threads eingebunden werden kann. Wird die Anwendung nicht häufig oder überhaupt nicht verwendet (z. B., wenn die Anwendung vom Gerätehersteller installiert wurde und nie vom Benutzer geöffnet wurde), kann u. U. keine auswählbare Anwendungsverknüpfung zur Anwendung in Transkripte von Nachrichtenaustausch-Threads integriert werden.
  • 5 zeigt ein alternatives Szenario zu 4. Hier kann die Identifizierung von installierten Anwendungen auf den Client-Geräten 506 1-N eines von einem Teilnehmer betriebenen koordinierten Ökosystems 570 zumindest teilweise entfernt von den Client-Geräten 506 1-N durchgeführt werden. Insbesondere kann die Anwendungs-Engine 122 (die vorstehend beschrieben wurde und die in einem App-Speicher integriert ist oder zumindest mit diesem in Kommunikation steht) konfiguriert werden, um basierend auf Datensätzen im Index 124 zu bestimmen, welche Anwendungen auf welchen Client-Geräten 506 des Ökosystems 570 installiert sind.
  • Für dieses Beispiel wird angenommen, dass der die Client-Geräte 506 1-N des Ökosystems 570 betreibende Benutzer/Teilnehmer die Rechte besitzt, die Anwendungen APP A, APP B, APP C, APP D und APP E herunterzuladen und zu verwenden. Auf einem ersten Client-Gerät 506 1, das beispielsweise das Mobiltelefon des Benutzers sein kann, hat der Benutzer APP A, APP B und APP C installiert. APP D und APP E sind nicht auf dem ersten Client-Gerät 506 1 installiert, wie durch deren Platzierung unterhalb der Linie angezeigt wird, aber diese können für das Herunterladen bzw. für die Installation verfügbar sein, da der Benutzer zuvor die Rechte hierzu erworben hat. Auf einem zweiten Client-Gerät 506 N, das beispielsweise die Smart Watch des Benutzers sein kann, hat der Benutzer APP A, APP D und APP E installiert. APP B und APP C sind nicht auf dem zweiten Client-Gerät 506 N installiert, wie durch ihre Platzierung unterhalb der Linie angezeigt wird, aber diese können für das Herunterladen bzw. für die Installation verfügbar sein, da der Benutzer zuvor die Rechte hierzu erworben hat.
  • In dem Beispiel von 5 kann die Nachrichtenaustausch-Engine 120 die Anwendungs-Engine 122 konsultieren, um zu bestimmen, welche Anwendungen auf welchen Client-Geräten 506 installiert sind. Werden ein oder mehrere Stichwörter erkannt, für die eine oder mehrere auswählbare Anwendungsverknüpfungen in einen Nachrichtenaustausch-Thread eingebunden werden sollen, kann die Nachrichtenaustausch-Engine 120 anfordern, dass die Anwendungs-Engine 122 eine oder mehrere auf dem gegebenen Client-Gerät 506 installierte Anwendungen identifiziert. Die Nachrichtenaustausch-Engine 120 kann dann zum Laden von Daten, die eine oder mehrere auswählbare Anwendungsverknüpfungen zu auf dem gegebenen Client-Gerät installierten und ebenfalls mit dem Inhalt des Nachrichtenaustausch-Threads verknüpften Anwendungen anzeigen, auf das gegebene Client-Gerät 506 konfiguriert sein. In verschiedenen Implementierungen kann das gegebene Client-Gerät 506 die eine oder die mehreren auswählbaren Anwendungsverknüpfungen automatisch in ein Transkript des Nachrichtenaustausch-Threads einbinden oder dieses kann selektiv eine Untermenge der einen oder der mehreren auswählbaren Anwendungsverknüpfungen in Reaktion auf ein oder mehrere Signale (z. B., Häufigkeit der Nutzung der verknüpften Anwendung, ob die verknüpfte Anwendung noch installiert ist usw.) in das Transkript einbinden. In einigen Implementierungen kann, wenn keine gegebene Anwendung installiert ist, aber einem Client-Gerät zur Verfügung steht (wie es bei APP D und APP E auf dem ersten Client-Gerät 506 1 der Fall ist), eine auswählbare Anwendungsverknüpfung zur vollständigen Installation der Anwendung auf dem Client-Gerät 506 in ein Transkript des auf dem Client-Gerät angezeigten Nachrichtenaustausch-Threads eingebunden werden.
  • Die vorstehend beschriebenen Beispiele zeigen, wie auswählbare Anwendungsverknüpfungen mit bestimmten Anwendungen verknüpft werden können. Dies sollte jedoch nicht einschränkend angesehen werden. In einigen Implementierungen können auswählbare Anwendungsverknüpfungen mit Dokumenten oder anderen Online-Inhalten, die für die Erläuterung relevant sind und die mit einer beliebigen Anzahl von Anwendungen zugänglich sind, verknüpft werden. So kann beispielsweise bei einigen Implementierungen eine auswählbare Anwendungsverknüpfung eine Web-Adresse oder einer anderen Online-Kennung aufrufen. In einigen derartigen Implementierungen kann die Aktivierung der auswählbaren Anwendungsverknüpfung auf einem Client-Gerät dem Benutzer einen bevorzugten installierten Web-Browser anzeigen. In verschiedenen Implementierungen kann der Web-Browser bereits eine Web-Seite oder einen anderen Inhalt geladen haben, der für den Inhalt des Nachrichtenaustausch-Threads relevant ist, wie beispielsweise eine interaktive Web-Seite mit einer Funktionalität, die der einer nicht auf dem Client-Gerät installierten Anwendung entspricht.
  • Jetzt unter Bezugnahme auf 6, in einem beispielhaften Verfahren 600 wird das selektive Einbinden von auswählbaren Anwendungsverknüpfungen in einen Nachrichtenaustausch-Thread mit mehreren Teilnehmern beschrieben. Zur Vereinfachung werden die Operationen des Flussdiagramms unter Bezugnahme auf ein System beschrieben, das die Operationen ausführt. Dieses System kann verschiedene Komponenten verschiedener Computersysteme umfassen, einschließlich der verschiedenen hierin beschriebenen Engines bzw. Client-Anwendungen. Während die Operationen des Verfahrens 600 in einer bestimmten Reihenfolge gezeigt werden, sollte dies nicht als einschränkend angesehen werden. Eine oder mehrere Operationen können in anderer Reihenfolge vorgenommen, weggelassen oder hinzugefügt werden.
  • In Block 602 kann das System eine oder mehrere Stichwörter erkennen, die von einem laufenden Nachrichtenaustausch-Thread ausgehen, z. B. zwischen mehreren Teilnehmern, die mehrere Client-Geräte verwenden. Die Ermittlung eines oder mehrerer Stichwörter kann das Einbinden in den Nachrichtenaustausch-Thread einer oder mehrerer auswählbarer Verknüpfungen zu Anwendungen auslösen, die sich von dem Nachrichtenaustausch-Thread unterscheiden. Beispiele für Anwendungen ohne Nachrichtenaustausch wurden zuvor beschrieben.
  • In Block 604 kann das System eine oder mehrere Kandidatenanwendungen identifizieren, die auf einem von einem Teilnehmer in dem Nachrichtenaustausch-Thread verwendeten bestimmten Client-Gerät installiert sind. Wie vorstehend beschrieben, können bei einigen Implementierungen die Kandidatenanwendungen diejenigen sein, die für den Inhalt des Nachrichtenaustausch-Threads als in beliebiger Weise relevant angesehen werden. Die 23 zeigen ein Beispiel, in dem sich Teilnehmer des Nachrichtenaustausch-Threads mit dem Essen gehen befassen und dementsprechende, mit dem Essen gehen verbundene Anwendungen (z. B. einem Telefonwähler zum Anrufen eines Restaurants, eine Reservierungsanwendung, eine Kartenanwendung usw.) werden identifiziert. Andere Beispiele sind ebenfalls vorstehend beschrieben. In einigen Implementierungen kann das Identifizieren bei Block 604 durch einen oder mehrere der Prozessoren durchgeführt werden, die sich von einem gegebenen Client-Computergerät entfernt befinden, und die eine oder mehrere auswählbare Verknüpfungen angebenden Daten können auf das gegebene Client-Computergerät heruntergeladen werden. In anderen Implementierungen kann das Identifizieren bei Block 604 durch einen oder mehrere der Prozessoren durchgeführt werden, die Bestandteil des gegebenen Client-Computergerätes sind.
  • In einigen Szenarien kann die eine oder können die mehreren für die Einbindung am geeignetsten Kandidatenanwendungen nicht auf dem gegebenen Client-Computergerät installiert sein. Einige Kandidatenanwendungen (z. B. Restaurant-/Flugreservierungsanwendungen, Kartenanwendungen usw.) können jedoch entsprechende Internetseiten aufweisen, die die entsprechende Funktionalität enthalten. Beispielsweise könnte ein Benutzer einen Web-Browser auf die Web-Seite „TISCHRESERVIERUNG” (GRAB A TABLE) navigieren und eine Reservierung in ähnlicher Weise vornehmen, wie ein Benutzer eine Reservierung mit der Anwendung „TISCHRESERVIERUNG” (GRAB A TABLE) vornehmen kann. Dementsprechend kann bei einigen Implementierungen bei dem optionalen Block 606 das System in Reaktion auf eine Bestimmung, dass eine dem Inhalt des Nachrichtenaustausch-Threads verbundene gegebene Anwendung nicht auf dem gegebenen Client-Computergerät installiert ist, als eine Kandidatenanwendung einen Web-Browser oder eine andere auf dem gegebenen Client-Computergerät installierte Allzweckanwendung identifizieren.
  • In Block 608 kann das System eine oder mehrere auswählbare Anwendungsverknüpfungen in ein Transkript des Nachrichtenaustausch-Threads, der von einem oder mehreren Nachrichtenaustausch-Clients gerendert wird, die auf einem oder mehreren Client-Geräten ausgeführt werden, einbinden. Wie vorstehend erwähnt, können in einigen Implementierungen auswählbare Verknüpfungen nur für den Benutzer sichtbar sein, der eine Aussage in dem die Einbindung der Verknüpfungen auslösenden Nachrichtenaustausch-Thread einfügte. In anderen Implementierungen kann, wenn ein Benutzer eine die Einbindung von auswählbaren Anwendungsverknüpfungen in den Nachrichtenaustausch-Thread auslösende Aussage einfügt, für mehrere Teilnehmer des Nachrichtenaustauschs, einschließlich, aber nicht beschränkt auf alle Teilnehmer, eine auswählbare Verknüpfung in deren jeweilige Transkripte eingebunden werden. In Fällen, in denen eine Universalanwendung wie ein Web-Browser bei Block 606 identifiziert wird, kann das System in verschiedenen Implementierungen eine auswählbare Verknüpfung zu einer interaktiven Web-Seite einbinden, die eine Funktionalität aufweist, die der Funktionalität der gegebenen Anwendung entspricht, die als nicht auf dem gegebenen Client-Computergerät installiert bestimmt wurde. Zusätzlich oder alternativ kann das System in verschiedenen Implementierungen eine auswählbare Verknüpfung enthalten, um die Anwendung herunterzuladen bzw. zu installieren, die als nicht auf dem gegebenen Client-Computergerät installiert bestimmt wurde.
  • 7 ist ein Blockdiagramm eines beispielhaften Computersystems 710. Das Computersystem 710 umfasst typischerweise mindestens einen Prozessor 714, der über ein Busuntersystem 712 mit einer Anzahl von Peripheriegeräten kommuniziert. Diese Peripheriegeräte können ein Speicheruntersystem 726 umfassen, einschließlich beispielsweise eines Speicheruntersystems 725 und eines Dateispeicheruntersystems 726, Benutzeroberflächen-Ausgabevorrichtungen 720, Benutzeroberflächen-Eingabevorrichtungen 722 und eines Netzwerkschnittstellenuntersystems 716. Die Eingabe- und Ausgabevorrichtungen ermöglichen eine Benutzerinteraktion mit dem Computersystem 710. Das Netzwerkschnittstellenuntersystem 716 stellt eine Schnittstelle zu externen Netzwerken bereit und ist mit entsprechenden Schnittstellenvorrichtungen in anderen Computersystemen gekoppelt.
  • Die Benutzeroberflächen-Eingabevorrichtungen 722 können eine Tastatur, Zeigegeräte, wie eine Maus, ein Trackball, ein Touchpad oder ein Grafiktablett, einen Scanner, einen in die Anzeige integrierten Touchscreen, Audioeingabevorrichtungen wie Spracherkennungssysteme, Mikrofone bzw. andere Arten von Eingabevorrichtungen aufweisen. Allgemein soll der Begriff „Eingabevorrichtung” alle möglichen Arten von Geräten und Weisen umfassen, um Informationen in das Computersystem 710 oder in ein Kommunikationsnetzwerk einzugeben.
  • Die Benutzeroberflächen-Ausgabevorrichtungen 720 können ein Anzeigeuntersystem, einen Drucker, ein Faxgerät oder nicht-visuelle Anzeigen, wie beispielsweise Audioausgabevorrichtungen, umfassen. Das Anzeigeuntersystem kann eine Kathodenstrahlröhre (CRT), eine Flachbildschirmvorrichtung wie eine Flüssigkristallanzeige (LCD), eine Projektionsvorrichtung oder einen anderen Mechanismus zum Erzeugen eines sichtbaren Bildes umfassen. Das Anzeigeuntersystem kann ebenfalls eine nicht-visuelle Anzeige, wie beispielsweise Audioausgabevorrichtungen, bereitstellen. Im Allgemeinen soll die Verwendung des Begriffs „Ausgabevorrichtung” alle möglichen Arten von Geräten umfassen und Möglichkeiten zur Ausgabe von Informationen von dem Computersystem 710 an den Benutzer oder zu einem anderen Computer oder Computersystem.
  • Das Speicheruntersystem 726 speichert Programmier- und Datenkonstrukte, die die Funktionalität einiger oder aller hierin beschriebenen Module bereitstellen. So kann beispielsweise das Speicheruntersystem 726 die Logik umfassen, um ausgewählte Aspekte des Verfahrens 600 auszuführen bzw. um einen oder mehrere der Nachrichtenaustausch-Clients 107, die Nachrichtenaustausch-Engine 120, Anwendungs-Engine 122, Indizierungs-Engine 126, Informations-Engine 130, Bewertungs-Engine 134 bzw. alternative Abfragevorschlags-Engine 136 zu implementieren.
  • Diese Softwaremodule werden im Allgemeinen vom Prozessor 714 allein oder in Kombination mit anderen Prozessoren ausgeführt. Der in dem Speicheruntersystem 726 verwendete Speicher 725 kann eine Anzahl von Speicher umfassen, die einen Hauptspeicher mit wahlfreiem Zugriff (RAM) 730 zum Speichern von Anweisungen und Daten während der Programmausführung und einen Festwertspeicher (ROM) 732, in dem feste Anweisungen gespeichert sind, umfassen. Ein Dateispeicheruntersystem 726 kann persistenten Speicher für Programm- und Datendateien bereitstellen und ein Festplattenlaufwerk, ein Diskettenlaufwerk zusammen mit entsprechenden Wechseldatenträgern, ein CD-ROM-Laufwerk, ein optisches Laufwerk oder wechselbare Medienkassetten umfassen. Die Module, die die Funktionalität bestimmter Implementierungen realisieren, können durch das Dateispeicheruntersystem 726 in dem Speicheruntersystem 726 oder in anderen Maschinen gespeichert werden, auf die der Prozessor 714 zugreift.
  • Das Busuntersystem 712 stellt einen Mechanismus bereit, mittels dessen die verschiedenen Komponenten und Untersysteme des Computersystems 710 miteinander, wie beabsichtigt, kommunizieren können. Obwohl das Busuntersystem 712 schematisch als ein einzelner Bus dargestellt ist, können alternative Implementierungen des Busuntersystems mehrere Busse verwenden.
  • Das Computersystem 710 kann verschiedene Arten umfassen, einschließlich einer Workstation, eines Servers, eines Computer-Clusters, eines Blade-Servers, einer Serverfarm oder irgendeines anderen Datenverarbeitungssystems oder eines Computergerätes. Aufgrund der sich ständig verändernden Natur von Computern und Netzwerken ist die Beschreibung des in 7 dargestellten Computersystems 710 nur als ein spezifisches Beispiel zum Zwecke der Veranschaulichung einiger Implementierungen gedacht. Es sind viele andere Konfigurationen des Computersystems 710 möglich, die mehr oder weniger Komponenten als das in 7 dargestellte Computersystem aufweisen können.
  • In Situationen, in denen die hierin beschriebene Systeme persönliche Informationen über den Benutzer sammeln oder die persönlichen Informationen des Benutzers verwenden könnten, kann dem Benutzer eine Möglichkeit zur Kontrolle bereitgestellt werden, ob und in welchem Umfang Programme oder Funktionen die Informationen des Benutzers (z. B. Informationen über das soziale Netzwerk des Benutzers, soziale Aktionen oder Aktivitäten, Beruf, die Präferenzen des Benutzers oder den aktuellen geografischen Standort des Benutzers) sammeln oder ob bzw. wie Inhalte vom Content-Server empfangen werden, die für den Benutzer relevant sein könnten. Außerdem können bestimmte Daten auf eine oder mehrere Arten behandelt werden, bevor diese gespeichert oder verwendet werden, sodass persönlich identifizierbare Informationen entfernt werden. Die Identität des Benutzers kann zum Beispiel so behandelt werden, dass keine persönlich identifizierbaren Informationen für den Benutzer ermittelt werden können oder der geografische Standort des Benutzers kann verallgemeinert werden, wenn geografische Standortinformationen erhalten werden (z. B. auf Orts-, Postleitzahl- oder Bundeslandebene), sodass kein bestimmter geografischer Standort des Benutzers ermittelt werden kann. Somit könnte der Benutzer eine Kontrolle darüber ausüben, wie Informationen über ihn gesammelt und verwendet werden.
  • Während hier mehrere Implementierungen beschrieben und dargestellt sind, kann eine Vielzahl anderer Mittel bzw. Strukturen zum Durchführen der Funktionen bzw. zum Erhalten der Ergebnisse bzw. eines oder mehrerer der hierin beschriebenen Vorteile verwendet werden, und jede dieser Variationen bzw. Modifikationen kann als innerhalb des Umfangs der hierin beschriebenen Implementierungen angesehen werden. Allgemeiner gesagt sind alle hierin beschriebenen Parameter, Dimensionen, Materialien und Konfigurationen exemplarisch, und die tatsächlichen Parameter, Dimensionen, Materialien bzw. Konfigurationen hängen von der spezifischen Anwendung oder den Anwendungen ab, für die die Lehren verwendet werden. Der Fachmann wird durch nicht mehr als routinemäßige Experimente viele Äquivalente für die hierin beschriebenen spezifischen Implementierungen erkennen oder ermitteln können. Es ist daher zu verstehen, dass die vorstehenden Ausführungsformen nur beispielhaft dargestellt sind und dass innerhalb des Umfangs der beigefügten Ansprüche und Äquivalente hiervon Ausführungsformen ausgeführt werden können, die anderweitig nicht spezifisch beschrieben und beansprucht sind. Ausführungsformen der vorliegenden Offenbarung sind auf jedes einzelne Merkmal, System, Material, Verfahren, jeden einzelnen Gegenstand bzw. Kit das/der hierin beschrieben wird, ausgerichtet. Darüber hinaus ist jede Kombination von zwei oder mehreren derartigen Merkmalen, Systemen, Verfahren, Materialien, Gegenständen bzw. Kits, wenn solche Merkmale, Systeme, Verfahren, Materialien, Gegenstände bzw. Kits nicht gegenseitig inkonsistent sind. Umfang der vorliegenden Offenbarung.

Claims (24)

  1. Computerimplementiertes Verfahren, umfassend: das Erfassen durch einen oder mehrere Prozessoren von einem oder mehreren Stichwörtern, die von einem Nachrichtenaustausch-Thread ausgehen, der zwei oder mehrere Nachrichtenaustausch-Clients umfasst, wobei das eine oder die mehreren Stichwörter die Einbindung einer oder mehrerer auswählbarer Verknüpfungen zu einer oder mehreren Anwendungen auslöst, die sich vom Nachrichtenaustausch-Thread unterscheiden; das Identifizieren durch einen oder mehreren der Prozessoren einer oder mehrerer Kandidatenanwendungen, die auf einem gegebenen Client-Computergerät installiert sind, das von einem Teilnehmer in dem Nachrichtenaustausch-Thread verwendet wird, wobei die eine oder mehreren Kandidatenanwendungen dem Inhalt des Nachrichtenaustausch-Threads zugeordnet ist/sind; und das Einbinden durch einen oder mehrere der Prozessoren in ein Transkript des Nachrichtenaustausch-Threads, das auf einer grafischen Benutzeroberfläche eines auf dem gegebenen Client-Computergerät ausgeführten Nachrichtenaustausch-Clients angezeigt wird, einer oder mehrerer auswählbarer Verknüpfungen, wobei jede auswählbare Verknüpfung von dem Teilnehmer bedienbar ist, um zu bewirken, dass das gegebene Client-Computergerät den Teilnehmer einer mit einer jeweiligen Kandidatenanwendung verknüpften Oberfläche aussetzt.
  2. Computerimplementiertes Verfahren nach Anspruch 1, wobei das Identifizieren durch einen oder mehrere der Prozessoren ausgeführt wird, die von dem gegebenen Client-Computergerät entfernt sind, und Herunterladen der die eine oder die mehreren auswählbaren Verknüpfungen angebenden Daten auf das gegebene Client-Gerät.
  3. Computerimplementiertes Verfahren nach Anspruch 2, ferner umfassend das Auswählen eines Teilsatzes der heruntergeladenen einen oder mehreren auswählbaren Verknüpfungen zur Anzeige, basierend auf einem oder mehreren Informationssignalen durch einen oder mehrere Prozessoren des gegebenen Client-Gerätes.
  4. Computerimplementiertes Verfahren nach Anspruch 3, wobei das eine oder die mehreren Informationssignale eine Häufigkeitsbewertung der Verwendung der einen oder mehreren Kandidatenanwendungen umfassen.
  5. Computerimplementiertes Verfahren nach Anspruch 1, wobei das Identifizieren durch einen oder mehrere der Prozessoren durchgeführt wird, die Bestandteil des gegebenen Client-Computergerätes sind.
  6. Computerimplementiertes Verfahren nach irgendeinem der vorhergehenden Ansprüche, wobei das eine oder die mehreren Stichwörter vom Inhalt des Nachrichtenaustausch-Threads ausgehen.
  7. Computerimplementiertes Verfahren nach irgendeinem der vorhergehenden Ansprüche, wobei das eine oder die mehreren Stichwörter ein Schlüsselwort oder eine Schlüsselphrase umfassen, das/die einer bestimmten Anwendung zugeordnet ist.
  8. Computerimplementiertes Verfahren nach irgendeinem der vorhergehenden Ansprüche, wobei das eine oder die mehreren Stichwörter eine von einem Teilnehmer des Nachrichtenaustausch-Threads an einen anderen Teilnehmer gerichtete Aussage enthält, die mit einem Muster übereinstimmt, das mit einer bestimmten Anwendung verknüpft ist.
  9. Computerimplementiertes Verfahren nach Anspruch 8, wobei das eine oder die mehreren Stichwörter eine Übereinstimmung zwischen der Aussage und einer mit der bestimmten Anwendung verknüpften Vorlage umfasst, wobei die Vorlage aus einem Korpus von Nachrichten erzeugt wird, der Nachrichten vorheriger Nachrichtenaustausch-Threads umfasst, und wobei die Vorlage mit einer Gruppe von Nachrichten aus dem Korpus verbunden ist, die ein oder mehrere Attribute gemeinsam aufweisen.
  10. Computerimplementiertes Verfahren nach irgendeinem der vorhergehenden Ansprüche, wobei das Identifizieren das Identifizieren eines auf dem gegebenen Client-Computergerät installierten Web-Browsers als Kandidatenanwendung in Reaktion auf eine Ermittlung, dass eine gegebene, mit dem Inhalt des Nachrichtenaustausch-Threads verknüpfte Anwendung nicht auf dem gegebenen Client-Computergerät installiert ist; und wobei das Einbinden das Einbinden einer auswählbaren Verknüpfung zu einer interaktiven Web-Seite in das Transkript umfasst, wobei die interaktive Web-Seite eine Funktionalität umfasst, die der Funktionalität der gegebenen Anwendung entspricht, die nicht auf dem gegebenen Client-Computergerät installiert ist.
  11. Computerimplementiertes Verfahren nach irgendeinem der Ansprüche 1 bis 9, wobei das Identifizieren das Identifizieren eines auf dem gegebenen Client-Computergerät installierten Web-Browsers als Kandidatenanwendung in Reaktion auf eine Ermittlung, dass eine gegebene, mit dem Inhalt des Nachrichtenaustausch-Threads verknüpfte Anwendung nicht auf dem gegebenen Client-Computergerät installiert ist, und wobei das Einbinden das Einbinden einer auswählbaren Verknüpfung zu einer Web-Seite, die dem Herunterladen eines Installers der gegebenen Anwendung zugeordnet ist, in das Transkript umfasst.
  12. Computerimplementiertes Verfahren nach irgendeinem der vorstehenden Ansprüche, des Weiteren umfassend: das Bestimmen eines Kontextes eines oder mehrerer Teilnehmer des Nachrichtenaustausch-Threads durch einen oder mehrere der Prozessoren; und das Ausfüllen im Voraus eines oder mehrerer Datenpunkte, die mit mindestens einer der einen oder mehreren Kandidatenanwendungen verknüpft sind, basierend auf dem bestimmten Kontext.
  13. Computerimplementiertes Verfahren nach Anspruch 12, wobei das Bestimmen des Kontexts den Empfang eines oder mehrerer kontextbezogener Signale von einem oder mehreren der Client-Geräte umfasst.
  14. Computerimplementiertes Verfahren nach Anspruch 13, wobei das eine oder die mehreren kontextbezogenen Signale einen geografischen Standort von mindestens einem Teilnehmer an dem Nachrichtenaustausch-Thread umfassen.
  15. Computerimplementiertes Verfahren nach irgendeinem der vorhergehenden Ansprüche, ferner umfassend das Identifizieren einer Anwendungskategorie, die mit dem einen oder den mehreren Stichwörtern verbunden ist, durch einen oder mehrere der Prozessoren, wobei die eine oder mehreren Kandidatenanwendungen eine Kandidatenanwendung umfasst/umfassen, die der Anwendungskategorie zugeordnet ist und die ebenfalls auf dem gegebenen Client-Computergerät installiert ist.
  16. Computerimplementiertes Verfahren nach irgendeinem der vorhergehenden Ansprüche, wobei das eine oder die mehreren Stichwörter die Erwähnung einer Entität umfassen.
  17. Computerimplementiertes Verfahren nach Anspruch 16, ferner umfassend die Übereinstimmungssuche der erwähnten Entität mit einer oder mehreren bekannten Entitäten in einer Wissensbasis von Entitäten und der Beziehungen zwischen diesen.
  18. System, das einen oder mehrere Prozessoren und einen oder mehrere Speicher aufweist, die betriebstechnisch mit dem einen oder den mehreren Prozessoren gekoppelt sind, wobei der eine oder die mehreren Speicher Anweisungen speichern, die in Reaktion auf die Ausführung der Anweisungen durch den einen oder die mehreren Prozessoren den einen oder die mehreren Prozessoren zu Folgendem veranlassen: Erfassen eines oder mehrerer Stichwörter, die von einem Nachrichtenaustausch-Thread ausgehen, der zwei oder mehrere Nachrichtenaustausch-Clients umfasst, wobei das eine oder die mehreren Stichwörter die Einbindung einer oder mehrerer auswählbarer Verknüpfungen zu einer oder mehreren Anwendungen auslöst, die sich vom Nachrichtenaustausch-Thread unterscheiden; Identifizieren einer oder mehrerer Kandidatenanwendungen, die auf einem gegebenen, von einem Teilnehmer in dem Nachrichtenaustausch-Thread verwendeten Client-Computergerät installiert ist/sind, wobei die eine oder mehreren Kandidatenanwendungen dem Inhalt des Nachrichtenaustausch-Threads zugeordnet ist/sind, und Einbinden durch einen oder mehrere der Prozessoren in ein Transkript des Nachrichtenaustausch-Threads, das auf einer grafischen Benutzeroberfläche eines auf dem gegebenen Client-Computergerät ausgeführten Nachrichtenaustausch-Clients angezeigt wird, einer oder mehrerer auswählbarer Verknüpfungen, wobei jede auswählbare Verknüpfung von dem Teilnehmer verwendet werden kann, um zu bewirken, dass das gegebene Client-Computergerät den Teilnehmer einer mit einer jeweiligen Kandidatenanwendung verknüpften Oberfläche aussetzt.
  19. System nach Anspruch 18, wobei das Identifizieren durch einen oder mehrere Prozessoren durchgeführt wird, die von dem gegebenen Client-Computergerät entfernt sind, und die eine oder mehrere auswählbare Verknüpfungen angebenden Daten auf das gegebene Client-Gerät heruntergeladen werden, und das System weiterhin Anweisungen zum Auswählen einer Teilmenge der heruntergeladenen einen oder mehreren auswählbaren Verknüpfungen zur Anzeige auf der Grundlage eines oder mehrerer Informationssignale umfasst.
  20. System nach Anspruch 18, wobei der eine oder die mehreren Speicher Anweisungen speichern, die in Reaktion auf das Ausführen der Anweisungen durch einen oder mehrere Prozessoren bewirken, dass der eine oder die mehreren Prozessoren das Verfahren nach irgendeinem der Ansprüche 2 bis 17 ausführen.
  21. Mindestens ein nicht-transitorisches computerlesbares Medium mit Anweisungen, die in Reaktion auf das Ausführen der Anweisungen durch den einen oder die mehreren Prozessoren bewirken, dass der eine oder die mehreren Prozessoren die folgenden Operationen ausführen: das Erfassen eines oder mehrerer Stichwörter, die von einem Nachrichtenaustausch-Thread ausgehen, der zwei oder mehrere Nachrichtenaustausch-Clients umfasst, wobei das eine oder die mehreren Stichwörter das Einbinden einer oder mehrerer auswählbarer Verknüpfungen zu einer oder mehreren Anwendungen auslösen, die sich vom Nachrichtenaustausch-Thread unterscheiden; das Identifizieren einer oder mehrerer Kandidatenanwendungen, die auf einem gegebenen, von einem Teilnehmer in dem Nachrichtenaustausch-Thread verwendeten Client-Computergerät installiert sind, wobei die eine oder mehreren Kandidatenanwendungen dem Inhalt des Nachrichtenaustausch-Threads zugeordnet ist/sind, und das Einbinden durch einen oder mehrere der Prozessoren in ein Transkript des Nachrichtenaustausch-Threads, das auf einer grafischen Benutzeroberfläche eines auf dem gegebenen Client-Computergerät ausgeführten Nachrichtenaustausch-Clients angezeigt wird, einer oder mehrerer auswählbarer Verknüpfungen, wobei jede auswählbare Verknüpfung von dem Teilnehmer verwendet werden kann, um zu bewirken, dass das gegebene Client-Computergerät den Teilnehmer einer mit einer jeweiligen Kandidatenanwendung verknüpften Oberfläche aussetzt.
  22. Mindestens eine nicht-flüchtiges computerlesbare Medium nach Anspruch 21, das Anweisungen umfasst, die in Reaktion auf das Ausführen der Anweisungen durch den einen oder die mehreren Prozessoren bewirken, dass der eine oder die mehrere Prozessoren das Verfahren nach irgendeinem der Ansprüche 2 bis 17 ausführen.
  23. Vorrichtung, die zum Durchführen des Verfahrens nach irgendeinem der Ansprüche 1 bis 17 konfiguriert ist.
  24. Computerprogramm mit maschinenlesbaren Anweisungen, die bei Ausführung durch eine Rechenvorrichtung bewirken, dass das Verfahren nach irgendeinem der Ansprüche 1 bis 17 durchgeführt wird.
DE102016125509.2A 2016-05-17 2016-12-22 Einbindung von auswählbaren Anwendungsverknüpfungen in Nachrichtenaustausch-Threads Pending DE102016125509A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/157,279 US10263933B2 (en) 2016-05-17 2016-05-17 Incorporating selectable application links into message exchange threads
US15/157,279 2016-05-17

Publications (1)

Publication Number Publication Date
DE102016125509A1 true DE102016125509A1 (de) 2017-11-23

Family

ID=57838492

Family Applications (2)

Application Number Title Priority Date Filing Date
DE102016125509.2A Pending DE102016125509A1 (de) 2016-05-17 2016-12-22 Einbindung von auswählbaren Anwendungsverknüpfungen in Nachrichtenaustausch-Threads
DE202016008173.0U Active DE202016008173U1 (de) 2016-05-17 2016-12-22 Einbindung von auswählbaren Anwendungsverknüpfungen in Nachrichtenaustausch-Threads

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE202016008173.0U Active DE202016008173U1 (de) 2016-05-17 2016-12-22 Einbindung von auswählbaren Anwendungsverknüpfungen in Nachrichtenaustausch-Threads

Country Status (8)

Country Link
US (2) US10263933B2 (de)
EP (1) EP3458976B1 (de)
JP (1) JP6640384B2 (de)
KR (1) KR102215471B1 (de)
CN (1) CN107391522B (de)
DE (2) DE102016125509A1 (de)
GB (1) GB2550633A (de)
WO (1) WO2017200581A1 (de)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9959037B2 (en) 2016-05-18 2018-05-01 Apple Inc. Devices, methods, and graphical user interfaces for messaging
BR112018073693A2 (pt) 2016-05-18 2019-02-26 Apple Inc dispositivos, métodos, e interfaces gráficas de usuário para mensagens
US10368208B2 (en) 2016-06-12 2019-07-30 Apple Inc. Layers in messaging applications
US10852912B2 (en) * 2016-06-12 2020-12-01 Apple Inc. Image creation app in messaging app
US10785175B2 (en) 2016-06-12 2020-09-22 Apple Inc. Polling extension application for interacting with a messaging application
US10595169B2 (en) 2016-06-12 2020-03-17 Apple Inc. Message extension app store
US11630688B2 (en) * 2017-02-02 2023-04-18 Samsung Electronics Co., Ltd. Method and apparatus for managing content across applications
US10791077B2 (en) 2017-08-08 2020-09-29 Snap Inc. Application-independent messaging system
US20200005166A1 (en) * 2018-07-02 2020-01-02 The Climate Corporation Automatically assigning hybrids or seeds to fields for planting
JP6928033B2 (ja) * 2018-08-31 2021-09-01 ファナック株式会社 知識情報サービスシステム
CN110297976A (zh) * 2019-06-26 2019-10-01 百度在线网络技术(北京)有限公司 基于云检索的推荐方法、装置、设备及可读存储介质
US11134036B2 (en) 2019-07-05 2021-09-28 Snap Inc. Event planning in a content sharing platform
US20220383367A1 (en) * 2019-10-28 2022-12-01 Prime X Connect Pty Ltd Primary production trading platform system and interface
CN114936000B (zh) * 2019-12-26 2024-02-13 上海擎感智能科技有限公司 基于图片构架的车机交互方法、系统、介质及设备
US11223594B2 (en) * 2020-01-15 2022-01-11 Thierry Excoffier Secret identity pairing and gradual disclosure
US11411900B2 (en) 2020-03-30 2022-08-09 Snap Inc. Off-platform messaging system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150350123A1 (en) * 2014-05-31 2015-12-03 Samsung Electronics Co., Ltd. User terminal apparatus, communication system, and method of controlling user terminal apparatus
WO2017112796A1 (en) * 2015-12-21 2017-06-29 Google Inc. Automatic suggestions and other content for messaging applications
WO2017112786A1 (en) * 2015-12-21 2017-06-29 Google Inc. Automatic suggestions for message exchange threads

Family Cites Families (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050223073A1 (en) 2000-05-04 2005-10-06 Malik Dale W Attaching applets to messaging communications
US6976082B1 (en) 2000-11-03 2005-12-13 At&T Corp. System and method for receiving multi-media messages
US20040215467A1 (en) 2001-01-03 2004-10-28 Coffman Kathryn D. Method and system for electronic document handling, such as for requests for quotations under an electronic auction
US20020138588A1 (en) 2001-03-20 2002-09-26 Richard Leeds System and method for adaptive forums communication
US7406659B2 (en) 2001-11-26 2008-07-29 Microsoft Corporation Smart links
US20060010125A1 (en) 2004-05-21 2006-01-12 Bea Systems, Inc. Systems and methods for collaborative shared workspaces
US7451188B2 (en) 2005-01-07 2008-11-11 At&T Corp System and method for text translations and annotation in an instant messaging session
US7483899B2 (en) 2005-01-11 2009-01-27 International Business Machines Corporation Conversation persistence in real-time collaboration system
DE102005044857A1 (de) * 2005-09-13 2007-03-22 Siemens Ag Verfahren und Anordnung zum Betreiben eines Gruppendienstes in einem Kommunikationsnetz
US9318108B2 (en) * 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US20080201434A1 (en) 2007-02-16 2008-08-21 Microsoft Corporation Context-Sensitive Searches and Functionality for Instant Messaging Applications
US8270995B1 (en) * 2007-04-26 2012-09-18 Nextel Communications, Inc. Composite application for group-based activity reservations
US8504621B2 (en) 2007-10-26 2013-08-06 Microsoft Corporation Facilitating a decision-making process
US7890525B2 (en) 2007-11-14 2011-02-15 International Business Machines Corporation Foreign language abbreviation translation in an instant messaging system
CN101217508B (zh) 2007-12-29 2010-06-23 腾讯科技(深圳)有限公司 一种基于即时通信平台的网络代理系统及其实现方法
US20120010995A1 (en) 2008-10-23 2012-01-12 Savnor Technologies Web content capturing, packaging, distribution
US9031216B1 (en) 2009-03-05 2015-05-12 Google Inc. In-conversation search
GB2470751A (en) 2009-06-04 2010-12-08 Iq2 Ltd Delivering messages/content by determining if a target device is equipped with the appropriate application to enable the message/content to be conveyed.
US10706373B2 (en) * 2011-06-03 2020-07-07 Apple Inc. Performing actions associated with task items that represent tasks to perform
US20110035453A1 (en) 2009-08-06 2011-02-10 Oracle International Corporation Automatic rules-based messaging system based on analysis of text and/or associated metadata
US8667193B2 (en) * 2011-04-29 2014-03-04 Qualcomm Incorporated Non-ported generic device (software managed generic device)
US20120284093A1 (en) 2011-05-06 2012-11-08 Michael Shepherd Evans System and Method For Including Advertisements In Electronic Communications
US9253137B1 (en) 2011-06-24 2016-02-02 Google Inc. Concurrent display of conversation messages and social network posts by conversation message authors
EP2575128A3 (de) * 2011-09-30 2013-08-14 Apple Inc. Benutzung von Kontextinformation um die Verarbeitung von Kommandos in einem virtuellen Assistenten zu ermöglichen
US9082402B2 (en) 2011-12-08 2015-07-14 Sri International Generic virtual personal assistant platform
US8888590B2 (en) 2011-12-13 2014-11-18 Empire Technology Development Llc Graphics render matching for displays
US20130179265A1 (en) * 2012-01-05 2013-07-11 Christopher C. Winslade Location-based promotion delivery system and method
US20130218885A1 (en) 2012-02-22 2013-08-22 Salesforce.Com, Inc. Systems and methods for context-aware message tagging
AU2012201460A1 (en) 2012-03-12 2013-09-26 Tdm Projectservice Service Pty Ltd Mr Pay it
US9685160B2 (en) * 2012-04-16 2017-06-20 Htc Corporation Method for offering suggestion during conversation, electronic device using the same, and non-transitory storage medium
US20130326354A1 (en) 2012-06-01 2013-12-05 James Anderson Systems and Methods for Selection and Personalization of Content Items
JP6231315B2 (ja) * 2012-07-20 2017-11-15 公立大学法人広島市立大学 情報処理装置
US9196008B2 (en) * 2012-08-13 2015-11-24 Facebook, Inc. Generating guest suggestions for events in a social networking system
US9135555B2 (en) * 2012-09-28 2015-09-15 Facebook, Inc. Enhanced predictive input utilizing a typeahead process
US9338403B2 (en) 2013-01-23 2016-05-10 Google Inc. Persistent conversations
KR101488930B1 (ko) 2013-02-25 2015-02-03 주식회사 팬택 모바일 단말의 입력 예측 서비스 제공 장치 및 방법
US9607617B2 (en) 2013-04-02 2017-03-28 Nuance Communications, Inc. Concept cloud in smart phone applications
CN110442699A (zh) * 2013-06-09 2019-11-12 苹果公司 操作数字助理的方法、计算机可读介质、电子设备和系统
US9514748B2 (en) * 2014-01-15 2016-12-06 Microsoft Technology Licensing, Llc Digital personal assistant interaction with impersonations and rich multimedia in responses
US9965559B2 (en) 2014-08-21 2018-05-08 Google Llc Providing automatic actions for mobile onscreen content
US20160092410A1 (en) 2014-09-25 2016-03-31 Monotype Imaging Inc. Selectable Styles for Text Messaging System User Devices
US20160092937A1 (en) 2014-09-25 2016-03-31 Monotype Imagining Inc. Selectable Text Messaging Styles for Brand Owners
US9508339B2 (en) 2015-01-30 2016-11-29 Microsoft Technology Licensing, Llc Updating language understanding classifier models for a digital personal assistant based on crowd-sourcing
US10460227B2 (en) 2015-05-15 2019-10-29 Apple Inc. Virtual assistant in a communication session
US20160342665A1 (en) 2015-05-22 2016-11-24 Microsoft Technology Licensing, Llc Interactive command line for content creation
US10686738B2 (en) * 2015-07-24 2020-06-16 Facebook, Inc. Providing personal assistant service via messaging
US10158593B2 (en) * 2016-04-08 2018-12-18 Microsoft Technology Licensing, Llc Proactive intelligent personal assistant

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150350123A1 (en) * 2014-05-31 2015-12-03 Samsung Electronics Co., Ltd. User terminal apparatus, communication system, and method of controlling user terminal apparatus
WO2017112796A1 (en) * 2015-12-21 2017-06-29 Google Inc. Automatic suggestions and other content for messaging applications
WO2017112786A1 (en) * 2015-12-21 2017-06-29 Google Inc. Automatic suggestions for message exchange threads

Also Published As

Publication number Publication date
US10263933B2 (en) 2019-04-16
DE202016008173U1 (de) 2017-04-21
US11057333B2 (en) 2021-07-06
KR102215471B1 (ko) 2021-02-16
JP6640384B2 (ja) 2020-02-05
KR20190008894A (ko) 2019-01-25
CN107391522A (zh) 2017-11-24
CN107391522B (zh) 2021-03-09
US20170339085A1 (en) 2017-11-23
JP2019523922A (ja) 2019-08-29
WO2017200581A1 (en) 2017-11-23
GB2550633A (en) 2017-11-29
GB201621385D0 (en) 2017-02-01
US20190230056A1 (en) 2019-07-25
EP3458976A1 (de) 2019-03-27
EP3458976B1 (de) 2021-05-12

Similar Documents

Publication Publication Date Title
DE102016125509A1 (de) Einbindung von auswählbaren Anwendungsverknüpfungen in Nachrichtenaustausch-Threads
DE202016008241U1 (de) Bereitstellen von Vorschlägen für die Interaktion mit einem automatisierten Assistenten in einem Multi-User Nachrichtenaustausch-Thread
DE202016008323U1 (de) Das Einbeziehen auswählbarer Anwendungslinks in Konversationen mit persönlichen Assistenz-Modulen
DE102017122326A1 (de) Bereitstellen einer Eingabeaufforderung in einer automatisierten Dialogsitzung basierend auf ausgewähltem Inhalt von vorherigen automatisierten Dialogsitzungen
DE102017121699A1 (de) Dynamische Erzeugung von angepassten Einführungslernprogrammen für eine Anwendung
DE102017119601A1 (de) Verwenden einer Anwendereingabe, um Suchergebnisse, die für die Darstellung für den Anwender bereitgestellt werden, anzupassen
DE202017106514U1 (de) Proaktive Aufnahme von nicht angefordertem Inhalt in Mensch-Computer-Dialoge
DE102017122308A1 (de) Kontextabhängige einfügeziel-vorhersage
DE202010018482U1 (de) Bereitstellung eines Zugangs zu einer Unterhaltung in einem gehosteten Unterhaltungssystem
DE202011110866U1 (de) Identifizierung von Nachrichtenempfängern
DE202017104019U1 (de) System zum Steuern eines Computers zum Initiieren der Ausführung einer computerbasierten Aktion
DE112016005374T5 (de) Identifizieren von Abfragemustern und zugeordneten aggregierten Statistikdaten unter Suchabfragen
DE202016008243U1 (de) Erweitern von Nachrichtenaustausch-Threads
US7756797B2 (en) Leveraging user-to-user interactions in a knowledgebase using a forum interface
DE102017122547A1 (de) Autonomes liefern von suchergebnissen rückwirkend; auch im kontext eines dialogassistenten
DE112010002089T5 (de) Verfahren zur Infomationsauswahl im Internet
DE202017105863U1 (de) Einstufen von Suchergebnisdokumenten
JP6644171B2 (ja) メッセージ交換スレッドを使用した効率的な検索を可能にすること
DE202015009289U1 (de) Systeme zur Verzerrung der Aufgabenunterstützung von Autovervollständigungsvorschlägen
DE112016005220T5 (de) Zugangspunkte für Karten
JP2004213153A (ja) 情報表示装置、情報表示方法、その記録媒体およびプログラム
DE112015005293T5 (de) Präsentation von Informationskarten für Ereignisse, die mit Entitäten verbunden sind
DE102017116159A1 (de) Kontextinformationen für eine Benachrichtigung
US20100070891A1 (en) System and method for configuring an application via a visual map interface
EP1280071B1 (de) Verfahren zur Erzeugung eines tabellengesteuerten Dialoges mit Mehrfach-Navigation für relational-multimediale Informationssysteme

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R138 Derivation of utility model

Ref document number: 202016008173

Country of ref document: DE

R016 Response to examination communication
R081 Change of applicant/patentee

Owner name: GOOGLE LLC (N.D.GES.D. STAATES DELAWARE), MOUN, US

Free format text: FORMER OWNER: GOOGLE INC., MOUNTAIN VIEW, CALIF., US

R082 Change of representative

Representative=s name: VENNER SHIPLEY LLP, DE

Representative=s name: BETTEN & RESCH PATENT- UND RECHTSANWAELTE PART, DE

R082 Change of representative

Representative=s name: VENNER SHIPLEY GERMANY LLP, DE

Representative=s name: VENNER SHIPLEY LLP, DE