IP Library Granted Patent US 11,620,472
Granted Patent B2
US 11,620,472 · App. 16/856,430 · Granted Apr 4, 2023

Unified people connector

Inventors: Samuel Christopher John Plant (Cambridge, GB); Nathan Alexander Burn (Cambridge, GB); John Matthew Dilley (Longstanton, GB); Ellen Rose Wootten (Bury St. Edmunds, GB); Nilpa Madhusudan Shah (Cambridge, GB)
Assignee: Citrix Systems, Inc.
G06K9/6256G06F9/542G06F16/24578G06F16/9535G06K9/6262G06N3/0445G06N20/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,620,472
App. No.
16/856,430
Filed
Apr 23, 2020
Granted
Apr 4, 2023
Kind
B2
Art Unit
2168
USPC
706/12
Abstract

Systems and methods for identifying individuals with a user-requested expertise are provided. For example, the system can include a processor configured to receive a user input and extract one or more keywords from the input. The processor can generate search requests based upon the one or more keywords, each search request identifying at least one application programming interface (API) call configured to invoke at least one API function as exposed by a software application. The processor can transmit the search requests to the software applications and receive search responses. The processor can determine a plurality of software application users and a set of associated evidence, each set of associated evidence including user interactions with each of the software applications. The processor can aggregate the evidence into an aggregated data set and configure the aggregated data set as an input to a machine learning classifier for ranking the sets of evidence.

Claims (105)

1. A computer system for identifying individuals with a user-requested expertise related to one or more software applications, the system comprising:

a memory;

a network interface; and

at least one processor coupled to the memory and the network interface and configured to

receive, via the network interface, a user input from a user,

extract one or more keywords from the user input,

generate one or more search requests based upon the one or more keywords, each search request of the one or more search requests identifying at least one application programming interface (API) call configured to invoke at least one API function as exposed by a software application of the one or more software applications,

transmit the one or more search requests to the one or more software applications,

receive one or more search responses from the one or more software applications,

determine, from the one or more search responses, a plurality of software application users and a set of evidence associated with each software application user of the plurality of software application users, each set of evidence including a listing of user interactions with each of the one or more software applications,

aggregate the sets of evidence into an aggregated data set,

configure the aggregated data set as an input to a machine learning classifier,

input a set of initial evidence weightings into the machine learning classifier to generate a trained classifier, the set of initial evidence weightings comprising at least one weight parameter for the set of evidence,

input the aggregated data set into the trained classifier, and

receive a ranked listing of the plurality of software application users from the trained classifier, the ranked listing generated by the trained classifier based upon the aggregated data set.

2. The computer system of claim 1 , wherein the at least one processor is further configured to:

process the ranked listing to produce a personalized response to the user input; and

transmit, via the network interface, the personalized response to the user.

3. The computer system of claim 2 , wherein the at least one processor is further configured to:

receive user feedback from the user regarding the personalized response, the user feedback comprising a user feedback score of one or more of the plurality of software application users included in the personalized response;

generate an updated set of evidence weightings based upon the user feedback; and

store the updated set of evidence weightings.

4. The computer system of claim 3 , wherein the at least one processor is further configured to:

receive an updated user input from the user;

generate an updated aggregated data set based upon the updated user input;

input the updated set of evidence weightings into the trained classifier to generate a retrained classifier;

input the updated aggregated data set into the retrained classifier; and

receive an updated ranked listing of the plurality of software application users from the retrained classifier, the updated ranked listing generated by the retrained classifier based upon the updated aggregated data set.

5. The computer system of claim 2 , wherein the at least one processor is further configured to:

monitor user telemetry data indicative of one or more interactions between the user and the personalized response;

generate an updated set of evidence weightings based upon the user telemetry data; and

store the updated set of evidence weightings.

6. The computer system of claim 5 , wherein the at least one processor is further configured to:

receive an updated user input from the user;

generate an updated aggregated data set based upon the updated user input;

input the updated aggregated data set and the updated set of evidence weightings into the trained classifier; and

receive an updated ranked listing of the plurality of software application users from the trained classifier, the updated ranked listing generated by the trained classifier based upon the updated aggregated data set and the updated set of evidence weightings.

7. The computer system of claim 1 , wherein each of the listing of user interactions includes information related to the one or more keywords.

8. The computer system of claim 1 , wherein the one or more software applications comprise at least one of an email application, a chat application, a messaging application, a community forum application, a code generation and/or review application, an accounting application, and a word processing application.

9. A method of identifying individuals with a user-requested expertise related to one or more software applications, the method comprising:

receiving, by at least one processor, a user input from a user;

extracting, by the at least one processor, one or more keywords from the user input;

generating, by the at least one processor, one or more search requests based upon the one or more keywords, each search request of the one or more search requests identifying at least one application programming interface (API) call configured to invoke at least one API function as exposed by a software application of the one or more software applications;

transmitting, by the at least one processor, the one or more search requests to the one or more software applications;

receiving, by the at least one processor, one or more search responses from the one or more software applications;

determining, by the at least one processor, a plurality of software application users and a set of evidence associated with each software application user of the plurality of software application users from the one or more search responses, each set of evidence including a listing of user interactions with each of the one or more software applications;

aggregating, by the at least one processor, the sets of evidence into an aggregated data set;

configuring, by the at least one processor, the aggregated data set as an input to a machine learning classifier;

