IP Library Granted Patent US 12664491
Granted Patent B2
US 12664491 · App. 18/419,185 · Granted Jun 23, 2026

Intelligent and personalized skill discovery

Inventors: PalaniRaj Kaliyaperumal (Redmond, WA); Kuralmani Elango (Bothell, WA); Aman Singhal (Issaquah, WA); Syed Adnan Ahmed (Sammamish, WA); Albert Michael Belton (Redmond, WA); Lily Xinchen Liu (Shoreline, WA); Julie Strauss (Olalla, WA)
Assignee: Micorsoft Technology Licensing, LLC
G06Q10/063112
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 12664491
App. No.
18/419,185
Granted
Jun 23, 2026
Kind
B2
Abstract

Systems and methods are provided for facilitating the discovery and presentations of skills and data processed by the skills within blocks of a canvas displayed to a user within a user interface. The systems also identify schemas and data output formats of the relevant skills, and a desired presentation schema based on the user contexts and the application contexts. The systems further identify modules for normalizing the schemas of the relevant skills to the desired presentation schema, and uses the identified modules to normalize data obtained from the relevant skills into the desired presentation schema for presentation within the blocks of the canvas.

Claims (52)

1 . A method implemented by a system for managing a discovery of relevant skills and data for a user, where the relevant skills and data are contextually relevant to the user, and for facilitating processing of the relevant skills and data for presentation within blocks of a canvas displayed to the user within a user interface, the method being performed by one or more processors of the system and comprising:

identifying a user context that includes a user profile and location;

identifying an application context that includes (i) a type of application used to instantiate a user interface comprising the canvas and (ii) one or more applications that are instantiated and used to generate data that is presented within the blocks of the canvas within the user interface;

identifying a set of total available skills accessible to the user through the system, wherein the set of total available skills includes at least one of: applications, data sources, or models;

selecting the relevant skills from the set of total available skills, wherein the relevant skills are ones that are configured to generate and/or process data for display within the blocks of the canvas, wherein the relevant skills are selected by filtering the set of total available skills based on the user context;

identifying skill schemas for data output formats of the relevant skills;

identifying a desired presentation schema for a desired data presentation format for display within the blocks of the canvas, the desired presentation schema being based on the user context and the application context;

identifying modules, which are implemented by the one or more processors of the system, for normalizing the skill schemas to the desired presentation schema;

using the identified modules to normalize data, which is obtained from the relevant skills and which is structured in accordance with the skill schemas, into the desired presentation schema for presentation within the blocks of the canvas;

modifying a functionality of a cursor of the system by:

determining that the cursor of the system is operating in a traditional cursor mode; and

in response to detection of a predetermined condition, causing the cursor to transition from operating in the traditional cursor mode to operating in an artificial intelligence (AI) mode, wherein:

when the cursor operates in the AI mode, additional functionality that was not previously available to the cursor while the cursor operated in the traditional cursor mode is provided to the cursor, and

the additional functionality is based on specific content that is included in the canvas and that the user is interacting with; and

detecting a use of the cursor, wherein the use triggers implementation of the additional functionality within the canvas.

2 . The method of claim 1 , wherein the method further includes inferring an inferred desired user action based on detecting a user input interacting with data presented within a particular block of the canvas as well as based at least in part on the user context and the application context.

3 . The method of claim 2 , wherein the method further includes, based on the inferred desired user action, determining whether to generate a new data block in the canvas with new data related to data contained within the particular block.

4 . The method of claim 3 , wherein the inferred desired user action comprises generating the new data block in the canvas with new data that is normalized by the identified modules for normalizing schemas of the relevant skills to the desired presentation schema.

5 . The method of claim 4 , wherein the method further includes the system generating the new data block in the canvas and displaying the new data block by replacing the particular block of the canvas with the new data block in the canvas.

6 . The method of claim 3 , wherein the method further includes the system generating the new data block in the canvas and displaying the new data block simultaneously with the particular block of the canvas.

