DE102017122308A1 - Kontextabhängige einfügeziel-vorhersage - Google Patents

Kontextabhängige einfügeziel-vorhersage Download PDF

Info

Publication number
DE102017122308A1
DE102017122308A1 DE102017122308.8A DE102017122308A DE102017122308A1 DE 102017122308 A1 DE102017122308 A1 DE 102017122308A1 DE 102017122308 A DE102017122308 A DE 102017122308A DE 102017122308 A1 DE102017122308 A1 DE 102017122308A1
Authority
DE
Germany
Prior art keywords
application
user
predicted
computing device
selected content
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE102017122308.8A
Other languages
English (en)
Inventor
Aayush Kumar
Gökhan Bakir
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 DE102017122308A1 publication Critical patent/DE102017122308A1/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • 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/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/543User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]
    • 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
    • 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/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • 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

Abstract

Es wird kontextabhängige Einfügeziel-Vorhersage verwendet, um eine oder mehrere Ziel-Anwendungen für eine Einfüge-Aktion vorherzusagen, und zwar auf Basis eines Kontextes, der Inhalt zugeordnet ist, der zuvor ausgewählt und kopiert worden ist. Die Ergebnisse der Vorhersage können verwendet werden, um einem Benutzer ein oder mehrere Benutzersteuerelemente darzubieten, um dem Benutzer zu ermöglichen, eine oder mehrere vorhergesagte Anwendungen zu aktivieren, und in manchen Fällen zusätzlich einen Zustand einer vorhergesagten Anwendung zu konfigurieren, den ausgewählten und kopierten Inhalt zu verwenden, sobald aktiviert. Somit kann nach Beendigung einer Kopier-Aktion einem Benutzer in manchen Fällen die Fähigkeit gegeben werden, schnell zu einer Anwendung zu wechseln, in die der Benutzer den Inhalt einfügen wollte. Dies kann eine einfachere Benutzerschnittstelle in einem Gerät wie zum Beispiel Telefonen und Tablet-Computern mit begrenzter Display-Größe und begrenzten Eingabegerät-Hilfsmitteln bereitstellen. Es kann eine Einfüge-Tätigkeit in eine andere Anwendung mit weniger Schritten als konventionell möglich ergeben.