inputting, by the at least one processor, a set of initial evidence weightings into the machine learning classifier to generate a trained classifier, the set of initial evidence weightings comprising at least one weight parameter for the set of evidence,

inputting, by the at least one processor, the aggregated data set into the trained classifier; and

receiving, by the at least one processor, a ranked listing of the plurality of software application users from the trained classifier, the ranked listing generated by the trained classifier based upon the aggregated data set.

10. The method of claim 9 , further comprising:

processing, by the at least one processor, the ranked listing to produce a personalized response to the user input; and

transmitting, by the at least one processor, the personalized response to the user.

11. The method of claim 10 , further comprising:

receiving, by the at least one processor, user feedback from the user regarding the personalized response, the user feedback comprising a user feedback score of one or more of the plurality of software application users included in the personalized response;

generating, by the at least one processor, an updated set of evidence weightings based upon the user feedback;

inputting, by the at least one processor, the updated set of evidence weightings into the trained classifier to generate a retrained classifier;

receiving, by the at least one processor, an updated user input from the user;

generating, by the at least one processor, an updated aggregated data set based upon the updated user input;

inputting, by the at least one processor, the updated aggregated data set into the retrained classifier; and

receiving, by the at least one processor, an updated ranked listing of the plurality of software application users from the retrained classifier, the updated ranked listing generated by the retrained classifier based upon the updated aggregated data set.

12. The method of claim 10 , further comprising:

monitoring, by the at least one processor, user telemetry data indicative of one or more interactions between the user and the personalized response;

generating, by the at least one processor, an updated set of evidence weightings based upon the user telemetry data;

storing, by the at least one processor, the updated set of evidence weightings;

receiving, by the at least one processor, an updated user input from the user;

generating, by the at least one processor, an updated aggregated data set based upon the updated user input;

inputting, by the at least one processor, the updated aggregated data set and the updated set of evidence weightings into the trained classifier; and

receiving, by the at least one processor, an updated ranked listing of the plurality of software application users from the trained classifier, the updated ranked listing generated by the trained classifier based upon the updated aggregated data set and the updated set of evidence weightings.

13. The method of claim 9 , wherein each of the listing of user interactions includes information related to the one or more keywords.

14. A non-transitory computer readable medium storing computer executable instructions to identify individuals with a user-requested expertise related to one or more software applications, the computer executable instructions comprising instructions to:

receive a user input from a user;

extract one or more keywords from the user input;

generate one or more search requests based upon the one or more keywords, each search request of the one or more search requests identifying at least one application programming interface (API) call configured to invoke at least one API function as exposed by a software application of the one or more software applications;

transmit the one or more search requests to the one or more software applications;

receive one or more search responses from the one or more software applications;

determine, from the one or more search responses, a plurality of software application users and a set of evidence associated with each software application user of the plurality of software application users, each set of evidence including a listing of user interactions with each of the one or more software applications;

aggregate the sets of evidence into an aggregated data set; configure the aggregated data set as an input to a machine learning classifier;

input a set of initial evidence weightings to the machine learning classifier to generate a trained classifier, the set of initial evidence weightings comprising at least one weight parameter for the set of evidence,

input the aggregated data set into the trained classifier; and

receive a ranked listing of the plurality of software application users from the trained classifier, the ranked listing generated by the trained classifier based upon the aggregated data set.

15. The computer readable medium of claim 14 , wherein the instructions further comprise instructions to:

process the ranked listing to produce a personalized response to the user input; and

transmit the personalized response to the user.

16. The computer readable medium of claim 15 , wherein the instructions further comprise instructions to:

receive user feedback from the user regarding the personalized response, the user feedback comprising a user feedback score of one or more of the plurality of software application users included in the personalized response;

generate an updated set of evidence weightings based upon the user feedback;

input the updated set of evidence weightings into the trained classifier to generate a retrained classifier;

receive an updated user input from the user;

generate an updated aggregated data set based upon the updated user input;

input the updated aggregated data set into the retrained classifier; and

receive an updated ranked listing of the plurality of software application users from the retrained classifier, the updated ranked listing generated by the retrained classifier based upon the updated aggregated data set.

17. The computer readable medium of claim 15 , wherein the instructions further comprise instructions to:

monitor user telemetry data indicative of one or more interactions between the user and the personalized response;

generate an updated set of evidence weightings based upon the user telemetry data;

store the updated set of evidence weightings;

receive an updated user input from the user;

generate an updated aggregated data set based upon the updated user input;

input the updated aggregated data set and the updated set of evidence weightings into the trained classifier; and

receive an updated ranked listing of the plurality of software application users from the trained classifier, the updated ranked listing generated by the trained classifier based upon the updated aggregated data set and the updated set of evidence weightings.

18. The computer readable medium of claim 14 , wherein each of the listing of user interactions includes information related to the one or more keywords.

19. The computer readable medium of claim 14 , wherein the set of initial evidence weightings is selected based upon the one or more keywords.

20. The computer system of claim 1 , wherein the set of initial evidence weightings is selected based upon the one or more keywords.

21. The method of claim 9 , further comprising selecting the set of initial evidence weightings based upon the one or more keywords.

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: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
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 →
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 Aug 18, 2020
From: PLANT, SAMUEL CHRISTOPHER JOHN; BURN, NATHAN ALEXANDER; DILLEY, JOHN MATTHEW; WOOTTEN, ELLEN ROSE; SHAH, NILPA MADHUSUDAN
To: CITRIX SYSTEMS, INC.
Reel/Frame 053526/0563 →