7 . The method of claim 2 , wherein the method further comprises the system selecting a particular menu from a plurality of different menus based on the inferred desired user action, wherein different inferred desired user actions correspond to different menus, the particular menu including one or more interactive user interface elements that, when selected, cause the system to perform the inferred desired user action.

8 . The method of claim 1 , wherein the method further comprises the system displaying data obtained from the relevant skills in accordance with the desired presentation schema and within the blocks of the canvas, the canvas including at least two different blocks, each of the at least two different blocks including different data obtained from at least two different relevant skills, respectively.

9 . The method of claim 1 , wherein the modules for normalizing the skill schemas to the desired presentation schema comprise modules for translating data obtained from the relevant skills into a language of the desired presentation schema for presenting the data obtained from the relevant skills in the canvas.

10 . The method of claim 1 , wherein the modules for normalizing the skill schemas to the desired presentation schema comprise modules for modifying a font for data obtained from the relevant skills into a language of the desired presentation schema for presenting the data obtained from the relevant skills in the canvas.

11 . The method of claim 1 , wherein the modules for normalizing the skill schemas to the desired presentation schema comprise modules for converting data obtained from the relevant skills into a graph or chart format to be used by the desired presentation schema for presenting the data obtained from the relevant skills in the canvas.

12 . The method of claim 1 , wherein the user context further includes calendar information and a title or position associated with the user.

13 . The method of claim 1 , wherein the user context further includes authorizations and subscriptions associated with user accounts.

14 . The method of claim 1 , wherein the application context further includes an application state corresponding to one or more functionalities being invoked by the application.

15 . The method of claim 1 , wherein the application context further includes an application state corresponding to whether the application is being used in a group meeting implementation or, alternatively, an individual user implementation.

16 . The method of claim 1 , wherein the relevant skills comprise one or more applications and/or models configured to process data.

17 . The method of claim 1 , wherein the relevant skills comprise skills accessed from a source remote from the system.

18 . The method of claim 1 , wherein the relevant skills comprise skills stored locally within the system.

19 . A system comprising:

a processor system; and

a computer storage medium that stores computer-executable instructions that are executable by the processor system to cause the system to:

identify a user context that includes a user profile and location;

identify an application context that includes (i) a type of application used to instantiate a user interface comprising the canvas and (ii) one or more applications that are instantiated and used to generate data that is presented within the blocks of the canvas within the user interface;

identify a set of total available skills accessible to the user through the system, wherein the set of total available skills includes at least one of: applications, data source, or models;

select the relevant skills from the set of total available skills, wherein the relevant skills are ones that are configured to generate and/or process data for display within the blocks of the canvas, wherein the relevant skills are selected by filtering the set of total available skills based on the user context;

identify skill schemas for data output formats of the relevant skills;

identify a desired presentation schema for a desired data presentation format for display within the blocks of the canvas, the desired presentation schema being based on the user context and the application context;

identify modules, which are implemented by the processor system, for normalizing skill schemas to the desired presentation schema;

use the identified modules to normalize data, which is obtained from the relevant skills and which is structured in accordance with the skill schemas, into the desired presentation schema for presentation within the blocks of the canvas;

modify a functionality of a cursor of the system by:

determining that the cursor of the system is operating in a traditional cursor mode; and

in response to detection of a predetermined condition, causing the cursor to transition from operating in the traditional cursor mode to operating in an artificial intelligence (AI) mode, wherein:

when the cursor operates in the AI mode, additional functionality that was not previously available to the cursor while the cursor operated in the traditional cursor mode is provided to the cursor, and

the additional functionality is based on specific content that is included in the canvas and that the user is interacting with; and

detect a use of the cursor, wherein the use triggers implementation of the additional functionality within the canvas.

20 . The system of claim 19 , wherein the computer-executable instructions are further executable for causing the system to:

display data obtained from the relevant skills within the desired presentation schema within the blocks of the canvas, the canvas including at least two different blocks, each of the at least two different blocks including different data obtained from at least two different relevant skills, respectively, and

infer an inferred desired user action based on detecting a user input interacting with data presented within a particular block of the canvas as well as based at least in part on the user context and the application context.