Description

  • Hintergrund
  • Computergeräte unterstützen seit langem verschiedene Bearbeitungs-Aktionen wie z. B. Kopieren, Ausschneiden und Einfügen. Eine Kopier-Aktion wird im Allgemeinen durchgeführt, nachdem ein Benutzer irgendeinen angezeigten Inhalt ausgewählt hat, und führt dazu, dass der ausgewählte Inhalt in einen temporären Speicher kopiert wird, der gewöhnlich als Zwischenablage bezeichnet wird. Eine Einfüge-Aktion wird im Allgemeinen durchgeführt, wenn ein Benutzer zuvor kopierten Inhalt an anderer Stelle einfügen möchte, und führt dazu, dass der zuvor in eine Zwischenablage kopierte Inhalt an einem vom Benutzer spezifizierten Ort eingefügt wird. Eine Ausschneide-Aktion kann als eine Unterart einer Kopier-Aktion angesehen werden, da eine Ausschneide-Aktion wie bei einer Kopier-Aktion bewirkt, dass ausgewählter Inhalt in eine Zwischenablage kopiert wird. Bei einer Ausschneide-Aktion wird der ausgewählte Inhalt jedoch von seinem ursprünglichen Ort gelöscht.
  • Kopier-, Ausschneide- und Einfüge-Aktionen werden gewöhnlich in Textverarbeitungs-Anwendungen verwendet, zum Beispiel zum Bearbeiten von Text, Bildern und anderen Arten von Inhalt in einem Textverarbeitungs-Dokument. Kopier-, Ausschneide- und Einfüge-Aktionen werden jedoch auch für eine Vielzahl von anderen Zwecken verwendet, einschließlich der Bearbeitung von Dateien in einem Speichersystem. Ferner hat man seit dem Aufkommen von Multitasking und der Unterstützung von mehreren gleichzeitig ausgeführten Anwendungen Kopier-, Ausschneide- und Einfüge-Aktionen verwendet, um Inhalt zwischen verschiedenen Anwendungen zu kopieren oder zu verschieben. Wenn ein Benutzer zum Beispiel beim Surfen im Internet ein interessantes Objekt findet und dieses Objekt per E-Mail oder Textnachricht mit einem anderen Benutzer teilen möchte, muss der Benutzer das Objekt möglicherweise in einer Browser-Anwendung kopieren und es in eine E-Mail- oder SMS-Anwendung einfügen. Und wenn ein Benutzer auf einen geografischen Ort auf einer Webseite oder in einer E-Mail stößt und diesen Ort auf einer Karte sehen möchte, muss der Benutzer das Objekt möglicherweise aus einer Browser- oder E-Mail-Anwendung kopieren und es in ein Suchfeld einer Karten-Anwendung einfügen.
  • Das Kopieren oder Ausschneiden von Inhalt wie z. B. Text aus einer Anwendung und das Einfügen dieses Inhalts in eine andere Anwendung kann jedoch bei vielen Computergeräten umständlich sein, insbesondere bei mobilen Geräten wie z. B. Smartphones und Tablets, bei denen keine Fenstertechnik für Anwendungen verwendet wird (d. h., es wird jeweils nur eine Anwendung angezeigt). Wenn ein Benutzer zum Beispiel auf einem mobilen Gerät Text aus einer Anwendung in eine andere Anwendung kopieren möchte, muss der Benutzer möglicherweise zuerst den Text auswählen, indem er eine Touchscreen-Anzeige antippt und/oder zieht, um den gewünschten Text auszuwählen, und ein Kopier-Benutzersteuerelement auswählen, das die Kopier-Aktion durchführt. Um diesen kopierten Text in eine andere Anwendung einzufügen, muss der Benutzer dann möglicherweise eine Start-Schaltfläche auf dem Computergerät drücken, durch eine Liste von Anwendungen scrollen und die gewünschte Anwendung finden, in die eingefügt werden soll, und dann den Text in ein geeignetes Benutzersteuerelement (z. B. ein Suchfeld, Nachrichtenfeld, Textfeld usw.) einfügen. In manchen Fällen hat ein Benutzer möglicherweise sogar etwas Text nach dem Einfügen gelöscht (z. B. beim Einfügen in das Suchfeld einer Karten-Anwendung, um die Anfrage richtig zu formatieren).
  • Kurzdarstellung
  • Die vorliegende Offenbarung betrifft allgemein Verfahren, Vorrichtungen und computerlesbare Medien (flüchtig und nichtflüchtig) zur Durchführung von kontextabhängiger Einfügeziel-Vorhersage, um eine oder mehrere Ziel-Anwendungen für eine Einfüge-Aktion vorherzusagen, und zwar auf Basis eines Kontextes, der dem Inhalt zugeordnet ist, der zuvor ausgewählt und kopiert worden ist. Die Ergebnisse der Vorhersage können verwendet werden, um einem Benutzer ein oder mehrere Benutzersteuerelemente darzubieten, um dem Benutzer zu ermöglichen, eine oder mehrere vorhergesagte Anwendungen zu aktivieren, und in manchen Fällen zusätzlich einen Zustand einer vorhergesagten Anwendung zu konfigurieren, den ausgewählten und kopierten Inhalt zu verwenden, sobald aktiviert. Somit kann nach Beendigung einer Kopier-Aktion einem Benutzer in manchen Fällen die Fähigkeit gegeben werden, schnell zu einer Anwendung zu wechseln, in die der Benutzer den Inhalt einfügen wollte. Dies kann besonders nützlich bei mobilen Geräten wie z. B. Telefonen und Tablet-Computern sein, wo es begrenzte Display-Größe und begrenzte Eingabegerät-Hilfsmittel gibt. Es kann eine Einfüge-Tätigkeit in eine andere Anwendung mit weniger Schritten als konventionell möglich ergeben. Es kann eine einfachere Benutzerschnittstelle bereitstellen und das mobile Gerät mit seiner begrenzten Display-Größe und begrenzten Eingabegeräte-Ressourcen leichter verwendbar machen.
  • Daher kann in manchen Implementierungen ein Verfahren umfassen, ein als Antwort auf eine Benutzeraktion, ausgewählten Inhalt auf einem Computergerät zu kopieren, initiiertes Steuersignal zu empfangen, unter Verwendung mindestens eines Prozessors eine vorhergesagte Anwendung, in die der ausgewählte Inhalt einfügbar ist, auf Basis eines dem ausgewählten Inhalt zugeordneten Kontextes aus einer Mehrzahl von Anwendungen vorherzusagen, und als Antwort auf das Steuersignal und unter Verwendung mindestens eines Prozessors ein Benutzersteuerelement für die vorhergesagte Anwendung auf dem Computergerät anzeigen zu lassen, wobei das Benutzersteuerelement konfiguriert ist, die vorhergesagte Anwendung nach Benutzerauswahl auf dem Computergerät zu aktivieren.
  • In manchen Implementierungen kann ein Verfahren umfassen: als Antwort auf ein Steuersignal, das aus einer Benutzereingabe resultiert, ausgewählten Inhalt auf einem Computergerät zu kopieren: auf Basis eines dem ausgewählten Inhalt zugeordneten Kontextes eine Inhalt-Einfügeziel-Anwendung als eine vorhergesagte Anwendung aus einer Mehrzahl von Anwendungen auszuwählen; und ein Benutzersteuerelement für die vorhergesagte Anwendung auf dem Computergerät anzeigen zu lassen und auf Benutzerauswahl des Benutzersteuerelements mit Aktivieren der vorhergesagten Anwendung auf dem Computergerät zu antworten.
  • In manchen Implementierungen umfasst der Kontext, in welcher Anwendung die Benutzeraktion zum Kopieren des ausgewählten Inhalts durchgeführt wird, und das Vorhersagen der vorhergesagten Anwendung umfasst, die vorhergesagte Anwendung mindestens teilweise basierend darauf vorherzusagen, in welcher Anwendung die Benutzeraktion zum Kopieren des ausgewählten Inhalts durchgeführt wird. In manchen Implementierungen umfasst außerdem der Kontext eine Länge des ausgewählten Inhalts, und das Vorhersagen der vorhergesagten Anwendung umfasst, die vorhergesagte Anwendung mindestens teilweise auf Basis der Länge des ausgewählten Inhalts vorherzusagen. In manchen Implementierungen umfasst außerdem der ausgewählte Inhalt Text, und das Vorhersagen der vorhergesagten Anwendung umfasst, eine Nachrichtenübermittlungs-Anwendung aus der Mehrzahl von Anwendungen als die vorhergesagte Anwendung vorherzusagen, wenn die Länge des ausgewählten Inhalts einem Länge-Kriterium genügt, und eine Suchanwendung aus der Mehrzahl von Anwendungen als die vorhergesagte Anwendung vorherzusagen, wenn die Länge des ausgewählten Inhalts dem Länge-Kriterium nicht genügt.
  • Weiterhin umfasst der Kontext in manchen Implementierungen einen Anwendungs-Verlauf, und das Vorhersagen der vorhergesagten Anwendung umfasst, die vorhergesagte Anwendung mindestens teilweise auf Basis des Anwendungs-Verlaufs vorherzusagen. In manchen Implementierungen umfasst der Anwendungs-Verlauf eine kürzlich verwendete Anwendung, und das Vorhersagen der vorhergesagten Anwendung umfasst, die kürzlich verwendete Anwendung basierend darauf, dass die kürzlich verwendete Anwendung kürzlich verwendet wurde, als die vorhergesagte Anwendung vorherzusagen. In manchen Implementierungen umfasst der Anwendungs-Verlauf eine zuvor als Einfügeziel verwendete Vorgängerziel-Anwendung, und das Vorhersagen der vorhergesagten Anwendung umfasst, die Vorgängerziel-Anwendung mindestens teilweise basierend darauf, dass die Vorgängerziel-Anwendung zuvor als Einfügeziel verwendet wurde, als die vorhergesagte Anwendung vorherzusagen. Außerdem umfasst in manchen Implementierungen das Vorhersagen der Vorgängerziel-Anwendung als die vorhergesagte Anwendung, die Vorgängerziel-Anwendung mindestens teilweise basierend darauf, dass die Vorgängerziel-Anwendung zuvor als Einfügeziel für Inhalt verwendet wurde, der dem ausgewählten Inhalt ähnlich ist, als die vorhergesagte Anwendung vorherzusagen. In manchen Implementierungen umfasst der Anwendungs-Verlauf eine zuvor aktivierte Anwendung, die zuvor nach einer Kopier-Aktion aktiviert wurde, und das Vorhersagen der vorhergesagten Anwendung umfasst, die zuvor aktivierte Anwendung mindestens teilweise basierend darauf, dass die zuvor aktivierte Anwendung zuvor nach einer Kopier-Aktion aktiviert wurde, als die vorhergesagte Anwendung vorherzusagen. Weiterhin umfasst der Anwendungs-Verlauf in manchen Implementierungen Daten, die angeben, dass ein Benutzer zuvor eine Einfüge-Tätigkeit beendet hat statt ein Benutzersteuerelement für eine zuvor vorhergesagte Anwendung auszuwählen, oder weiteres Benutzerverhalten nach Aktivierung einer zuvor vorhergesagten Anwendung angeben, wobei das Vorhersagen der vorhergesagten Anwendung mindestens teilweise auf den Daten basiert.
  • Manche Implementierungen können auch umfassen, den ausgewählten Inhalt zu analysieren, um eine oder mehrere Entitäten zu identifizieren, wobei der Kontext die eine oder mehreren Entitäten umfasst, und das Vorhersagen der vorhergesagten Anwendung umfasst, die vorhergesagte Anwendung mindestens teilweise auf Basis von einer oder mehreren Entitäten vorherzusagen. Außerdem umfassen in manchen Implementierungen die eine oder mehreren Entitäten eine E-Mail-Adresse, eine Telefonnummer, eine physische Adresse oder einen Uniform Resource Locator (URL), und das Vorhersagen der vorhergesagten Anwendung umfasst, die vorhergesagte Anwendung als E-Mail-Anwendung vorherzusagen, wenn die eine oder mehreren Entitäten eine E-Mail-Adresse umfassen, die vorhergesagte Anwendung als Telefon-Anwendung vorherzusagen, wenn die eine oder mehreren Entitäten eine Telefonnummer umfassen, die vorhergesagte Anwendung als Karten-Anwendung vorherzusagen, wenn die eine oder mehreren Entitäten eine physische Adresse umfassen, und die vorhergesagte Anwendung als Browser-Anwendung vorherzusagen, wenn die eine oder mehreren Entitäten einen URL umfassen.
  • Außerdem umfasst in manchen Implementierungen das Vorhersagen der vorhergesagten Anwendung, zu ermitteln, ob mehrere Entitäten unter den ein oder mehreren Entitäten verwandt sind, eine Suchanwendung als die vorhergesagte Anwendung vorherzusagen, wenn die mehreren Entitäten verwandt sind, und eine am höchsten eingestufte Entität unter den mehreren Entitäten auszuwählen und die vorhergesagte Anwendung mindestens teilweise auf Basis der am höchsten eingestuften Entität vorherzusagen, wenn die mehreren Entitäten nicht verwandt sind. In manchen Implementierungen umfasst das Vorhersagen der vorhergesagten Anwendung, mehrere Anwendungen unter der Mehrzahl von Anwendungen auf Basis des Kontextes einzustufen und die vorhergesagte Anwendung als eine am höchsten eingestufte Anwendung unter den mehreren Anwendungen auszuwählen.
  • In manchen Implementierungen wird das Benutzersteuerelement entlang eines Randes eines Anzeigebildschirms des Computergeräts angezeigt, wobei das Benutzersteuerelement konfiguriert ist, als Antwort auf eine erste Art von Benutzereingabe die vorhergesagte Anwendung auf dem Computergerät zu aktivieren, und das Benutzersteuerelement konfiguriert ist, als Antwort auf eine zweite Art von Benutzereingabe eine Mehrzahl von sekundären Benutzersteuerelementen angrenzend an das Benutzersteuerelement anzeigen zu lassen, wobei jedes der sekundären Benutzersteuerelemente konfiguriert ist, nach Benutzerauswahl eine zugeordnete Anwendung unter den mehreren Anwendungen zu aktivieren.
  • Außerdem ist in manchen Implementierungen das Benutzersteuerelement weiterhin konfiguriert, die vorhergesagte Anwendung zu steuern, um die Anwendung in einen vorbestimmten Zustand zu konfigurieren, und eine Einfüge-Aktion unter Verwendung des ausgewählten Inhalts durchzuführen. In manchen Implementierungen umfasst das Benutzersteuerelement eine tiefe Verknüpfung, die die vorhergesagte Anwendung als Ziel hat, und in manchen Implementierungen ist der mindestens eine Prozessor in dem Computergerät angesiedelt, und das Empfangen des Steuersignals umfasst, ein Kopier-Ereignis auf dem Computergerät zu erkennen. Außerdem ist in manchen Implementierungen der mindestens eine Prozessor in einem über ein Netzwerk mit dem Computergerät kommunizierenden Online-Dienst angesiedelt, und das Empfangen des Steuersignals umfasst, eine Nachricht von dem Computergerät zu empfangen.
  • Manche Implementierungen können auch umfassen, in dem Computergerät ein Kopierer-Ereignis zu erkennen, Konnektivität zwischen dem Computergerät und dem Online-Dienst zu ermitteln, als Antwort auf Ermittlung von Konnektivität zwischen dem Computergerät und dem Online-Dienst die Nachricht an den Online-Dienst zu übermitteln, und als Antwort auf Ermittlung eines Fehlens von Konnektivität zwischen dem Computergerät und dem Online-Dienst auf Basis des ausgewählten Inhalts eine lokal vorhergesagte Anwendung aus der Mehrzahl von Anwendungen vorherzusagen oder ein Standard-Benutzersteuerelement auf dem Computergerät anzeigen zu lassen.
  • Manche Implementierungen umfassen auch ein System, das einen oder mehrere Prozessoren und operativ mit den ein oder mehreren Prozessoren gekoppelten Speicher umfasst, wobei der Speicher Anweisungen speichert, die als Antwort auf Ausführung der Anweisungen durch die ein oder mehreren Prozessoren bewirken, dass die ein oder mehreren Prozessoren irgendeines der obigen Verfahren durchführen. Manche Implementierungen können auch mindestens ein nichtflüchtiges computerlesbares Medium umfassen, das Anweisungen enthält, die als Antwort auf Ausführung der Anweisungen durch einen oder mehrere Prozessoren bewirken, dass die ein oder mehreren Prozessoren irgendeines der obigen Verfahren durchführen.
  • Ein Aspekt dieser Beschreibung stellt eine Computervorrichtung bereit, optional eine mobile Computervorrichtung, die konfiguriert ist, irgendeines der oben genannten Verfahren durchzuführen.
  • Ein weiterer Aspekt dieser Beschreibung stellt ein Computerprogramm bereit, das maschinenlesbare Anweisungen aufweist, die, wenn sie von einer Computervorrichtung, optional einer mobilen Computervorrichtung, ausgeführt werden, bewirken, dass sie irgendeines der oben genannten Verfahren durchführt.
  • Man beachte, dass alle Kombinationen der vorhergehenden Konzepte und zusätzliche Konzepte, die hierin ausführlicher beschrieben werden, als Teil des hierin offenbarten Gegenstands angesehen werden. Zum Beispiel werden alle Kombinationen von beanspruchten Gegenständen, die am Ende dieser Offenbarung erscheinen, als Teil des hierin offenbarten Gegenstands angesehen.
  • Figurenliste
    • 1 veranschaulicht eine Beispiel-Umgebung, in der offenbarte Techniken realisiert werden können, in Übereinstimmung mit verschiedenen Implementierungen.
    • 2 ist ein Flussdiagramm, das eine Beispiel-Sequenz von Tätigkeiten zur Durchführung von kontextabhängiger Einfügeziel-Vorhersage in der Beispiel-Umgebung von 1 veranschaulicht.
    • 3 ist ein Flussdiagramm, das eine weitere Beispiel-Sequenz von Tätigkeiten zur Durchführung von kontextabhängiger Einfügeziel-Vorhersage in der Beispiel-Umgebung von 1 veranschaulicht.
    • 4 ist ein Flussdiagramm, das eine Beispiel-Sequenz von Tätigkeiten zum Vorhersagen und Einstufen von Ziel-Anwendungen auf Basis eines Kontextes in der Beispiel-Umgebung von 1 veranschaulicht.
    • 5A, 5B, 5C und 5D veranschaulichen grafisch eine Beispiel-Implementierung von kontextabhängiger Einfügeziel-Vorhersage auf einem Computergerät aus der Beispiel-Umgebung von 1.
    • 6A, 6B, 6C und 6D veranschaulichen graphisch eine weitere Beispiel-Implementierung von kontextabhängiger Einfügeziel-Vorhersage auf einem Computergerät aus der Beispiel-Umgebung von 1.
    • 7 veranschaulicht eine Beispiel-Architektur eines Computers, der zum Implementieren eines oder mehrerer Geräte in der Beispiel-Umgebung von 1 geeignet ist.
  • Detaillierte Beschreibung
  • Gegenwärtig kann das Kopieren von Inhalt wie z. B. Text in einer Anwendung und das Einfügen dieses Inhalts in eine andere Anwendung bei vielen Computergeräten umständlich sein, insbesondere bei mobilen Geräten wie z. B. Smartphones und Tablets, bei denen keine Fenstertechnik für Anwendungen verwendet wird. Es hat sich gezeigt, dass ein Benutzer im Durchschnitt ungefähr 17 Sekunden braucht, um Text in eine andere Anwendung auf einem Mobilgerät einzufügen, nachdem Text in einer Anwendung ausgewählt und kopiert worden ist. Ein Benutzer muss im Allgemeinen eine Start-Schaltfläche drücken, durch Anwendungen scrollen und die gewünschte Anwendung finden, in die einzufügen ist, und dann den Text in ein geeignetes Benutzersteuerelement (z. B. ein Suchfeld, ein Nachrichtenfeld usw.) einfügen. In manchen Fällen hat ein Benutzer möglicherweise sogar etwas Text nach dem Einfügen gelöscht (z. B. beim Einfügen in das Suchfeld einer Karten-Anwendung).
  • Um diese und andere Probleme anzugehen, können Implementierungen dieser Beschreibung bei einem Versuch, eine oder mehrere Ziel-Anwendungen für eine Einfüge-Aktion vorherzusagen, kontextabhängige Einfügeziel-Vorhersage durchführen, und zwar auf Basis eines Kontextes, der Inhalt (z. B. Text, Bilder und irgendwelche anderen Daten oder Entitäten, die in einer Computerumgebung kopiert und eingefügt werden können) zugeordnet ist, der zuvor ausgewählt und in einen temporären Puffer wie z. B. eine Zwischenablage kopiert worden ist. Es kann dann ein Benutzersteuerelement dargeboten werden, um es dem Benutzer zu ermöglichen, die vorhergesagte Anwendung zu aktivieren, und in manchen Fällen zusätzlich einen Zustand der vorhergesagten Anwendung zu konfigurieren, den ausgewählten und kopierten Inhalt zu verwenden, sobald aktiviert. Somit kann nach Beendigung einer Kopier-Aktion einem Benutzer in manchen Fällen die Fähigkeit gegeben werden, schnell zu einer Anwendung zu wechseln, in die der Benutzer den Inhalt einfügen wollte.
  • Wie unten deutlicher wird, wird die Darbietung des Benutzersteuerelements im Allgemeinen als Antwort auf ein Steuersignal durchgeführt, das in Verbindung mit einer Benutzeraktion, ausgewählten Inhalt auf einem Computergerät zu kopieren, erzeugt wird. Somit wird dem Benutzer im Allgemeinen die Option dargeboten, eine vorhergesagte Anwendung nach Kopieren des Inhalts, z. B. durch Auswählen eines „Kopier“-Benutzersteuerelements, Tippen einer Tastenkombination usw., und nachdem schon Inhalt ausgewählt worden ist, zu aktivieren. Anders ausgedrückt, in manchen Implementierungen wird die Darbietung des Benutzersteuerelements weder direkt als Antwort auf Auswahl von Inhalt initiiert, noch wird die Darbietung des Benutzersteuerelements direkt als Antwort auf Aktivierung einer Anwendung initiiert, sondern wird stattdessen als Antwort auf eine Benutzeraktion, die ausgewählten Inhalt kopiert, initiiert. Zusätzlich wird der Begriff „ausgewählter Inhalt“ hierin verwendet, um sich auf Inhalt wie z. B. Text, Bilder und anderen auswählbaren Inhalt zu beziehen, der von einem Benutzer ausgewählt und danach als Ergebnis einer Kopier-Aktion kopiert worden ist. Man beachte jedoch, dass der ausgewählte Inhalt nur aus der Perspektive der Kopier-Aktion ausgewählt wird, und es wird nicht impliziert, dass der Inhalt nach einer Kopier- oder Einfüge-Aktion oder an irgendeinem Punkt in Verbindung mit kontextabhängiger Einfügeziel-Vorhersage notwendigerweise ausgewählt bleibt.
  • Nun zu den Zeichnungen, in denen überall in den verschiedenen Ansichten gleiche Zahlen gleiche Teile bezeichnen, wobei 1 eine Beispiel-Computerumgebung 10 veranschaulicht, die in manchen Implementierungen fähig ist, kontextabhängige Einfügeziel-Vorhersage zu implementieren. Die Umgebung 10 verbindet insbesondere eine Mehrzahl von Computergeräten 12 über ein Netzwerk 16 mit einem Wissenssystem 14. Das Wissenssystem 14 kann in einem oder mehreren Computern implementiert sein, die zum Beispiel durch ein Netzwerk kommunizieren. Das Wissenssystem 14 ist ein Beispiel für ein Informationswiedergewinnungssystem, bei dem die hierin beschriebenen Systeme, Komponenten und Techniken implementiert werden können und/oder mit dem hierin beschriebene Systeme, Komponenten und Techniken verbunden sein können.
  • Ein Benutzer kann mit dem Wissenssystem 14 über ein oder mehrere Computergeräte 12 interagieren, deren jedes ein Computer sein kann, der über ein oder mehrere Netzwerke 16 wie z. B. ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetzwerk (WAN) wie z. B. das Internet mit dem Wissenssystem 14 gekoppelt ist. Jedes Computergerät 12 kann zum Beispiel ein Desktop-Computergerät, ein Laptop-Computergerät, ein Tablet-Computergerät, ein Mobiltelefon-Computergerät, ein Computergerät eines Fahrzeugs des Benutzers (z. B. ein fahrzeuginternes Kommunikationssystem, ein fahrzeuginternes Unterhaltungssystem, ein fahrzeuginternes Navigationssystem) oder eine tragbare Vorrichtung des Benutzers sein, die ein Computergerät enthält (z. B. eine Uhr des Benutzers mit einem Computergerät, eine Brille des Benutzers mit einem Computergerät). Es können zusätzliche und/oder alternative Computergeräte vorgesehen sein.
  • Jedes Computergerät 12 kann eine Vielzahl von unterschiedlichen Anwendungen 18 (hier auch als „Apps“ bezeichnet) betreiben, wie z. B. Anwendungen A, B, C und D. Die Anwendungen A-D sollen sich allgemein auf jede Anwendung beziehen, die eine Schnittstelle aufweisen kann, die als Antwort auf verschiedene Ereignisse einem Benutzer des Computergeräts 12 exponiert wird. Eine Anwendungsschnittstelle kann einem Benutzer „exponiert“ werden (d. h. dem Benutzer erlauben, mit ihr zu interagieren), indem die Anwendung geladen/geöffnet/gestartet wird (z. B. aus nichtflüchtigem Speicher) oder, wenn die Anwendung bereits im Hintergrund initiiert/geöffnet/gestartet ist, die Anwendung in den Vordergrund gebracht wird (z. B. das Anwendungsfenster zum aktiven Fenster gemacht wird). Gemeinsam werden all diese Arten des Ladens und/oder Bringens einer Anwendung in den Vordergrund als „Aktivieren“ einer Anwendung bezeichnet. Diese Apps (und irgendeine hierin erwähnte „vorhergesagte Anwendung“) können Anwendungen zum Reservieren oder Erhalten von Tickets (z. B. Restaurantreservierungen, Hotelreservierungen, Flugreservierungen, Zugreservierungen, Veranstaltungsreservierungen usw.), Karten-Anwendungen, Kalender-Anwendungen, Erinnerungs-Anwendungen, Übersetzungs-Anwendungen, Medienkonsum-Anwendungen (z. B. Musik- oder Videoabspielgeräte), Spiele, Nachrichtenübermittlungs-Apps, E-Mail-Apps, SMS-Apps, Wetter-Apps, Immobilien-Apps, Gesundheits-Tracking-Apps, Shopping-Apps, Nachrichten-Apps, Fahrrad-Sharing-Apps, Produktivitäts-Anwendungen wie z. B. Textverarbeitungs- oder Tabellenkalkulations-Anwendungen, Telefon-Anwendungen, Browser-Anwendungen, Suchanwendungen und so weiter umfassen, sind aber nicht darauf beschränkt.
  • Jedes Computergerät 12 und Wissenssystem 14 kann einen oder mehrere Speicher zum Speichern von Daten und Softwareanwendungen, einen oder mehrere Prozessoren zum Zugreifen auf Daten und zum Ausführen von Anwendungen sowie andere Komponenten umfassen, die Kommunikation über ein Netzwerk ermöglichen. Die von einem oder mehreren Computergeräten 12 und/oder dem Wissenssystem 14 durchgeführten Tätigkeiten können über mehrere Computersysteme verteilt sein. Das Wissenssystem 14 kann zum Beispiel als Computerprogramme implementiert sein, die auf einem oder mehreren Computern an einem oder mehreren Orten laufen, die durch ein Netzwerk miteinander gekoppelt sind.
  • Jedes Computergerät 12 enthält zusätzlich ein Betriebssystem 20 und zum Zweck der Durchführung von kontextabhängiger Einfügeziel-Vorhersage ein lokales Kopiermodul 22, das darin implementiert ist. Desgleichen kann das Wissenssystem 14 ein Online-Kopiermodul 24 umfassen, das mit dem lokalen Kopiermodul 22 kommuniziert. In manchen Implementierungen kann kontextabhängige Einfügeziel-Vorhersage durch lokale und Online-Kopiermodule 22, 24 gemeinsam durchgeführt werden, während in anderen Implementierungen die Zuweisung von Funktionalität zwischen diesen Modulen variieren kann und in anderen Implementierungen die Funktionalität vollständig in ein Computergerät 12 oder in das Wissenssystem 14 integriert sein kann.
  • In verschiedenen Implementierungen kann das Wissenssystem 14 auch ein Anwendungsmodul 26, ein Einstufungsmodul 28, eine Indexiermaschine 30 und eine Informationsmaschine 32 enthalten. In manchen Implementierungen können eines oder mehrere der Module 26, 28 und Maschinen 30, 32 weggelassen werden. In manchen Implementierungen können alle oder einige Aspekte von einem oder mehreren der Module 26, 28 und Maschinen 30, 32 kombiniert werden. In manchen Implementierungen können eines oder mehrere der Module 26, 28 und Maschinen 30, 32 in einer Komponente implementiert werden, die vom Wissenssystem 14 getrennt ist. In manchen Implementierungen können eines oder mehrere der Module 26, 28 und Maschinen 30, 32 oder irgendein operativer Teil davon in einer Komponente implementiert werden, die von dem Computergerät 12 ausgeführt wird.
  • In verschiedenen Implementierungen können das Wissenssystem 14 und/oder das Computergerät 12 auch eine Persönlicher-Assistent-Maschine (nicht gezeigt) enthalten. Weiterhin kann in manchen Implementierungen das Wissenssystem 14 eine Suchmaschine implementieren.
  • In manchen Implementierungen können sowohl Online- als auch Offline-Funktionalität unterstützt werden, z. B. derart, dass Online-Funktionalität immer dann verwendet wird, wenn ein Computergerät 12 in Kommunikation mit einem Online-Dienst steht, während Offline-Funktionalität verwendet wird, wenn keine Konnektivität vorhanden ist. In anderen Implementierungen können Online- und Offline-Funktionalität unterschiedliche Aktionen oder Aktionsgebiete zugewiesen werden, während in anderen Implementierungen Online-Funktionalität möglicherweise nur verwendet wird, wenn Offline-Funktionalität eine bestimmte Einfügeziel-Vorhersage nicht adäquat behandelt. In anderen Implementierungen wird jedoch möglicherweise keine komplementäre Online-Funktionalität verwendet.
  • Das Anwendungsmodul 26 kann einen Index von installierten oder anderweitig für die Computergeräte 12 verfügbaren Anwendungen unterhalten. Zum Beispiel kann das Anwendungsmodul 26 in einen sogenannten „App-Store“, von dem Benutzer der Computergeräte 12 Anwendungen (oder „Apps“) herunterladen, integriert sein oder mindestens damit kommunizieren. In manchen Implementierungen kann, wenn ein Benutzer eine App von dem Anwendungsmodul 26 (oder von einem mit dem Anwendungsmodul 26 kommunizierenden App-Store) herunterlädt und/oder installiert, ein Datensatz hinzugefügt werden, um anzugeben, dass der Benutzer diese Anwendung installiert hat. In manchen Implementierungen können diese Datensätze periodisch mit den Computergeräten 12 synchronisiert werden, um zum Beispiel widerzuspiegeln, wenn Benutzer Apps deinstallieren, wenn Benutzer Apps aus anderen Quellen als einem für das Anwendungsmodul 26 verfügbaren App-Store herunterladen und installieren, und so weiter. Wie unten beschrieben wird, ist das Anwendungsmodul 26 eine von mehreren in 1 gezeigten Komponenten, die an dem Prozess des Identifizierens von Anwendungen teilnehmen können, die auf den Computergeräten 12 installiert sind, so dass geeignete Anwendungs-Vorhersagen gemacht werden können.
  • In manchen Implementierungen kann das Anwendungsmodul 26 für individuelle Benutzer durch Konten zugänglich sein, die die Benutzer eingerichtet haben. Zum Beispiel kann ein Benutzer ein Konto bei dem Anwendungsmodul 26 (oder bei einem mit dem Anwendungsmodul 26 kommunizierenden App-Store) haben, worauf der Benutzer unter Verwendung verschiedener Anmeldeinformationen zugreifen kann (z. B. Benutzername/Passwort, Netzhaut-Scan, Fingerabdruck-Scan usw.). Sobald der Benutzer an seinem Konto angemeldet ist, kann er oder sie eine oder mehrere Apps auf ein oder mehrere Computergeräte herunterladen, die ein Ökosystem von Computergeräten bilden, die von dem Benutzer betrieben/besessen werden. In manchen Fällen sind bestimmte Apps möglicherweise nur unter der Bedingung zum Download verfügbar, dass der Benutzer die App (oder die Rechte zur Verwendung der App) kauft. In manchen Implementierungen hat ein Benutzer, der eine App kauft, möglicherweise danach das Recht, die App auf mehrere Computergeräte 12 seines Ökosystems herunterzuladen und zu installieren.
  • Man beachte auch, dass manche Anwendungen, die auf die hierin offenbarte Weise vorhergesagt werden können, jedoch „Standard“-Anwendungen sein können, die anfänglich mit einem Computergerät bereitgestellt werden und möglicherweise nicht separat installiert werden und in manchen Fällen möglicherweise nicht einmal von einem Benutzer entfernbar sind. Manche Anwendungen, z. B. Such- oder Übersetzungs-Anwendungen, können auch mindestens teilweise in ein Betriebssystem des Computergeräts integriert sein und müssen einem Benutzer somit nicht notwendigerweise auf ähnliche Weise wie andere Anwendungen angezeigt werden. Manche Anwendungen können zum Beispiel als Überlagerungen oder auf andere Arten darstellbar sein, die in ein Betriebssystem integriert sind, statt in separaten Anwendungsfenstern angezeigt zu werden.
  • Die Indexiermaschine 30 kann einen Index zur Verwendung durch das Wissenssystem 14 unterhalten. Die Indexiermaschine 30 verarbeitet Dokumente und aktualisiert Indexeinträge in dem Index, zum Beispiel unter Verwendung von konventionellen und/oder anderen Indexiertechniken. Zum Beispiel kann die Indexiermaschine 30 eine oder mehrere Ressourcen wie z. B. das World Wide Web „crawlen“ und Dokumente indexieren, auf die über ein solche Crawl-Technik zugegriffen wird. Als weiteres Beispiel kann die Indexiermaschine 30 Informationen, die sich auf ein oder mehrere Dokumente beziehen, von einer oder mehreren Ressourcen empfangen, wie z. B. Webmastern, die solche Dokumente kontrollieren und die Dokumente auf Basis solcher Informationen indexieren. Ein Dokument sind irgendwelche Daten, die einer Dokument-Adresse zugeordnet sind. Dokumente umfassen Webseiten, Textverarbeitungs-Dokumente, Dokumente im PDF-Format, Bilder, E-Mails, Kalendereinträge, Videos und Webfeeds, um nur einige zu nennen. Jedes Dokument kann Inhalt enthalten, wie zum Beispiel: Text, Bilder, Videos, Klänge, eingebettete Informationen (z. B. Metainformationen und/oder Hyperlinks); und/oder eingebettete Anweisungen (z. B. ECMAScript-lmplementierungen wie z. B. JavaScript).
  • Die Informationsmaschine 32 kann einen weiteren Index unterhalten, der Zugriff auf nicht-dokumentspezifische Informationen zur Verwendung durch das Wissenssystem 14 umfasst oder erleichtert. Zum Beispiel kann das Wissenssystem 14 konfiguriert werden, als Antwort auf Suchanfragen, die spezifische Informationen zu suchen scheinen, Informationen zurückzusenden. Wenn ein Benutzer nach „Ronald Reagans Geburtstag“ sucht, kann das Wissenssystem 14 z. B. von der Informationsmaschine 32 das Datum „6. Februar 1911“ empfangen. Diese Information kann an den Benutzer als ein Teil von Suchergebnissen zurückgesendet werden, der von Dokumenten getrennt ist, die von der Indexiermaschine 30 empfangen werden. In verschiedenen Implementierungen kann der Index selbst Informationen enthalten, oder er kann mit einer oder mehreren anderen Informationsquellen wie z. B. Online-Enzyklopädien, Almanachen und so weiter verknüpfen. In verschiedenen Implementierungen kann der Index jeder der Maschinen 30, 32 Zuordnungen zwischen Anfragen (oder Anfragebegriffen) und Dokumenten und/oder Informationen enthalten.
  • Das Einstufungsmodul 28 kann die Indexe der Maschinen 30, 32 verwenden, um als Antwort auf eine Suchanfrage Dokumente und andere Informationen zu identifizieren, zum Beispiel unter Verwendung von konventionellen und/oder anderen Techniken zur Informationswiedergewinnung. Das Einstufungsmodul 28 kann Rangfolgen für die Dokumente und andere Informationen berechnen, die als Antwort auf eine Suchanfrage identifiziert werden, zum Beispiel unter Verwendung von einem oder mehreren Einstufungs-Signalen. Jedes Einstufungs-Signal kann Informationen über das Dokument oder die Information selbst, die Beziehung zwischen dem Dokument oder der Information und der Suchanfrage und/oder die Beziehung zwischen dem Dokument oder der Information und dem Benutzer, der die Suche durchführt, bereitstellen.
  • In manchen Implementierungen kann das Wissenssystem 14 z. B. als Teil der Informationsmaschine 32 und/oder einer anderen Komponente eine so genannte Wissensbasis aufweisen, die Datensätze von bekannten Entitäten, Entitätsarten (z. B. „Person“, „Ort“, „Sache“) und Beziehungen zwischen den bekannten Entitäten enthält. In manchen Implementierungen kann eine solche Wissensbasis als ein Graph implementiert werden, in dem Knoten Entitäten repräsentieren und Kanten Beziehungen zwischen Entitäten und/oder Entitätsarten repräsentieren, obwohl dies nicht erforderlich ist. In manchen derartigen Implementierungen können Informationen über Entitäten aus einer solchen Wissensbasis Komponenten wie z. B. dem Offline-Kopiermodul 24 verfügbar gemacht werden. Diese Komponenten können dann die Entitätsinformationen in manchen Implementierungen verwenden, um unter anderem das Vorhersagen von Einfügeziel-Anwendungen zu unterstützen.
  • Man wird weitere Variationen und Modifikationen an der in 1 gezeigten Umgebung erkennen, und somit ist die Erfindung nicht auf die hierin offenbarte bestimmte Umgebung beschränkt.
  • Nun zu 2 kommend, und unter fortgesetzter Bezugnahme auf 1, veranschaulicht diese Figur eine Beispiel-Sequenz von Tätigkeiten 50, die zur Durchführung von kontextabhängiger Einfügeziel-Vorhersage in der Computerumgebung 10 von 1 geeignet sind. Die Sequenz 50 wird als Antwort auf den Empfang eines Steuersignals, hierin auch als Kopiersignal bezeichnet, im Block 52 initiiert. Ein Steuersignal kann in dieser Hinsicht auf eine Anzahl von Arten in unterschiedlichen Implementierungen implementiert werden. Zum Beispiel kann in manchen Implementierungen die Sequenz 50 als ein Kopierzuhörer im Betriebssystem 20 registriert sein, wodurch das Steuersignal als eine Ereignisnachricht oder ein Funktionsaufruf angesehen werden kann, und derart, dass das Steuersignal als Antwort auf ein Kopier-Ereignis erzeugt wird. In manchen Implementierungen, in denen z. B. eine Vorhersage in einem Online-Dienst wie z. B. dem Wissenssystem 14 durchgeführt wird, kann ein Steuersignal eine von dem Computergerät 12 an das Wissenssystem 14 übermittelte Nachricht sein, die angibt, dass eine Kopier-Aktion an dem Computergerät durchgeführt worden ist, und optional den ausgewählten und kopierten Inhalt und/oder andere Kontextinformationen enthält, die zur Erzeugung einer Vorhersage geeignet sind. In noch anderen Implementierungen kann ein Steuersignal durch eine Zwischenablage-Entität und/oder als Antwort auf periodisches Überwachen einer Zwischenablage-Entität erzeugt werden, so dass, wenn Inhalt in die Zwischenablage kopiert wird, die Sequenz 50 initiiert wird.
  • In anderen Implementierungen können andere Arten des Erkennens einer von einem Benutzer durchgeführten Kopier-Aktion verwendet werden. Ferner beachte man, dass Ausschneide-Aktionen effektiv Kopier-Aktionen sind, die mit Lösch-Aktionen kombiniert sind, und die Verwendung des Begriffs „Kopieren“ hierin ist so aufzufassen, dass er sich auch auf „Ausschneiden“ bezieht.
  • Zurück zu 2 versucht der Block 54, sobald ein Kopiersignal empfangen wird, eine Ziel-Anwendung auf Basis eines Kontextes des gegenwärtig ausgewählten (und kopierten) Inhalts vorherzusagen, d. h., eine vorhergesagte Anwendung, in die der ausgewählte Inhalt einfügbar ist, unter mehreren Kandidaten-Anwendungen vorherzusagen. Ein Kontext bezieht sich in dieser Hinsicht allgemein auf eine Sammlung von Daten oder Signalen, die beim Bewerten der wahrscheinlichen Anwendung(en) nützlich sein können, in die ein Benutzer den ausgewählten und kopierten Inhalt einfügen will. In manchen Implementierungen kann der Kontext zum Beispiel die Länge des ausgewählten Inhalts umfassen, so dass, wenn die Länge einem Länge-Schwellenwert genügt (z. B. größer als eine vorbestimmte Länge ist), möglicherweise eine Nachrichtenübermittlungs-Anwendung wie z. B. eine E-Mail- oder SMS-Anwendung vorhergesagt wird, während, wenn die Länge dem Länge-Schwellenwert nicht genügt, möglicherweise eine Suchanwendung vorhergesagt wird. Ferner kann der Kontext in manchen Implementierungen eine oder mehrere Entitäten umfassen, die in dem ausgewählten Inhalt identifiziert werden, z. B. E-Mail-Adressen, Telefonnummern, physische Adressen, URLs, so dass die Vorhersage einer Ziel-Anwendung mindestens teilweise auf den Anwendungen basieren kann, die für diese Entitäten am besten geeignet sind (z. B. E-Mail-Anwendung für E-Mail-Adresse, Telefonnummer- oder Kontakt-Anwendung für Telefonnummer, Karten-Anwendung für physische Adresse oder Browser-Anwendung für URL).
  • Außerdem kann der Kontext in manchen Implementierungen die Kopier-Anwendung umfassen, d. h. die Anwendung, in der die Benutzeraktion zum Kopieren des ausgewählten Inhalts durchgeführt wurde, da die Kopier-Anwendung für die beiden Zwecke relevant sein kann, diese Anwendung als eine vorhergesagte Ziel-Anwendung auszuschließen und/oder eine Vorhersage zu Anwendungen tendieren zu lassen, von denen zuvor festgestellt wurde, dass sie aktiviert worden sind, nachdem eine Kopier-Aktion in der Kopier-Anwendung durchgeführt worden ist.
  • In manchen Implementierungen kann der Kontext auch einen Anwendungs-Verlauf enthalten, der zusätzliche Hinweise auf die Absicht eines Benutzers liefern kann. Zum Beispiel kann der Anwendungs-Verlauf eine oder mehrere kürzlich verwendete Anwendungen enthalten, da ein Benutzer möglicherweise beabsichtigt, zu einer kürzlich verwendeten Anwendung zurückzukehren, um den ausgewählten Inhalt einzufügen. Der Anwendungs-Verlauf kann auch eine oder mehrere Vorgängerziel-Anwendungen umfassen, d. h. Anwendungen, die zuvor Ziel für Einfüge-Aktionen waren, und in manchen Fällen Anwendungen, die zuvor Ziel für ähnlichen Inhalt waren, wie z. B. für denselben Benutzer, für von derselben Kopier-Anwendung kopierten ausgewählten Inhalt oder für ausgewählten Inhalt von einer bestimmten Art. Der Anwendungs-Verlauf kann auch eine oder mehrere zuvor aktivierte Anwendungen umfassen, d. h. Anwendungen, die zuvor im Anschluss an frühere Kopier-Aktionen aktiviert wurden, sowohl allgemein als auch in Bezug auf die bestimmte Anwendung, von der die Kopier-Aktion initiiert wurde.
  • In manchen Implementierungen kann ein Anwendungs-Verlauf auch Verlaufsdaten enthalten, die nach früheren Vorhersagen durchgeführten Benutzeraktionen zugeordnet sind. Zum Beispiel, wenn ein Benutzer zuvor eine Einfüge-Aktion in derselben Anwendung durchgeführt hat, in der die Kopier-Aktion durchgeführt wurde, statt eine vorhergesagte Anwendung zu aktivieren, oder wenn ein Benutzer bestimmte Verhaltensweisen nach Aktivieren einer vorhergesagten Anwendung gezeigt hat, z. B. den eingefügten Text zu bearbeiten, kann diese Information in einem Vorhersagealgorithmus verwendet werden und kann in manchen Fällen als Rückmeldung verwendet werden, um den Vorhersagealgorithmus für weitere Vorhersagen zu verbessern.
  • Außerdem wird in manchen Implementierungen möglicherweise keine Anwendung vorhergesagt, z. B. weil keine Anwendung mit mindestens einem Grund-Vertrauensniveau vorhergesagt wird. In solchen Situationen wird möglicherweise eine Standard-Anwendung, z. B. eine Suchanwendung, als Ergebnis einer Vorhersage zurückgesendet.
  • Es können verschiedene Vorhersagealgorithmen und -methoden verwendet werden, um eine Anwendung vorherzusagen. In manchen Implementierungen können zum Beispiel Maschinenlernalgorithmen verwendet werden, die unterschiedliche Aspekte eines Kontextes möglicherweise unterschiedlich gewichten, so dass als Antwort auf unterschiedliche Kombinationen von Daten in einem bestimmten Kontext unterschiedliche Anwendungen vorhergesagt werden. In manchen Implementierungen werden bestimmte Aspekte eines Kontextes möglicherweise gegenüber anderen priorisiert, so dass, wenn ein Aspekt eines Kontextes einem Schwellenwert-Kriterium genügt, andere Aspekte bei einer Vorhersage nicht berücksichtigt werden. Anwendungs-Vorhersagen basieren in manchen Implementierungen möglicherweise allein auf dem persönlichen Verlauf eines Benutzers, während in anderen Implementierungen möglicherweise die Verläufe von mehreren Benutzern verwendet werden, um Ziel-Anwendungen für andere Benutzer vorherzusagen. Zusätzlich kann in Situationen, in denen die hierin beschriebenen Systeme persönliche Informationen über Benutzer sammeln oder möglicherweise von persönlichen Informationen Gebrauch machen, den Benutzern die Möglichkeit geboten werden, zu steuern, ob Programme oder Merkmale Benutzerinformationen sammeln (z. B. Informationen über ein soziales Netzwerk eines Benutzers, soziale Aktionen oder Aktivitäten, Beruf, Vorlieben eines Benutzers oder den gegenwärtigen geografischen Standort eines Benutzers) oder um zu steuern, ob und/oder wie Inhalt zu empfangen ist, der für den Benutzer möglicherweise relevanter ist. Außerdem können bestimmte Daten auf eine oder mehrere Arten behandelt werden, bevor sie gespeichert oder verwendet werden, so dass personenbezogene Informationen entfernt werden. Zum Beispiel kann die Identität eines Benutzers so behandelt werden, dass keine personenbezogenen Informationen für den Benutzer ermittelt werden können, oder der geografische Standort eines Benutzers kann generalisiert werden, wenn geografische Standortinformationen erhalten werden (z. B. zu einer Stadt, Postleitzahl oder Landes-Ebene), so dass kein bestimmter geographischer Ort eines Benutzers ermittelt werden kann. Somit kann der Benutzer die Kontrolle darüber haben, wie Informationen über den Benutzer gesammelt und/oder verwendet werden.
  • Ein Ergebnis einer Vorhersage kann in manchen Implementierungen die Identifizierung einer vorhergesagten Ziel-Anwendung für den kopierten Inhalt sein. In manchen Implementierungen kann das Ergebnis einer Vorhersage mehrere vorhergesagte Ziel-Anwendungen sein, und in manchen Implementierungen können die mehreren vorhergesagten Ziel-Anwendungen eingestuft werden, wobei die am höchsten eingestufte Anwendung das vorhergesagte wahrscheinlichste Ziel ist. Ferner können in manchen Implementierungen Vorhersagen auf Anwendungen beschränkt sein, die tatsächlich auf einem Computergerät installiert sind, während in anderen Implementierungen möglicherweise Anwendungen automatisch installiert werden, sobald vorhergesagt, oder einem Benutzer die Möglichkeit gegeben wird, eine Anwendung als Antwort auf eine Vorhersage zu installieren.
  • Als Nächstes wird im Block 56 ein Benutzersteuerelement für die vorhergesagte Anwendung oder, wenn mehrere Anwendungen vorhergesagt werden, die am höchsten eingestufte oder als am wahrscheinlichsten vorhergesagte Anwendung auf dem Computergerät angezeigt. Das Benutzersteuerelement ist konfiguriert, nach Benutzerauswahl die vorhergesagte Anwendung auf dem Computergerät zu aktivieren, und somit veranschaulicht der Block 58 den Empfang einer solchen auf das Benutzersteuerelement gerichteten Benutzereingabe. Als Antwort auf die Benutzereingabe aktiviert der Block 60 dann die vorhergesagte Anwendung.
  • Zusätzlich kann in manchen Implementierungen, und wie durch den Block 62 veranschaulicht, der Zustand der vorhergesagten Anwendung auch konfiguriert werden, um das Einfügen oder anderweitige Verwenden des ausgewählten (und kopierten) Inhalts zu erleichtern. Zum Beispiel kann in manchen Implementierungen, wenn vorhergesagt wird, dass der Inhalt in ein Suchfeld einer vorhergesagten Anwendung einzufügen ist, eine das Suchfeld enthaltende Anzeige geöffnet werden, und in manchen Implementierungen kann der Inhalt in das Suchfeld eingefügt werden und/oder kann die Suche automatisch initiiert werden. Man beachte, dass die Art und Weise, wie eine Anwendung konfiguriert wird, für unterschiedliche Anwendungen stark variieren kann, und daher können unterschiedliche Implementierungen mannigfache Tätigkeiten durchführen, um eine vorhergesagte Anwendung zu konfigurieren, den Inhalt zu empfangen und/oder auf andere Weise zu verwenden.
  • In manchen Implementierungen können zum Beispiel „tiefe“ Verknüpfungen verwendet werden, um sowohl eine Anwendung zu aktivieren als auch den Zustand der Anwendung zu konfigurieren. In manchen Implementierungen kann zum Beispiel eine Verknüpfung durch einen Benutzer so betätigbar sein, dass ein Computergerät dazu gebracht wird, dem Benutzer eine spezifizierte Schnittstelle zu exponieren, die einer vorhergesagten Anwendung zugeordnet ist. Wenn zum Beispiel eine vorhergesagte Anwendung im Hintergrund läuft (z. B. schon in irgendeiner Form in flüchtigen Speicher geladen ist), kann eine Betätigung der Verknüpfung bewirken, dass die Anwendung aktiv gemacht wird, so dass der Benutzer einer Schnittstelle (grafisch, akustisch, haptisch, usw.) der Anwendung exponiert wird und daher damit interagieren kann. Wenn die Anwendung installiert ist, aber nicht im Hintergrund läuft, kann Betätigung der Verknüpfung dann bewirken, dass die Anwendung geöffnet oder „gestartet“ wird, z. B. aus nichtflüchtigem Speicher.
  • Somit wird nach Beendigung der Sequenz 50 der Benutzer, der ausgewählten Inhalt kopiert hat, zu einer vorhergesagten Ziel-Anwendung geleitet, um den ausgewählten Inhalt in der vorhergesagten Ziel-Anwendung einzufügen oder auf andere Weise zu verwenden.
  • Die Sequenz 50 kann allein innerhalb eines Computergeräts, allein innerhalb des Wissenssystems 14 oder unter Verwendung einer Kombination davon implementiert werden. Man beachte, dass die Anzeige eines Benutzersteuerelements auf einem Computergerät daher in einem Computergerät initiiert werden kann oder im Wissenssystem 14 initiiert werden kann, wobei die Rücksendung einer vorhergesagten Ziel-Anwendung bewirkt, dass das Benutzersteuerelement auf dem Computergerät angezeigt wird.
  • 3 zeigt eine weitere Beispiel-Sequenz von Tätigkeiten 100, die zur Durchführung von kontextabhängiger Einfüge-Vorhersage geeignet sind, und insbesondere auf eine verteilte Weise unter Verwendung sowohl des lokalen Kopiermoduls 22 des Computergeräts 12 als auch des Online-Kopiermoduls 24 des Wissenssystems 14 (1). Die Blöcke 102-126 sind in dem Computergerät 12 implementiert und beginnen im Block 102 mit Empfangen eines Kopier- oder Steuersignals, das als Antwort auf eine von einem Benutzer initiierte Kopier-Aktion erzeugt wird. Als Nächstes kann im Block 104 Fremdinhalt, z. B. durch die Kopier-Anwendung dem ausgewählten Inhalt in einem Kopierpuffer oder einer Zwischenablage hinzugefügte Zuordnungen, aus dem ausgewählten Inhalt entfernt werden.
  • Der Block 106 ermittelt als Nächstes, ob Konnektivität zu dem Online-Dienst vorhanden ist (d. h., das Computergerät 12 steht in Kommunikation mit dem Wissenssystem 14). Wenn ja, kann die Steuerung zum Block 108 übergehen, um eine Online-Dienst-Einfügeziel-Vorhersage zu initiieren, z. B. durch Erstellen und Senden einer Nachricht, die den ausgewählten Inhalt und irgendwelche relevanten Kontextdaten enthält, und in manchen Fällen einer Liste von installierten Anwendungen auf dem Computergerät (wenn nicht schon dem Anwendungsmodul 26 bekannt). Das Computergerät wartet auf eine Antwortnachricht von dem Online-Dienst, die das Vorhersage-Ergebnis enthält, welches im Block 110 empfangen wird. Zurück zu Block 106 übergibt jedoch der Block 106, wenn keine Konnektivität zu dem Online-Dienst verfügbar ist, die Steuerung an den Block 112, um lokale Einfügeziel-Vorhersage durchzuführen.
  • In dieser Implementierung senden sowohl die lokale Einfügeziel-Vorhersage im Block 112 als auch die im Block 108 initiierte Online-Dienst-Einfügeziel-Vorhersage eine Rangliste von null oder mehr vorhergesagten Anwendungen zurück. In manchen Implementierungen kann die Liste als ein Satz von Menükarten bereitgestellt werden, die vorhergesagte Anwendungen, relative Einstufungen und zugeordnete tiefe Verknüpfungen identifizieren, die zum Aktivieren der jeweiligen Anwendungen geeignet sind, und in manchen Fällen die Zustände dieser Anwendungen konfigurieren, um den ausgewählten und kopierten Inhalt optimal zu verwenden. Somit übergibt jeder der Blöcke 110 und 112 die Steuerung bei Beendigung an den Block 114, um zu ermitteln, ob irgendwelche Einfügeziele identifiziert worden sind (d. h., die Liste ist nicht leer).
  • Wenn ein oder mehrere Einfügeziele gefunden worden sind, geht die Steuerung zum Block 116 über, um ein Benutzersteuerelement für die am höchsten eingestufte vorhergesagte Ziel-Anwendung in der Liste anzuzeigen. Außerdem ist das Benutzersteuerelement in dieser Implementierung mehreren Arten von Benutzereingaben ausgesetzt. Eine erste Art von Benutzereingabe entspricht zum Beispiel einem kurzen Tippen auf einen Touchscreen und veranlasst die Steuerung, zum Block 118 überzugehen, um die am höchsten eingestufte vorhergesagte Ziel-Anwendung zu aktivieren, z. B. unter Verwendung der in der Ergebnisliste bereitgestellten vorgesehenen tiefen Verknüpfung. Eine zweite Art von Benutzereingabe entspricht einem langen Tippen auf einen Touchscreen und veranlasst die Steuerung, zum Block 120 überzugehen, um ein oder mehrere sekundäre Benutzersteuerelemente anzuzeigen, die einigen oder allen der niedriger eingestuften vorhergesagten Ziel-Anwendungen in der Liste entsprechen. Man beachte jedoch, dass in anderen Implementierungen andere Arten von Benutzereingaben verwendet werden können, um die Anzeige von sekundären Benutzersteuerelementen zu initiieren. Zusätzlich können in manchen Implementierungen zusätzliche Benutzersteuerelemente bereitgestellt werden, die einer oder mehreren Standard-Anwendungen oder -Tätigkeiten entsprechen (z. B. wenn es mehr verfügbare Orte als vorhergesagte Ziel-Anwendungen gibt). Jedes dieser sekundären Benutzersteuerelemente ist außerdem einer oder mehreren Arten von Benutzereingaben ausgesetzt. Wie im Block 122 gezeigt, aktiviert zum Beispiel ein kurzes Tippen auf eine dieser sekundären Benutzersteuerelemente die vorhergesagte Ziel-Anwendung, die dem ausgewählten sekundären Benutzersteuerelement zugeordnet ist.
  • Zurück zu Block 114, wenn die Ergebnisliste leer ist, geht die Steuerung zum Block 116 über, um ein Standard-Benutzersteuerelement anzuzeigen, z. B. ein Teilen-Benutzersteuerelement, das es einem Benutzer erlaubt, den Inhalt zu teilen oder zu speichern, und ein kurzes Antippen oder eine andere Benutzereingabe lässt die Steuerung zum Block 126 übergehen, um die Benutzereingabe entsprechend zu handhaben. Wie bei dem Benutzersteuerelement, das für eine am höchsten eingestufte vorhergesagte Ziel-Anwendung angezeigt wird, kann das Standard-Benutzersteuerelement auch anderen Arten von Benutzereingaben ausgesetzt sein, z. B. einem langen Antippen, um mehrere sekundäre Benutzersteuerelemente anzuzeigen, z. B. verschiedene Aufzeichnungs-Anwendungen wie z. B. eine SMS-Anwendung, eine E-Mail-Anwendung, eine Notiz-Anwendung, eine Suchanwendung usw.
  • Man beachte, dass andere Arten von Benutzereingaben unterstützt werden können, unter anderem z. B. eine Wisch-Geste, um ein Benutzersteuerelement zu schließen oder auszublenden. Benutzersteuerelemente können in manchen Implementierungen auch nach einer vorbestimmten Zeitspanne automatisch ausgeblendet werden. Ferner können in manchen Implementierungen Benutzersteuerelemente ausgeblendet oder ausgegraut/deaktiviert werden, wenn keine Netzwerk-Konnektivität vorhanden ist und die zugeordneten Anwendungen Konnektivität benötigen, um zu arbeiten (z. B. eine Suchanwendung).
  • Nun zu 4 kommend, veranschaulicht diese Figur eine Beispiel-Sequenz von Tätigkeiten 150 zum Vorhersagen und Einstufen von Ziel-Anwendungen auf Basis eines Kontextes zur Verwendung in manchen Implementierungen. Die Sequenz 150 kann zum Beispiel verwendet werden, um lokale Einfügeziel-Vorhersage (Block 112 von 3) durchzuführen und/oder um Online-Dienst-Einfügeziel-Vorhersage durchzuführen (z. B. im Online-Kopiermodul 24 von 1). Man beachte, dass in manchen Implementierungen sowohl die lokale als auch die Online-Einfügeziel-Vorhersage ähnliche Funktionalität und Fähigkeiten aufweisen kann, während in anderen Implementierungen die lokale Einfügeziel-Vorhersage reduzierte Fähigkeiten relativ zum Online-Dienst aufweisen kann, so dass der Online-Dienst primäre Vorhersage-Funktionalität bereitstellt und lokale Einfügeziel-Vorhersage nur verwendet wird, wenn keine Konnektivität zum Online-Dienst vorhanden ist.
  • Die Sequenz 150 beginnt im Block 152 mit Analysieren des ausgewählten Inhalts, um null oder mehr Entitäten zu extrahieren. Eine Entität ist in dieser Hinsicht eine erkannte Art von Inhalt, für die eine oder mehrere zugeordnete Anwendungen existieren. Zum Beispiel kann bei Textinhalt eine Analyse des Textes eine E-Mail-Adresse, die einer E-Mail- oder Kontakt-Anwendung zugeordnet sein kann, eine Telefonnummer, die einer Telefon- oder Kontakt-Anwendung zugeordnet sein kann, eine physische Adresse, die einer Karten- oder Kontakt-Anwendung zugeordnet sein kann, oder einen Uniform Resource Locator (URL), der einer Browser-Anwendung zugeordnet sein kann, identifizieren. Für andere Arten von Inhalt, z. B. Bilddaten, können Bildanalyse und/oder optische Zeichenerkennung durchgeführt werden, um eine oder mehrere Entitäten zu identifizieren. Man beachte auch, dass einige Entitäten vorkategorisiert werden können, z. B. wie es von manchen Nachrichtenübermittlungs-Anwendungen durchgeführt wird, die auswählbare Verknüpfungen für E-Mails, Telefonnummern, Adressen und/oder URLs erzeugen. In anderen Implementierungen können jedoch Text-Entitäten im Block 152 aus Rohtext identifiziert werden.
  • Der Block 154 ermittelt als nächstes, ob mehrere Entitäten identifiziert wurden, und wenn nicht, geht die Steuerung zum Block 156 über, um einen Kontext aus verschiedenen Daten zu erstellen, die dem ausgewählten Inhalt zugeordnet sind, einschließlich eines oder mehrerer von: Inhalt-Länge, Entitätsart (z. B. E-Mail-Adresse, Telefonnummer, physische Adresse, URL usw.), Kopier-Anwendung (die Anwendung, aus der der ausgewählte Inhalt kopiert wurde), zuvor aktivierte Anwendung (die Anwendung, die unmittelbar vor der Kopier-Anwendung aktiviert wurde, da der Benutzer möglicherweise zu der früheren Anwendung zurückkehren möchte), und Anwendungs-Verlauf (einschließlich kürzlich verwendeter Anwendungen, Vorgängerziel-Anwendungen, zuvor aktivierter Anwendungen und/oder Benutzerverhalten).
  • Im Hinblick auf den Anwendungs-Verlauf beachte man weiterhin, dass Verlaufs-Aktivitäten sowohl in Bezug auf frühere Kopier- und Einfüge-Aktionen als auch unmittelbar vor der gegenwärtigen Kopier-Aktion stattfindende Benutzeraktionen eine Absicht eines Benutzers im Hinblick auf zukünftige Einfüge-Aktionen angeben können und in manchen Fällen sogar vorhersagen können, wie eine Ziel-Anwendung zu konfigurieren ist, um die Verwendung des ausgewählten Inhalts zu erleichtern. Wenn zum Beispiel ein Benutzer zuvor eine neue Nachricht in einer E-Mail-Anwendung geöffnet und/oder Inhalt in eine geöffnete Nachricht in einer E-Mail-Anwendung eingefügt hat und der zuvor eingefügte Inhalt von einer in einer Browser-Anwendung geöffneten Webseite kopiert wurde, kann jeder dieser Faktoren als Teil des Kontextes für eine nachfolgende Kopier-Aktion in der Browser-Anwendung angesehen werden. Als Ergebnis dieses Kontextes kann die kontextabhängige Einfügeziel-Vorhersage weiterhin die Browser-Anwendung als die vorhergesagte Anwendung vorhersagen und kann in manchen Fällen den Zustand der Browser-Anwendung nach Aktivierung durch den Benutzer konfigurieren, die Nachricht anzuzeigen, und in manchen Fällen den Inhalt an einer früheren Cursorposition in die Nachricht einfügen. Der Anwendungs-Verlauf kann auf eine Anzahl von Arten erhalten werden, unter anderem z. B. durch Überwachen von aktiven Aufgaben in einem Computergerät.
  • Außerdem kann, wie durch den Block 158 veranschaulicht, die Information in einem Kontext auch einem Vorhersagealgorithmus als Rückmeldung bereitgestellt werden, um den Vorhersagealgorithmus verbessern zu können. Wenn daher zum Beispiel ein Benutzer zuvor eine Einfüge-Aktion in derselben Anwendung durchgeführt hat, in der die Kopier-Aktion durchgeführt wurde, statt eine vorhergesagte Anwendung zu aktivieren, oder wenn ein Benutzer bestimmte Verhaltensweisen nach Aktivieren einer vorhergesagten Anwendung gezeigt hat, z. B. den eingefügten Text zu bearbeiten, kann diese Information verwendet werden, um die Antwort des Vorhersagealgorithmus zu modifizieren, um die Wahrscheinlichkeit von Fehlvorhersagen und/oder Fehlkonfiguration von vorhergesagten Anwendungen zu reduzieren.
  • Zurück zu Block 156, sobald ein Kontext erstellt ist, geht die Steuerung zum Block 160 über, um den Kontext zu analysieren, um eine Rangliste von null oder mehr vorhergesagten Ziel-Anwendungen zu ermitteln, z. B. einen Satz von vorhergesagten Ziel-Anwendungen mit einem Vertrauensniveau über einem Grenz-Schwellenwert und nach Vertrauensniveau eingestuft. Außerdem wird die Kopier-Anwendung allgemein von den Ergebnissen ausgeschlossen. Der im Block 160 verwendete Vorhersagealgorithmus kann in verschiedenen Implementierungen auf mannigfache Arten konfiguriert sein und kann, wie oben erwähnt, auf Basis von Rückmeldung adaptiv sein. Ein Vorhersagealgorithmus kann auf Maschinenlerntechniken, Fuzzy-Logik oder anderen Techniken basieren, um Anwendungen effektiv auf verschiedene Kontextdaten abzubilden, und ein Vorhersagealgorithmus kann für einen individuellen Benutzer angepasst werden und nur auf Kontextdaten basieren, die diesem Benutzer zugeordnet sind, oder kann alternativ in manchen Implementierungen auf den Kontextdaten von mehreren Benutzern basieren, so dass die Verlaufs-Aktivitäten von Benutzern bei der Vorhersage von Ziel-Anwendungen für andere Benutzer verwendet werden können. Man beachte auch, dass der Block 160 auch Zugriff auf den Satz von installierten Anwendungen des Benutzers haben kann, so dass nur Anwendungen, die gegenwärtig auf einem Computergerät des Benutzers verfügbar sind, in den Ergebnissen zurückgesendet werden. In anderen Implementierungen können jedoch auch nicht installierte Anwendungen als Ergebnisse zurückgesendet werden, so dass der Benutzer die Möglichkeit haben kann, diese Anwendungen bei Bedarf zu installieren.
  • Als Nächstes wird im Block 162 die Rangliste als ein Ergebnis der Vorhersage zurückgesendet, oder falls keine vorhergesagte Anwendung identifiziert wurde, die ein ausreichendes Vertrauensniveau aufweist, kann eine Angabe zurückgesendet werden, dass keine vorhergesagte Anwendung gefunden wurde. Zusätzlich können in manchen Implementierungen die Ergebnisse auch vorgeschlagene Befehle für vorhergesagte Anwendungen enthalten, um die Anwendungen richtig zu konfigurieren, den ausgewählten Inhalt zu verwenden. In manchen Implementierungen können die Ergebnisse zum Beispiel unter Verwendung einer geordneten Liste von tiefen Verknüpfungen zurückgesendet werden, wobei jede tiefe Verknüpfung eine Anwendung und einen Befehl, der zum Konfigurieren der Anwendung in einem gewünschten Zustand geeignet ist, identifiziert. In manchen Implementierungen können die Ergebnisse als ein geordneter Satz von „Menükarten“ zurückgesendet werden, die tiefe Verknüpfungen enthalten. In anderen Implementierungen können andere Arten von Formatierung der Ergebnisse verwendet werden.
  • Nun zurück zu Block 154. Wenn mehrere Entitäten aus Analyse des ausgewählten Inhalts identifiziert werden, kann die Steuerung an den Block 164 übergeben werden, um zu ermitteln, ob die Entitäten verwandt sind, z. B. ob es eine Angabe gibt, dass die mehreren Entitäten zusammen verwendet werden sollen, oder ob die mehreren Entitäten nicht verwandt sind und somit der Benutzer wahrscheinlich nur eine Entität kopieren und den auf andere Entitäten bezogenen Inhalt später entfernen wollte. Die Verwandtschaft kann zum Beispiel auf Basis der Wahrscheinlichkeit ermittelt werden, dass die Entitäten häufig zusammen gesucht werden. Wenn nicht, geht die Steuerung zum Block 166 über, um die Entität mit dem höchsten Vertrauen auszuwählen und die Steuerung an den Block 156 zu übergeben, um diese Entität in dem Kontext für die Zwecke der kontextabhängigen Einfügeziel-Vorhersage zu verwenden. Andernfalls übergibt der Block 164 die Steuerung an den Block 168, um eine gemischte Suchanfrage zu erzeugen und die Suchanwendung als die vorhergesagte Ziel-Anwendung mit dem höchsten Vertrauen zu identifizieren, und dann an den Block 162, um die Suchanwendung als das Ergebnis der Vorhersage zurückzusenden, was einem Benutzer ermöglicht, eine Suche unter Verwendung der mehreren Entitäten zu initiieren. In anderen Implementierungen können Entitäten, die nicht verwandt und/oder verwandt sind, verwendet werden, um getrennte Vorhersagen für jede Entität zu erzeugen, die dann kombiniert und einem Benutzer angezeigt werden können, z. B. in einer Überlagerungs-Anzeige.
  • Wie oben angegeben, kann die Sequenz 150 sowohl für lokale als auch für Online-Kontext-Einfügeziel-Vorhersage verwendet werden. Außerdem kann in manchen Implementierungen die Funktionalität zwischen lokaler und Online-Vorhersage variieren. Somit kann es zum Beispiel in manchen Implementierungen für lokale kontextabhängige Einfügeziel-Vorhersage wünschenswert sein, nur eine Teilmenge der Kontextdaten zu verarbeiten, und außerdem, die Vorhersage auf nur offline-fähige Anwendungen zu beschränken, wenn keine Konnektivität vorhanden ist. Somit kann zum Beispiel in manchen Implementierungen lokale kontextabhängige Einfügeziel-Vorhersage auf das Erkennen von Entitäten wie z. B. E-Mail-Adressen, Telefonnummern, physischen Adressen und/oder URLs beschränkt sein und sich möglicherweise auf einen begrenzten Anwendungs-Verlauf wie z. B. die zuletzt aktivierte Anwendung stützen, um es einem Benutzer zu ermöglichen, schnell zu der letzten Anwendung zurückzukehren, die er verwendet hat. Und wenn offline die einem Benutzer dargebotenen Anwendungen möglicherweise eingeschränkt sind, z. B. nur dann ein Benutzersteuerelement für eine Karten-Anwendung anzuzeigen, wenn Offline-Karten verfügbar sind. In noch anderen Implementierungen kann ein Standard-Benutzersteuerelement angezeigt werden, wenn keine Konnektivität vorhanden ist.
  • Nun zu 5A-5D, welche Figuren ein graphisches Beispiel für die Tätigkeit der kontextabhängigen Einfügeziel-Vorhersage in einer Implementierung veranschaulichen. 5A zeigt zum Beispiel ein Computergerät 200, z. B. ein Mobiltelefon, das eine Anzeige enthält, die eine Steuerleiste 202 und eine E-Mail-Anwendung 204 darstellt, in der eine E-Mail-Nachricht angezeigt wird. Außerdem zeigt 5A, dass ein Benutzer Text im Hauptteil der E-Mail-Nachricht („10 Main St.“) ausgewählt hat, wobei der ausgewählte Text hervorgehoben ist, wie bei 206 veranschaulicht. Eine Auswahl des Textes kann auf verschiedene Arten erfolgen, z. B. durch Ziehen von Steuerelementen 208, die den Beginn und das Ende der Auswahl begrenzen. Wie in 5B veranschaulicht, kann nach Beendigung der Auswahl von Text (z. B. sobald ein Benutzer nach dem Ziehen eines der Steuerelemente 208 seinen oder ihren Finger hochgehoben hat) ein Kontextmenü oder eine Kontextleiste 210 angrenzend an den ausgewählten Text angezeigt werden. Die Kontextleiste 210 kann eine Anzahl von Schaltflächen oder anderen Steuerelementen enthalten, einschließlich einer Kopier-Schaltfläche 212, die, sobald von einem Benutzer ausgewählt (z. B. über ein kurzes Antippen), eine Kopier-Aktion initiiert, um den ausgewählten Text in die Zwischenablage zu kopieren.
  • In diesem Beispiel initiiert die Initiierung der Kopier-Aktion auch eine kontextabhängige Einfügeziel-Vorhersage. Für die Zwecke dieses Beispiels wird angenommen, dass der Text „10 Main St.“ während einer Entitäts-Analyse des Textes als eine physische Adresse identifizierbar ist, und daher kann aus diesem Kontext eine Karten-Anwendung als das vorhergesagte Ziel mit dem höchsten Vertrauen vorhergesagt werden. Somit, und wie in 5C veranschaulicht, kann Initiierung der Kopier-Aktion bewirken, dass ein Benutzersteuerelement 214, das die Form einer „Blase“ annimmt, entlang eines Randes der Anzeige angezeigt wird. Das Benutzersteuerelement 214 ist konfiguriert, die Karten-Anwendung zu öffnen, wenn über ein kurzes Antippen durch einen Benutzer ausgewählt, und in manchen Fällen eine Suche unter Verwendung von „10 Main St.“ zu initiieren. Weiterhin kann, wie in 5D veranschaulicht, eine zweite Art von Benutzereingabe, die auf das Benutzersteuerelement 214 gerichtet ist, z. B. ein langes Antippen, die Anzeige von einem oder mehreren sekundären Benutzersteuerelementen ergeben, die anderen vorhergesagten Ziel-Anwendungen mit geringerem Vertrauen entsprechen (z. B. Benutzersteuerelemente 216, 218 und 220, die jeweils einer Nachrichtenübermittlungs-Anwendung („Msg“), einer Übersetzungs-Anwendung („Tr“) und einer Notiz-Anwendung entsprechen). Die sekundären Benutzersteuerelemente 216-220 können in manchen Implementierungen als „Satelliten“ angezeigt werden, die das Benutzersteuerelement 214 umschreiben, während in anderen Implementierungen die sekundären Benutzersteuerelemente an anderen Stellen relativ zum Benutzersteuerelement 214 angezeigt werden können, z. B. vertikal oder linear entlang des Randes unterhalb des Benutzersteuerelements 214 angeordnet. In anderen Implementierungen können, statt die sekundären Benutzersteuerelemente nur nach einer auf das Benutzersteuerelement 214 gerichteten Benutzereingabe anzuzeigen, einige oder alle sekundären Benutzersteuerelemente auch zur gleichen Zeit wie das Benutzersteuerelement 214 angezeigt werden, so dass einem Benutzer als Antwort auf eine Kopier-Aktion anfänglich mehrere Vorhersagen dargeboten werden. Außerdem beachte man, dass in manchen Implementierungen die Initiierung einer Kopier-Aktion möglicherweise nicht bewirkt, dass der ausgewählte Text abgewählt wird, wie in 5C und 5D veranschaulicht, und somit kann der Text nach Anzeige irgendeines der Benutzersteuerelemente 214-220 immer noch ausgewählt sein.
  • 6A-6D zeigen als Nächstes ein graphisches Beispiel für die Tätigkeit von kontextabhängiger Einfügeziel-Vorhersage in einer anderen Implementierung. 6A zeigt zum Beispiel ein Computergerät 250, z. B. ein Mobiltelefon, das eine Anzeige enthält, die eine Steuerleiste 252 und eine Browser-Anwendung 254 darstellt, innerhalb der eine Webseite mit Rezepten angezeigt wird. Wie ebenfalls in 6A gezeigt, hat ein Benutzer Text für ein Rezept (für Bucatini all‘Amatriciana) ausgewählt, wobei der ausgewählte Text hervorgehoben ist, wie bei 256 dargestellt. Nach Beendigung der Auswahl des Textes kann ein Kontextmenü oder eine Kontextleiste 260 angrenzend an den ausgewählten Text angezeigt werden, das bzw. die eine Kopier-Schaltfläche 262 enthält, die, sobald von einem Benutzer ausgewählt (z. B. über ein kurzes Antippen), eine Kopier-Aktion initiiert, den ausgewählten Text in die Zwischenablage zu kopieren.
  • In diesem Beispiel initiiert die Initiierung der Kopier-Aktion außerdem kontextabhängige Einfügeziel-Vorhersage, und mindestens teilweise auf Basis des Umstandes, dass der Text größer als ein Länge-Schwellenwert ist, favorisiert die Vorhersage möglicherweise eine Nachrichtenübermittlungs-Anwendung gegenüber einer Suchanwendung. Außerdem wird zum Beispiel unter der Voraussetzung, dass die zuvor aktivierte Anwendung eine E-Mail-Anwendung war, eine E-Mail-Anwendung möglicherweise gegenüber einer anderen Art von Nachrichtenübermittlungs-Anwendung, z. B. einer SMS-Anwendung, favorisiert. Somit kann, wie in 6B veranschaulicht, Initiierung der Kopier-Aktion bewirken, dass eine Menükarte 264 unten auf der Anzeige angezeigt wird, die ein Benutzersteuerelement 266, z. B. eine Schaltfläche, entsprechend der vorhergesagten Anwendung enthält.
  • Wie in 6C veranschaulicht, resultiert eine Auswahl des Benutzersteuerelements 266 möglicherweise in Aktivierung einer E-Mail-Anwendung 270, und wie bei 272 veranschaulicht, ist die E-Mail-Anwendung 270 möglicherweise konfiguriert, eine neue oder zuvor geöffnete Entwurfs-E-Mail anzuzeigen und den ausgewählten Inhalt an einer gegenwärtigen Cursorposition in die neue oder zuvor geöffnete Entwurfs-E-Mail einzufügen, z. B. als Ergebnis einer tiefen Verknüpfung, die dem Benutzersteuerelement 266 von 6B zugeordnet ist. In anderen Implementierungen wird als Ergebnis der Auswahl des Benutzersteuerelements 266 möglicherweise nur die neue oder zuvor geöffnete Entwurfs-E-Mail angezeigt, während in anderen Implementierungen als Ergebnis der Auswahl des Benutzersteuerelements 266 möglicherweise nur die E-Mail-Anwendung 270 aktiviert wird. In manchen Implementierungen, bei denen Inhalt automatisch in eine vorhergesagte Anwendung eingefügt wird oder der Inhalt auf andere Weise automatisch bei einer Tätigkeit in der vorhergesagten Anwendung verwendet wird, wird ein Benutzer möglicherweise außerdem zu einer Bestätigung (nicht gezeigt) aufgefordert, um dem Benutzer zu ermöglichen, die automatisch durchgeführte Tätigkeit schnell rückgängig zu machen.
  • Kurz zurück zu 6B kann die Menükarte 264 auch ein Benutzersteuerelement 268 enthalten, um andere, niedriger eingestufte vorhergesagte Anwendungen anzuzeigen. Die Auswahl des Benutzersteuerelements 268 ist in 6D veranschaulicht, worin zusätzliche Menükarten 274 und 276 entsprechend anderen vorhergesagten Anwendungen angezeigt werden, z. B. um mittels der Menükarte 274 eine Übersetzungs-Anwendung (optional als eine Überlagerung) zu aktivieren oder um eine Karten-Anwendung zu aktivieren, um Amatrice auf einer Karte zu finden (ermittelt aus Textanalyse des ausgewählten Inhalts).
  • Die hierin beschriebenen Techniken können in verschiedenen Implementierungen in einer Anzahl von unterschiedlichen Computern, Computersystemen oder Computergeräten implementiert werden. 7 ist zum Beispiel ein Blockdiagramm eines Beispiel-Computers 300, der verwendet werden kann, um ein Computergerät, ein Wissenssystem und/oder verschiedene Computersysteme innerhalb einer Computerumgebung zu implementieren. Der Computer 300 enthält typischerweise mindestens einen Prozessor 302, der über ein Bus-Subsystem 304 mit einer Anzahl von Peripheriegeräten kommuniziert. Diese Peripheriegeräte können ein Speicherungs-Subsystem 306, das zum Beispiel ein Speicher-Subsystem 308 und ein Dateispeicherungs-Subsystem 310 umfasst, Benutzerschnittstellen(UI)-Eingabegeräte 312, Ul-Ausgabegeräte 314 und ein Netzwerkschnittstellen-Subsystem 316 umfassen. Die Eingabe- und Ausgabegeräte ermöglichen Benutzerinteraktion mit dem Computer 300, und das Netzwerkschnittstellen-Subsystem 316 stellt eine Schnittstelle zu externen Netzwerken bereit und ist mit entsprechenden Schnittstellengeräten in anderen Computern gekoppelt.
  • Die Benutzerschnittstellen-Eingabegeräte 312 können eine Tastatur, Zeigegeräte wie z. B. eine Maus, einen Trackball, ein Touchpad oder ein Grafiktablett, einen Scanner, einen in das Display integrierten Touchscreen, Audio-Eingabegeräte wie z. B. Spracherkennungssysteme, Mikrofone und/oder oder andere Arten von Eingabegeräten umfassen. Allgemein soll die Verwendung des Begriffs „Eingabegerät“ alle möglichen Arten von Geräten und Möglichkeiten zum Eingeben von Informationen in den Computer 300 oder in ein Kommunikationsnetzwerk umfassen.
  • Die Benutzerschnittstellen-Ausgabegeräte 314 können ein Anzeige-Subsystem, einen Drucker, ein Faxgerät oder nicht visuelle Anzeigen wie z. B. Audio-Ausgabegeräte umfassen. Das Anzeige-Subsystem kann eine Kathodenstrahlröhre (CRT), ein Flachbildschirmgerät wie z. B. eine Flüssigkristallanzeige (LCD), ein Projektionsgerät oder einen anderen Mechanismus zum Erzeugen eines sichtbaren Bildes umfassen. Das Anzeige-Subsystem kann auch eine nicht visuelle Anzeige wie z. B. über Audio-Ausgabegeräte bereitstellen. Allgemein soll die Verwendung des Begriffs „Ausgabegerät“ alle möglichen Arten von Geräten und Möglichkeiten zum Ausgeben von Informationen von dem Computer 300 an den Benutzer oder an eine andere Maschine oder ein anderes Computersystem umfassen.
  • Das Speicherungs-Subsystem 306 speichert Programmier- und Datenkonstrukte, die die Funktionalität einiger oder aller der hierin beschriebenen Module bereitstellen. Zum Beispiel kann das Speicherungs-Subsystem 306 die Logik enthalten, um ausgewählte Aspekte der zuvor erwähnten Sequenzen von Tätigkeiten durchzuführen und/oder um eine oder mehrere Komponenten der verschiedenen in 1 veranschaulichten Geräte und Umgebungen zu implementieren.
  • Diese Softwaremodule werden im Allgemeinen von dem Prozessor 302 allein oder in Kombination mit anderen Prozessoren ausgeführt. Das im Speicherungs-Subsystem 306 verwendete Speicher-Subsystem 308 kann eine Anzahl von Speichern umfassen, einschließlich eines Hauptspeichers mit wahlfreiem Zugriff (RAM) 318 zum Speichern von Anweisungen und Daten während der Programmausführung und eines Nur-Lese-Speichers (ROM) 320, in dem feste Anweisungen gespeichert sind. Ein Dateispeicherungs-Subsystem 310 kann dauerhaften Speicher für Programm- und Datendateien bereitstellen und kann ein Festplattenlaufwerk, ein Diskettenlaufwerk zusammen mit zugeordneten Wechselmedien, ein CD-ROM-Laufwerk, ein optisches Laufwerk oder Wechselmedienkassetten umfassen. Die Module, die die Funktionalität bestimmter Implementierungen implementieren, können durch das Dateispeicherungs-Subsystem 310 in dem Speicherungs-Subsystem 306 oder in anderen Maschinen, auf die der oder die Prozessor(en) 302 zugreifen können, gespeichert werden.
  • Das Bus-Subsystem 304 stellt einen Mechanismus bereit, mit dem die verschiedenen Komponenten und Subsysteme des Computers 300 wie beabsichtigt miteinander kommunizieren können. Obwohl das Bus-Subsystem 304 schematisch als ein Einzel-Bus gezeigt ist, können alternative Implementierungen des Bus-Subsystems mehrere Busse verwenden.
  • Der Computer 300 kann von unterschiedlicher Art sein, einschließlich eines mobilen Computergeräts, eines Desktop-Computers, eines Laptop-Computers, eines Tablet-Computers, eines tragbaren Computers, einer Workstation, eines Servers, eines Computer-Clusters, eines Blade-Servers, einer Server-Farm oder irgendeines anderen Datenverarbeitungssystems oder Computergeräts. Aufgrund der sich ständig ändernden Natur von Computern und Netzwerken ist die Beschreibung des in 7 gezeigten Computers 300 nur als ein spezielles Beispiel zur Veranschaulichung mancher Implementierungen gedacht. Es sind viele andere Konfigurationen des Computers 300 möglich, die mehr oder weniger Komponenten als das in 7 gezeigte Computersystem aufweisen.
  • Gemäß einer Ausführungsform wird kontextabhängige Einfügeziel-Vorhersage verwendet, um eine oder mehrere Ziel-Anwendungen für eine Einfüge-Aktion vorherzusagen, und zwar auf Basis eines Kontextes, der Inhalt zugeordnet ist, der zuvor ausgewählt und kopiert worden ist. Die Ergebnisse der Vorhersage können verwendet werden, um einem Benutzer ein oder mehrere Benutzersteuerelemente darzubieten, um dem Benutzer zu ermöglichen, eine oder mehrere vorhergesagte Anwendungen zu aktivieren, und in manchen Fällen zusätzlich einen Zustand einer vorhergesagten Anwendung zu konfigurieren, den ausgewählten und kopierten Inhalt zu verwenden, sobald aktiviert. Somit kann nach Beendigung einer Kopier-Aktion einem Benutzer in manchen Fällen die Fähigkeit gegeben werden, schnell zu einer Anwendung zu wechseln, in die der Benutzer den Inhalt einfügen wollte. Dies kann eine einfachere Benutzerschnittstelle in einem Gerät wie zum Beispiel Telefonen und Tablet-Computern mit begrenzter Display-Größe und begrenzten Eingabegerät-Hilfsmitteln bereitstellen. Es kann zu einer Einfüge-Tätigkeit in eine andere Anwendung mit weniger Schritten als konventionell möglich führen.
  • Obwohl hierin mehrere Implementierungen beschrieben und veranschaulicht worden sind, können mannigfache andere Mittel und/oder Strukturen zur Durchführung der Funktion und/oder zur Erzielung der Ergebnisse und/oder eines oder mehrerer der hierin beschriebenen Vorteile verwendet werden, und jede dieser Varianten und/oder Modifikationen wird als im Schutzbereich der hierin beschriebenen Ausführungsformen liegend angesehen. Obwohl zum Beispiel die veranschaulichten Implementierungen sowohl die Vorhersage von vorhergesagten Anwendungen als auch die Anzeige eines Benutzersteuerelements entsprechend einer vorhergesagten Anwendung direkt als Antwort auf eine Kopier-Aktion ausführen, können in manchen Implementierungen mindestens Teile, wenn nicht alles, von der Vorhersage vor Initiierung einer Kopier-Aktion durchgeführt werden, z. B. sobald Inhalt ausgewählt worden ist, so dass nach Initiierung einer Kopier-Aktion Vorhersageergebnisse schneller zur Verwendung beim Erzeugen von einem oder mehreren geeigneten Benutzersteuerelementen zur Anzeige an einen Benutzer verfügbar sind. Man beachte auch, dass die verschiedenen Sequenzen von Tätigkeiten, die hierin veranschaulicht sind, in anderen Implementierungen variieren können, und dass Tätigkeiten in manchen Implementierungen neu geordnet und/oder parallel zueinander durchgeführt werden können. Zum Beispiel kann in manchen Implementierungen etwas oder alles von der Funktionalität im Block 156 von 4 vor dem Block 152 und/oder dem Block 154 durchgeführt werden, so dass mindestens ein Teil eines Kontextes vor dem Extrahieren von Entitäten aus dem ausgewählten Inhalt erstellt wird.
  • Allgemeiner sind alle hierin beschriebenen Parameter, Abmessungen, Materialien und Konfigurationen beispielhaft gemeint, und die tatsächlichen Parameter, Abmessungen, Materialien und/oder Konfigurationen werden von der oder den spezifischen Anwendung(en) abhängen, für die die Lehre(n) verwendet wird/werden. Der Fachmann wird viele Äquivalente zu den hierin beschriebenen spezifischen Ausführungsformen erkennen oder mit nicht mehr als Routine-Experimenten herausfinden können. Man erkennt daher, dass die vorhergehenden Implementierungen nur als Beispiele dargeboten werden und dass innerhalb des Schutzbereichs der beigefügten Ansprüche und deren Äquivalenten Implementierungen anders als spezifisch beschrieben und beansprucht realisiert werden können. Implementierungen der vorliegenden Offenbarung sind auf jedes hierin beschriebene individuelle Merkmal, System, Objekt, Material, Ausrüstung und/oder Verfahren gerichtet. Außerdem ist jede Kombination von zwei oder mehr solchen Merkmalen, Systemen, Objekten, Materialien, Ausrüstungen und/oder Verfahren, wenn solche Merkmale, Systeme, Objekte, Materialien, Ausrüstungen und/oder Verfahren nicht unvereinbar miteinander sind, im Schutzbereich der vorliegenden Offenbarung enthalten.

