IP Library › Granted Patent US 11,442,748
Granted Patent B2
US 11,442,748 · App. 15/497,938 · Granted Sep 13, 2022

Application display and discovery by predicting behavior through machine-learning

Inventors: Edward J. Swindell (Cambridge, GB); Duncan Gabriel (Cambridge, GB); Henry J. Ashman (Cambridge, GB)
Assignee: CITRIX SYSTEMS, INC.
G06F9/451G06N20/00
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,442,748
App. No.
15/497,938
Granted
Sep 13, 2022
Kind
B2
Abstract

Systems and methods for ordering software applications in a computing environment. The methods involve: presenting user-selectable icons for launching a plurality of software applications in a graphical user interface in accordance with a first order; performing a machine-learning algorithm to determine a weighting value for each software application of the plurality of software applications based on information specifying at least one aspect of a software launch request and at least one aspect of a first user's current circumstance; determining a second order in which the user-selectable icons should be presented in the graphical user interface based on the weighting values determined for the software applications; and dynamically modifying the graphical user interface to present the user-selectable icons in the second order which is different from the first order.

Claims (41)

1. A method for ordering software applications in a computing environment, comprising:

presenting user-selectable icons for launching a plurality of software applications in a graphical user interface of a first computing device in accordance with a first order;

selecting, by the first computing device or a second remote computing device, at least one group from a plurality of groups in which a first user is a member based on first weighting values respectively assigned to the groups, wherein each said group has a list of software applications associated therewith which is different than lists of software applications associated with other ones of the plurality of groups;

performing, by the first computing device or the second remote computing device, at least one machine-learning algorithm to determine a second weighting value for each software application of the plurality of software applications contained in the list associated with the at least one group which was selected from the plurality of groups, based on at least one of a first criteria specifying at least one aspect of a software launch request, a second criteria specifying a popularity of the software application, and a third criteria that is different than the second criteria and that specifies a learned behavior regarding software application usage of a plurality of people;

performing, by the first computing device or the second remote computing device, at least a second machine-learning algorithm to determine a third weighting value based on a similarity of the first user to one or more second users among the plurality of people, the similarity based on a plurality of factors including the use of software applications, geographic location, organizational positions within a structure of an organization, and social media activities;

assigning, by the first computing device or the second remote computing device, the plurality of software applications to a plurality of different categories based on the first, second and third weighting values; and

dynamically modifying the graphical user interface to present the user-selectable icons in accordance with category assignments made during said assigning.

2. The method according to claim 1 , wherein the second weighting value provides a measure of likelihood that the first user wants to use a software application given a current circumstance of the first user or a measure of probability that the first user will want to use the software application during a given time period or while at a given location.

3. The method according to claim 1 , wherein the second weighting value is further determined based on at least one of current circumstances of second users, software launch patterns of the second users, and similarities of existing software applications.

4. The method according to claim 1 , wherein the second weighting value is determined based further on a position held by the first user at the organization.

5. The method according to claim 1 , further comprising determining the first order based on pre-learnt estimates for which software applications a user of the computing device would most likely want to use.

6. The method according to claim 5 , wherein the pre-learnt estimates are made based on behavior histories of second users with current circumstances that match a current circumstance of the first user by a certain degree.

7. The method according to claim 1 , further comprising determining the first order by:

identifying at least one first user group of a plurality of user groups to which the first user should be assigned based on behavior histories of second users with current circumstances that match a current circumstance of the first user by a certain degree; and

selecting the first list of software applications generated for the first user group.

8. The method according to claim 7 , wherein the first list of software applications is dynamically modified over time based on behavior histories of newly assigned users of the first user group.

9. The method according to claim 1 , further comprising generating a combined list of software applications by combining at least a portion of a list of software applications associated with a first group selected from the plurality of groups and at least a portion of a list of software applications associated with a second group selected from the plurality of groups, wherein the at least one machine learning algorithm determines the second weighting value for each software application in the combined list.