Claims (25)

  1. Verfahren, umfassend: ein als Antwort auf eine Benutzeraktion, ausgewählten Inhalt auf einem Computergerät zu kopieren, initiiertes Steuersignal zu empfangen; unter Verwendung mindestens eines Prozessors eine vorhergesagte Anwendung, in die der ausgewählte Inhalt einfügbar ist, auf Basis eines dem ausgewählten Inhalt zugeordneten Kontextes aus einer Mehrzahl von Anwendungen vorherzusagen; und als Antwort auf das Steuersignal und unter Verwendung mindestens eines Prozessors ein Benutzersteuerelement für die vorhergesagte Anwendung auf dem Computergerät anzeigen zu lassen, wobei das Benutzersteuerelement konfiguriert ist, die vorhergesagte Anwendung nach Benutzerauswahl auf dem Computergerät zu aktivieren.
  2. Verfahren nach Anspruch 1, wobei der Kontext umfasst, in welcher Anwendung die Benutzeraktion zum Kopieren des ausgewählten Inhalts durchgeführt wird, und wobei das Vorhersagen der vorhergesagten Anwendung umfasst, die vorhergesagte Anwendung mindestens teilweise basierend darauf vorherzusagen, in welcher Anwendung die Benutzeraktion zum Kopieren des ausgewählten Inhalts durchgeführt wird.
  3. Verfahren nach Anspruch 1 oder 2, wobei der Kontext eine Länge des ausgewählten Inhalts umfasst und wobei das Vorhersagen der vorhergesagten Anwendung umfasst, die vorhergesagte Anwendung mindestens teilweise auf Basis der Länge des ausgewählten Inhalts vorherzusagen.
  4. Verfahren nach Anspruch 3, wobei der ausgewählte Inhalt Text umfasst und wobei das Vorhersagen der vorhergesagten Anwendung umfasst: eine Nachrichtenübermittlungs-Anwendung aus der Mehrzahl von Anwendungen als die vorhergesagte Anwendung vorherzusagen, wenn die Länge des ausgewählten Inhalts einem Länge-Kriterium genügt; und eine Suchanwendung aus der Mehrzahl von Anwendungen als die vorhergesagte Anwendung vorherzusagen, wenn die Länge des ausgewählten Inhalts dem Länge-Kriterium nicht genügt.
  5. Verfahren nach irgendeinem vorhergehenden Anspruch, wobei der Kontext einen Anwendungs-Verlauf umfasst und wobei das Vorhersagen der vorhergesagten Anwendung umfasst, die vorhergesagte Anwendung mindestens teilweise auf Basis des Anwendungs-Verlaufs vorherzusagen.
  6. Verfahren nach Anspruch 5, wobei der Anwendungs-Verlauf eine kürzlich verwendete Anwendung umfasst und wobei das Vorhersagen der vorhergesagten Anwendung umfasst, die kürzlich verwendete Anwendung basierend darauf, dass die kürzlich verwendete Anwendung kürzlich verwendet wurde, als die vorhergesagte Anwendung vorherzusagen.
  7. Verfahren nach Anspruch 5, wobei der Anwendungs-Verlauf eine zuvor als Einfügeziel verwendete Vorgängerziel-Anwendung umfasst und wobei das Vorhersagen der vorhergesagten Anwendung umfasst, die Vorgängerziel-Anwendung mindestens teilweise basierend darauf, dass die Vorgängerziel-Anwendung zuvor als Einfügeziel verwendet wurde, als die vorhergesagte Anwendung vorherzusagen.
  8. Verfahren nach Anspruch 7, wobei das Vorhersagen der Vorgängerziel-Anwendung als die vorhergesagte Anwendung umfasst, die Vorgängerziel-Anwendung mindestens teilweise basierend darauf, dass die Vorgängerziel-Anwendung zuvor als Einfügeziel für Inhalt verwendet wurde, der dem ausgewählten Inhalt ähnlich ist, als die vorhergesagte Anwendung vorherzusagen.
  9. Verfahren nach einem der Ansprüche 5 bis 8, wobei der Anwendungs-Verlauf eine zuvor aktivierte Anwendung umfasst, die zuvor nach einer Kopier-Aktion aktiviert wurde, und wobei das Vorhersagen der vorhergesagten Anwendung umfasst, die zuvor aktivierte Anwendung mindestens teilweise basierend darauf, dass die zuvor aktivierte Anwendung zuvor nach einer Kopier-Aktion aktiviert wurde, als die vorhergesagte Anwendung vorherzusagen.
  10. Verfahren nach einem der Ansprüche 5 bis 8, wobei der Anwendungs-Verlauf Daten umfasst, die angeben, dass ein Benutzer zuvor eine Einfüge-Tätigkeit beendet hat statt ein Benutzersteuerelement für eine zuvor vorhergesagte Anwendung auszuwählen, oder weiteres Benutzerverhalten nach Aktivierung einer zuvor vorhergesagten Anwendung angeben, und wobei das Vorhersagen der vorhergesagten Anwendung mindestens teilweise auf den Daten basiert.
  11. Verfahren nach irgendeinem vorhergehenden Anspruch, das weiterhin umfasst, den ausgewählten Inhalt zu analysieren, um eine oder mehrere Entitäten zu identifizieren, wobei der Kontext die eine oder mehreren Entitäten umfasst und wobei das Vorhersagen der vorhergesagten Anwendung umfasst, die vorhergesagte Anwendung mindestens teilweise auf Basis von einer oder mehreren Entitäten vorherzusagen.
  12. Verfahren nach Anspruch 11, wobei die eine oder mehreren Entitäten eine E-Mail-Adresse, eine Telefonnummer, eine physische Adresse oder einen Uniform Resource Locator (URL) umfassen und wobei das Vorhersagen der vorhergesagten Anwendung umfasst: die vorhergesagte Anwendung als E-Mail-Anwendung vorherzusagen, wenn die eine oder mehreren Entitäten eine E-Mail-Adresse umfassen; die vorhergesagte Anwendung als Telefon-Anwendung vorherzusagen, wenn die eine oder mehreren Entitäten eine Telefonnummer umfassen; die vorhergesagte Anwendung als Karten-Anwendung vorherzusagen, wenn die eine oder mehreren Entitäten eine physische Adresse umfassen; und die vorhergesagte Anwendung als Browser-Anwendung vorherzusagen, wenn die eine oder mehreren Entitäten einen URL umfassen.
  13. Verfahren nach Anspruch 11 oder 12, wobei das Vorhersagen der vorhergesagten Anwendung umfasst: zu ermitteln, ob mehrere Entitäten unter den ein oder mehreren Entitäten verwandt sind; wenn die mehreren Entitäten verwandt sind, eine Suchanwendung als die vorhergesagte Anwendung vorherzusagen; und wenn die mehreren Entitäten nicht verwandt sind, eine am höchsten eingestufte Entität unter den mehreren Entitäten auszuwählen und die vorhergesagte Anwendung mindestens teilweise auf Basis der am höchsten eingestuften Entität vorherzusagen.
  14. Verfahren nach irgendeinem vorhergehenden Anspruch, wobei das Vorhersagen der vorhergesagten Anwendung umfasst, mehrere Anwendungen unter der Mehrzahl von Anwendungen auf Basis des Kontextes einzustufen und die vorhergesagte Anwendung als eine am höchsten eingestufte Anwendung unter den mehreren Anwendungen auszuwählen.
  15. Verfahren nach Anspruch 14, wobei das Benutzersteuerelement entlang eines Randes eines Anzeigebildschirms des Computergeräts angezeigt wird, wobei das Benutzersteuerelement konfiguriert ist, als Antwort auf eine erste Art von Benutzereingabe die vorhergesagte Anwendung auf dem Computergerät zu aktivieren, und wobei das Benutzersteuerelement konfiguriert ist, als Antwort auf eine zweite Art von Benutzereingabe eine Mehrzahl von sekundären Benutzersteuerelementen angrenzend an das Benutzersteuerelement anzeigen zu lassen, wobei jedes der sekundären Benutzersteuerelemente konfiguriert ist, nach Benutzerauswahl eine zugeordnete Anwendung unter den mehreren Anwendungen zu aktivieren.
  16. Verfahren nach irgendeinem vorhergehenden Anspruch, wobei das Benutzersteuerelement weiterhin konfiguriert ist, die vorhergesagte Anwendung zu steuern, um die Anwendung in einen vorbestimmten Zustand zu konfigurieren, und eine Einfüge-Aktion unter Verwendung des ausgewählten Inhalts durchzuführen.
  17. Verfahren nach Anspruch 16, wobei das Benutzersteuerelement eine tiefe Verknüpfung umfasst, die die vorhergesagte Anwendung als Ziel hat.
  18. Verfahren nach irgendeinem vorhergehenden Anspruch, wobei der mindestens eine Prozessor in dem Computergerät angesiedelt ist und wobei das Empfangen des Steuersignals umfasst, ein Kopier-Ereignis auf dem Computergerät zu erkennen.
  19. Verfahren nach irgendeinem der Ansprüche 1 bis 17, wobei der mindestens eine Prozessor in einem über ein Netzwerk mit dem Computergerät kommunizierenden Online-Dienst angesiedelt ist und wobei das Empfangen des Steuersignals umfasst, eine Nachricht von dem Computergerät zu empfangen.
  20. Verfahren nach Anspruch 19, das weiterhin umfasst, in dem Computergerät: ein Kopierer-Ereignis zu erkennen; Konnektivität zwischen dem Computergerät und dem Online-Dienst zu ermitteln; als Antwort auf Ermittlung von Konnektivität zwischen dem Computergerät und dem Online-Dienst die Nachricht an den Online-Dienst zu übermitteln; und als Antwort auf Ermittlung eines Fehlens von Konnektivität zwischen dem Computergerät und dem Online-Dienst: auf Basis des ausgewählten Inhalts eine lokal vorhergesagte Anwendung aus der Mehrzahl von Anwendungen vorherzusagen; oder ein Standard-Benutzersteuerelement auf dem Computergerät anzeigen zu lassen.
  21. System, das einen oder mehrere Prozessoren sowie Speicher aufweist, der Anweisungen speichert, die bei Ausführung durch die ein oder mehreren Prozessoren die ein oder mehreren Prozessoren veranlassen: ein als Antwort auf eine Benutzeraktion, ausgewählten Inhalt auf einem Computergerät zu kopieren, initiiertes Steuersignal zu empfangen; eine vorhergesagte Anwendung, in die der ausgewählte Inhalt einfügbar ist, auf Basis eines dem ausgewählten Inhalt zugeordneten Kontextes aus einer Mehrzahl von Anwendungen vorherzusagen; und als Antwort auf das Steuersignal ein Benutzersteuerelement für die vorhergesagte Anwendung auf dem Computergerät anzeigen zu lassen, wobei das Benutzersteuerelement konfiguriert ist, die vorhergesagte Anwendung nach Benutzerauswahl auf dem Computergerät zu aktivieren.
  22. Mindestens ein nichtflüchtiges computerlesbares Medium, das Anweisungen aufweist, die als Antwort auf Ausführung der Anweisungen durch einen oder mehrere Prozessoren die ein oder mehreren Prozessoren veranlassen: ein als Antwort auf eine Benutzeraktion, ausgewählten Inhalt auf einem Computergerät zu kopieren, initiiertes Steuersignal zu empfangen; eine vorhergesagte Anwendung, in die der ausgewählte Inhalt einfügbar ist, auf Basis eines dem ausgewählten Inhalt zugeordneten Kontextes aus einer Mehrzahl von Anwendungen vorherzusagen; und als Antwort auf das Steuersignal ein Benutzersteuerelement für die vorhergesagte Anwendung auf dem Computergerät anzeigen zu lassen, wobei das Benutzersteuerelement konfiguriert ist, die vorhergesagte Anwendung nach Benutzerauswahl auf dem Computergerät zu aktivieren.
  23. Verfahren, umfassend: als Antwort auf ein Steuersignal, das aus einer Benutzereingabe resultiert, ausgewählten Inhalt auf einem Computergerät zu kopieren: auf Basis eines dem ausgewählten Inhalt zugeordneten Kontextes eine Inhalt-Einfügeziel-Anwendung als eine vorhergesagte Anwendung aus einer Mehrzahl von Anwendungen auszuwählen; und ein Benutzersteuerelement für die vorhergesagte Anwendung auf dem Computergerät anzeigen zu lassen und auf Benutzerauswahl des Benutzersteuerelements mit Aktivieren der vorhergesagten Anwendung auf dem Computergerät zu antworten.
  24. Vorrichtung, die konfiguriert ist, das Verfahren nach irgendeinem der Ansprüche 1 bis 20 und 23 durchzuführen.
  25. Computerprogramm, das Anweisungen aufweist, die, wenn sie von einer Computervorrichtung ausgeführt werden, bewirken, dass das Verfahren nach irgendeinem der Ansprüche 1 bis 20 und 23 durchgeführt wird.
DE102017122308.8A 2016-12-30 2017-09-26 Kontextabhängige einfügeziel-vorhersage Withdrawn DE102017122308A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201662440835P 2016-12-30 2016-12-30
US62/440,835 2016-12-30
US15/418,168 2017-01-27
US15/418,168 US10514833B2 (en) 2016-12-30 2017-01-27 Contextual paste target prediction

Publications (1)

Publication Number Publication Date
DE102017122308A1 true DE102017122308A1 (de) 2018-07-05

Family

ID=60020617

Family Applications (2)

Application Number Title Priority Date Filing Date
DE102017122308.8A Withdrawn DE102017122308A1 (de) 2016-12-30 2017-09-26 Kontextabhängige einfügeziel-vorhersage
DE202017105843.3U Active DE202017105843U1 (de) 2016-12-30 2017-09-26 Kontextabhängige Einfügeziel-Vorhersage

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE202017105843.3U Active DE202017105843U1 (de) 2016-12-30 2017-09-26 Kontextabhängige Einfügeziel-Vorhersage

Country Status (8)

Country Link
US (2) US10514833B2 (de)
EP (1) EP3559794A1 (de)
CN (2) CN113553116A (de)
DE (2) DE102017122308A1 (de)
GB (1) GB2558349A (de)
IE (1) IE20170202A1 (de)
SG (1) SG10201708067RA (de)
WO (1) WO2018125330A1 (de)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018176297A1 (en) * 2017-03-30 2018-10-04 Sony Mobile Communications Inc. Multi-window displaying apparatus and method and mobile electronic equipment
US10782951B2 (en) * 2018-02-23 2020-09-22 Digital Turbine, Inc. Instant installation of apps
CN109144289B (zh) * 2018-08-09 2022-07-12 中国科学技术大学先进技术研究院 一种基于上下文感知的键盘热键提示及预测方法和系统
US11159396B2 (en) * 2018-10-26 2021-10-26 Citrix Systems, Inc. Computer system providing mirrored SaaS application sessions and related methods
CN109739662A (zh) * 2018-12-29 2019-05-10 北京小米移动软件有限公司 通信方法及装置
CN110045903A (zh) * 2019-04-23 2019-07-23 努比亚技术有限公司 界面操作响应方法、移动终端、装置及计算机存储介质
CN110225180B (zh) * 2019-04-23 2021-01-08 维沃软件技术有限公司 一种内容输入方法及终端设备
CN110413169B (zh) 2019-07-24 2021-11-23 北京小米移动软件有限公司 一种信息展示方法、装置及介质
EP3973469A1 (de) * 2019-08-02 2022-03-30 Google LLC Systeme und verfahren zur erzeugung und bereitstellung von vorgeschlagenen aktionen
CN110909155B (zh) * 2019-11-25 2022-12-02 掌阅科技股份有限公司 书单生成方法、计算设备及计算机存储介质
US20210406253A1 (en) * 2019-12-05 2021-12-30 Google Llc Systems and methods for low-latency provision of content
CN111221614A (zh) * 2020-01-03 2020-06-02 北京小米移动软件有限公司 一种信息处理方法、装置、电子设备及存储介质
US11314373B2 (en) * 2020-04-23 2022-04-26 International Business Machines Corporation Vigilant cognitive cursor based on clipboard buffer contents
US11477286B2 (en) * 2020-05-01 2022-10-18 Microsoft Technology Licensing, Llc Combined local and server context menus
US11057464B1 (en) * 2020-06-04 2021-07-06 Citrix Systems, Inc. Synchronization of data between local and remote computing environment buffers
CN111966703B (zh) * 2020-06-30 2023-11-03 广州迈安信息科技有限公司 工程造价数据查询方法、装置、服务器和存储介质
US20220164078A1 (en) * 2020-11-20 2022-05-26 Microsoft Technology Licensing, Llc Dynamic and selective presentation of interaction zones by a computer program based on user interaction with content from other computer programs
CN112882623B (zh) * 2021-02-09 2022-08-05 维沃移动通信有限公司 文本处理方法、装置、电子设备及存储介质
US20230116149A1 (en) * 2021-10-09 2023-04-13 Microsoft Technology Licensing, Llc Copy-paste-update edit automation
WO2023196166A1 (en) * 2022-04-04 2023-10-12 Google Llc Sharing of captured content
CN114945176B (zh) * 2022-04-12 2023-05-30 荣耀终端有限公司 剪切板访问管控方法、电子设备及存储介质

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003241879A (ja) * 2002-02-14 2003-08-29 Sharp Corp 情報処理システム
CA2393887A1 (en) * 2002-07-17 2004-01-17 Idelix Software Inc. Enhancements to user interface for detail-in-context data presentation
CN101243449A (zh) * 2005-06-16 2008-08-13 文字点击有限公司 用于从计算机显示的内容中自动启动搜索查询的方法和系统
DE102006051186A1 (de) 2006-10-30 2008-05-08 Siemens Ag Infrastruktur-Servicearchitektur für Applikationen
US8145490B2 (en) * 2007-10-24 2012-03-27 Nuance Communications, Inc. Predicting a resultant attribute of a text file before it has been converted into an audio file
MX2011006340A (es) * 2008-12-12 2011-10-28 Atigeo Llc Suministro de recomendaciones utilizando la informacion determinada para dominios de interés.
EP2433257A4 (de) 2009-05-19 2014-07-30 Nholdings Sa Bereitstellung einer lokalen vorrichtung mit rechnerdiensten von einem fern-hostcomputer
US8549432B2 (en) * 2009-05-29 2013-10-01 Apple Inc. Radial menus
KR101598335B1 (ko) * 2009-06-11 2016-02-29 엘지전자 주식회사 휴대 단말기 및 그 동작방법
US9336326B2 (en) * 2009-12-29 2016-05-10 Cellco Partnership Browser based objects for copying and sending operations
JP5541144B2 (ja) * 2010-12-21 2014-07-09 富士通株式会社 支援プログラム、支援方法および支援装置
US9858342B2 (en) * 2011-03-28 2018-01-02 Doat Media Ltd. Method and system for searching for applications respective of a connectivity mode of a user device
KR101747303B1 (ko) * 2011-04-11 2017-06-15 삼성전자주식회사 어플리케이션 추천 방법, 그에 따른 이동 단말기 및 그에 따른 통신 시스템
WO2013000123A1 (zh) 2011-06-28 2013-01-03 宇龙计算机通信科技(深圳)有限公司 粘贴方法和终端
US8949729B2 (en) 2012-06-13 2015-02-03 International Business Machines Corporation Enhanced copy and paste between applications
WO2015081307A1 (en) * 2013-11-26 2015-06-04 Anunta Technology Management Services Ltd. Management of cloud-based application delivery
US9075508B1 (en) * 2014-04-30 2015-07-07 Grandios Technologies, Llc Next application suggestions on a user device
CN104090904B (zh) * 2014-05-16 2018-03-23 百度在线网络技术(北京)有限公司 一种用于提供目标搜索结果的方法与设备
US9680874B1 (en) * 2014-11-19 2017-06-13 Amazon Technologies, Inc Containerized examination of sensitive data
US10169481B2 (en) * 2015-02-18 2019-01-01 Adobe Systems Incorporated Method for intelligent web reference preloading based on user behavior prediction
US9703541B2 (en) 2015-04-28 2017-07-11 Google Inc. Entity action suggestion on a mobile device
US9465682B1 (en) * 2015-05-27 2016-10-11 Google Inc. Dynamic deep links to targets
US10013146B2 (en) * 2015-08-27 2018-07-03 International Business Machines Corporation Data transfer target applications through content analysis