10. The method according to claim 1 , wherein an order in which the user-selectable icons are presented in the graphical user interface is dynamically modified on demand, on a periodic basis, or each time an application launcher is started.

11. The method according to claim 1 , wherein information about the organization is used to define an initial seed state of the machine-learning algorithm.

12. The method according to claim 1 , wherein information indicating an initial location of the first user is used to define an initial seed state of the machine-learning algorithm.

13. The method according to claim 1 , wherein the machine-learning algorithm learns behaviors based on activities performed by multiple users.

14. A system for ordering software applications in a computing environment, comprising:

a processor; and

a non-transitory computer-readable storage medium comprising programming instructions that are configured to cause the processor to implement a method for inventory management, wherein the programming instructions comprise instructions to:

cause user-selectable icons for launching a plurality of software applications to be presented in a graphical user interface in accordance with a first order;

select at least one group from a plurality of groups in which a first user is a member based on first weighting values respectively assigned to the groups, wherein each said group has a list of software applications associated therewith which is different than lists of software applications associated with other ones of the plurality of groups;

perform a machine-learning algorithm to determine a second weighting value for each software application of the plurality of software applications contained in the list associated with the at least one group which was selected from the plurality of groups, based on at least one of a first criteria specifying at least one aspect of a software launch request, a second criteria specifying a popularity of the software application, and a third criteria that is different than the second criteria and that specifies learned behavior regarding software application usage of a plurality of people;

performing, by the first computing device or the second remote computing device, at least a second machine-learning algorithm to determine a third weighting value based on a similarity of the first user to one or more second users among the plurality of people, the similarity based on a plurality of factors including the use of software applications, geographic location, organizational positions within a structure of an organization, and social media activities;

assign the plurality of software applications to a plurality of different categories based on at least one of the first, second and third weighting values; and

dynamically modifying the graphical user interface in accordance with category assignments made during said assigning.

15. The system according to claim 14 , wherein the second weighting value provides a measure of likelihood that the first user wants to use a software application given a current circumstance of the first user or a measure of probability that the first user will want to use the software application during a given time period or while at a given location.

16. The system according to claim 14 , wherein the second weighting value is further determined based on at least one of current circumstances of second users, software launch patterns of the second users with current circumstances that match a current circumstance of the first user by a certain degree, similarities of existing software applications, and popularity of existing software applications at a present time and/or at a given location.

17. The system according to claim 14 , wherein the second weighting value is determined based further on a position held by the first user at the organization.

18. The system according to claim 14 , wherein the programming instructions further comprise instructions to determine the first order based on pre-learnt estimates for which software applications a user of the computing device would most likely want to use.

19. The system according to claim 18 , wherein the pre-learnt estimates are made based on behavior histories of second users with current circumstances that match a current circumstance of the first user by a certain degree.

20. The system according to claim 14 , wherein the first order is determined by:

identifying at least one first user group of a plurality of user groups to which the first user should be assigned based on behavior histories of second users with current circumstances that match a current circumstance of the first user by a certain degree; and

selecting the first list of software applications generated for the first user group.

21. The system according to claim 20 , wherein the first list of software applications is dynamically modified over time based on behavior histories of newly assigned users of the first user group.

22. The system according to claim 14 , wherein the programming instructions further comprise instructions to generate a combined list of software applications 1 by combining at least a portion of a list of software applications associated with a first group selected from the plurality of groups and at least a portion of a list of software applications associated with a second group selected from the plurality of groups, wherein the at least one machine learning algorithm determines the second weighting value for each software application in the combined list.

23. The system according to claim 14 , wherein an order in which the user-selectable icons are presented in the graphical user interface is dynamically modified on demand, on a periodic basis, or each time an application launcher is started.

Assignments (9)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 26, 2017
From: SWINDELL, EDWARD J.; GABRIEL, DUNCAN; ASHMAN, HENRY J.
To: CITRIX SYSTEMS, INC.
Reel/Frame 042153/0127 →
Continuity (1)
Related Publication 20180314972A1 · Nov 1, 2018
Cited By (1)
US 12,243,070