Also Published As

Publication number Publication date
WO2018125330A1 (en) 2018-07-05
US20180188924A1 (en) 2018-07-05
CN108279931B (zh) 2021-06-29
EP3559794A1 (de) 2019-10-30
GB201715733D0 (en) 2017-11-15
CN108279931A (zh) 2018-07-13
DE202017105843U1 (de) 2018-01-17
CN113553116A (zh) 2021-10-26
SG10201708067RA (en) 2018-07-30
GB2558349A (en) 2018-07-11
US11567642B2 (en) 2023-01-31
IE20170202A1 (en) 2018-07-11
US10514833B2 (en) 2019-12-24
US20200081609A1 (en) 2020-03-12

Similar Documents

Publication Publication Date Title
DE102017122308A1 (de) Kontextabhängige einfügeziel-vorhersage
DE102016125508B4 (de) Auffindbarkeitssystem für Sprachaktionen
DE102017119601A1 (de) Verwenden einer Anwendereingabe, um Suchergebnisse, die für die Darstellung für den Anwender bereitgestellt werden, anzupassen
DE102016125783A1 (de) Bereitstellen von Vorschlägen für die Interaktion mit einem automatisierten Assistenten in einem Multi-User-Nachrichtenaustausch-Thread
DE102018007060A1 (de) Hervorheben von Schlüsselabschnitten eines Texts innerhalb eines Dokuments
DE102016125509A1 (de) Einbindung von auswählbaren Anwendungsverknüpfungen in Nachrichtenaustausch-Threads
DE102004012839B4 (de) System und Verfahren zur Bereitstellung von Hilfeinformation
DE112011105933T5 (de) Verfahren und Vorrichtungen zum dynamischen Anpassen einer virtuellen Tastatur
US20120066634A1 (en) Branded browser frame
DE102016125804A1 (de) Das Einbeziehen auswählbarer Anwendungslinks in Konversationen mit persönlichen Assistenz-Modulen
DE202017104019U1 (de) System zum Steuern eines Computers zum Initiieren der Ausführung einer computerbasierten Aktion
US20110125733A1 (en) Quick access utility
KR102311228B1 (ko) 표시 제어 방법, 단말, 정보처리 장치 및 프로그램을 기록한 기록 매체
DE212015000245U1 (de) Assistives Browsen unter Verwendung von Kontext
US9355227B2 (en) Dynamic document display personalization implemented in a digital rights management system
DE102014101042A1 (de) Modifizieren einer Eingabestifteingabe oder -reaktion unter Verwendung einer gefolgerten Bewegung
DE102014101026A1 (de) Eingabestiftkurzschrift
DE102014101027A1 (de) Eingabestift mit Lexikon-Sharing
DE112022001161T5 (de) Techniken zur bereitstellung einer suchschnittstelle innerhalb eines karussells
US10289741B2 (en) Using relevant objects to add content to a collaborative repository
DE202017105336U1 (de) Einheitlicher Ressourcenbezeichner und Teilen von Bildern zur Kontextinformationanzeige
DE112016002250T5 (de) Mehrfachschalter-Optionsabtastung
US20140026028A1 (en) Managing webpage edits
DE102021130813A1 (de) Ermöglichen von benutzereingaben durch vorhersagen von zielspeicherungsorten
DE202017104272U1 (de) Kontextinformationen für eine Benachrichtigung

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R081 Change of applicant/patentee

Owner name: GOOGLE LLC, MOUNTAIN VIEW, US

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

R082 Change of representative

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

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0017270000

Ipc: G06F0040200000

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee