IP Library Granted Patent US 12,032,644
Granted Patent B2
US 12,032,644 · App. 16/804,575 · Granted Jul 9, 2024

Systems and methods for displaying contextually relevant links

Inventors: Nida Imtiaz (Vienna, VA); Victor Hugo Pena (Falls Church, VA); Hui Yuan (Fairfax, VA); Jiande Yu (McLean, VA); Sunit Vijayvargiya (Arlington, VA)
Assignee: MicroStrategy Incorporated
G06F16/9566G06F16/90344G06F16/9558
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 12,032,644
App. No.
16/804,575
Granted
Jul 9, 2024
Kind
B2
Abstract

Methods, systems, and apparatus, including computer programs stored on computer-readable media, for providing contextually relevant database content and display contextually relevant links. Techniques are described for monitoring conditions of a computing device and detecting when database content is relevant to a current context of the computing device. In some implementations, a first computing device is monitored to detect actions of the first computing device that involve calendar data for a user. In response, a determination that text corresponding to the calendar appointment includes a term associated with a particular entity is made. Data for a user information card including information related to the particular entity is obtained. The first computing device is then caused to display the user information card or an interactive control configured to initiate display of the user information card with a link element that launches an application or a web page.

Claims (96)

1. A method for displaying contextually relevant links, the method comprising:

receiving calendar data from a calendar database, the calendar data associated with an upcoming calendar event;

monitoring to detect a keyword, from a database of keywords, in the calendar data;

in response to detecting the keyword, identifying a particular company associated with the detected keyword;

obtaining usage data collected by an operating system of a client device;

determining, based on the collected usage data, a predicted time when a user will access, using a user interface, a term relevant to the particular company;

determining an access privilege, associated with the company, that is assigned to the user;

in response to determining the predicted time, obtaining data for an information card based on the calendar data, the particular company, and the access privilege assigned to the user, from an entity database associated with the company, including information related to the particular company and a link element, the link element comprising a static portion and a dynamic portion, wherein the dynamic portion of the link element is specific to the particular company;

displaying, at the predicted time, the information card or an interactive control configured to initiate display of the information card;

when the information card is displayed, displaying the link element in the information card;

determining that a user input of the user selects the link element; and

in response to determining the user input selects the link element, executing a link process.

2. The method of claim 1 , wherein the executing the link process includes:

obtaining link information from the information card;

extracting address information from the link information; and

executing a link launch process to launch an application on the client device or launch a web page on the client device, in accordance with the address information.

3. The method of claim 2 , wherein the executing the link launch process comprises: extracting a text string form the address information; and performing one of:

executing the text string as a uniform resource locator (URL) in a web browser of the client device to access a web page corresponding to the URL, or

executing the text string as a file path to open the application on the client device.

4. The method of claim 3 , wherein the address information comprises a static or a dynamic link.

5. The method of claim 4 , wherein, when the address information comprises the static link, the link launch process opens the application on the client device, opens the web page in the web browser, or opens a download application to download the application.

6. The method of claim 4 , wherein the text string of the address information includes a data element of a parameter portion of the text string, and further comprising:

upon determining that the address information is for the dynamic portion of the link, opening, by the link launch process, the application to a particular feature or function of the application corresponding to the data element of the parameter portion of the address information;

opening the web page in the web browser to a particular resource corresponding to the data element of the parameter portion of the address information;

opening a download application to download the application and opening the application after the application has been downloaded to the particular feature or function of the application; or

executing a search using the data element of the parameter portion of the address information in the web page, a search web page of a search engine, or a search engine application.

7. The method of claim 6 , wherein the obtaining the data for the information card includes transmitting a card request to a server,

wherein the server, upon receiving the card request:

selects a template for the information card, from a card database, from among a plurality of templates that each specify a different format for the information card, wherein the template is selected based on the calendar data and the particular entity;

generates the information card based on stored data in a source database for the information card including information related to the particular entity and the template selected for the information card; and

transmits the generated information card to the client device; and

wherein the server generates the address information for the information card by:

retrieving the data element from the source database in accordance with a data element pointer, and

populating the parameter portion to complete the text string.

8. A client device for displaying contextually relevant links, the client device comprising:

at least one memory storing instructions; and

at least one processor executing the instructions to perform operations comprising:

receiving calendar data from a calendar database, the calendar data associated with an upcoming calendar event;

monitoring to detect a keyword, from a database of keywords, in the calendar data;

in response to detecting the keyword, identifying a particular company associated with the detected keyword;

obtaining usage data collected by an operating system of a client device;

determining, based on the collected usage data, a predicted time when a user will access, using a user interface, a term relevant to the particular company;

determining an access privilege, associated with the company, that is assigned to the user;

in response to determining the predicted time, obtaining data for an information card based on the calendar data, the particular company, and the access privilege assigned to the user, from an entity database associated with the company, including information related to the particular company and a link element, the link element comprising a static portion and a dynamic portion, wherein the dynamic portion of the link element is specific to the particular company;

displaying, at the predicted time, the information card or an interactive control configured to initiate display of the information card;

when the information card is displayed, displaying the link element in the information card;

determining that a user input of the user selects the link element; and

in response to determining the user input selects the link element, executing a link process.

9. The client device of claim 8 , wherein the operations further comprise, to execute the link process:

obtaining link information from the information card;

extracting address information from the link information; and

executing a link launch process to launch an application on the client device or launch a web page on the client device, in accordance with the address information.

10. The client device of claim 9 , wherein the operations further comprise, to execute the link launch process: extracting a text string form the address information; and performing one of:

executing the text string as a uniform resource locator (URL) in a web browser of the client device to access a web page corresponding to the URL, or

executing the text string as a file path to open the application on the client device.

11. The client device of claim 10 , wherein the address information comprises a static or a dynamic link.

12. The client device of claim 11 , wherein, when the address information comprises the static link, the link launch process opens the application on the client device, opens the web page in the web browser, or opens a download application to download the application.

13. The client device of claim 11 , wherein the text string of the address information includes a data element of a parameter portion of the text string, and the process further comprises:

upon determining that the address information is for the dynamic portion of the link, opening, by the link launch process, the application to a particular feature or function of the application corresponding to the data element of the parameter portion of the address information;

opening the web page in the web browser to a particular resource corresponding to the data element of the parameter portion of the address information;

opening a download application to download the application and opening the application after the application has been downloaded to the particular feature or function of the application; or

executing a search using the data element of the parameter portion of the address information in the web page, a search web page of a search engine, or a search engine application.

14. The client device of claim 13 , wherein the operations further comprise, to obtain the data for the information card, transmitting a card request to a server,

wherein the server, upon receiving the card request:

selects a template for the information card, from a card database, from among a plurality of templates that each specify a different format for the information card, wherein the template is selected based on the calendar data and the particular entity;

generates the information card based on stored data in a source database for the information card including information related to the particular entity and the template selected for the information card; and

transmits the generated information card to the client device; and

wherein the server generates the address information for the information card by:

retrieving the data element from the source database in accordance with a data element pointer, and

populating the parameter portion to complete the text string.

15. A non-transitory computer-readable medium storing instructions that, when executed by a processor, cause the processor to perform operations for displaying contextually relevant links, the operations comprising:

receiving calendar data from a calendar database, the calendar data associated with an upcoming calendar event;

monitoring to detect a keyword, from a database of keywords, in the calendar data;

in response to detecting the keyword, identifying a particular company associated with the detected keyword;

obtaining usage data collected by an operating system of a client device;

determining, based on the collected usage data, a predicted time when a user will access, using a user interface, a term relevant to the particular company;

determining an access privilege, associated with the company, that is assigned to the user;

in response to determining the predicted time, obtaining data for an information card based on the calendar data, the particular company, and the access privilege assigned to the user, from an entity database associated with the company, including information related to the particular company and a link element, the link element comprising a static portion and a dynamic portion, wherein the dynamic portion of the link element is specific to the particular company;

displaying, at the predicted time, the information card or an interactive control configured to initiate display of the information card;

when the information card is displayed, displaying the link element in the information card;

determining that a user input of the user selects the link element; and

in response to determining the user input selects the link element, executing a link process.

16. The non-transitory computer-readable medium of claim 15 , wherein the executing the link process further comprises:

obtaining link information from the information card;

extracting address information from the link information; and

executing a link launch process to launch an application on the client device or launch a web page on the client device, in accordance with the address information.

17. The non-transitory computer-readable medium of claim 16 , wherein the executing the link launch process comprises: extracting a text string form the address information; and performing one of:

executing the text string as a uniform resource locator (URL) in a web browser of the client device to access a web page corresponding to the URL, or

executing the text string as a file path to open the application on the client device.

18. The non-transitory computer-readable medium of claim 17 , wherein the address information comprises a static or a dynamic link.

19. The non-transitory computer-readable medium of claim 18 , wherein, when the address information comprises the static link, the link launch process opens the application on the client device, opens the web page in the web browser, or opens a download application to download the application.

20. The non-transitory computer-readable medium of claim 18 , wherein the text string of the address information includes a data element of a parameter portion of the text string, and further comprising:

upon determining that the address information is for the dynamic portion of the link, opening, by the link launch process, the application to a particular feature or function of the application corresponding to the data element of the parameter portion of the address information;

opening the web page in the web browser to a particular resource corresponding to the data element of the parameter portion of the address information;

opening a download application to download the application and opening the application after the application has been downloaded to the particular feature or function of the application; or

executing a search using the data element of the parameter portion of the address information in the web page, a search web page of a search engine, or a search engine application.

Assignments (4)
CHANGE OF NAME Recorded Aug 19, 2025
From: MICROSTRATEGY INCOPORATED
To: STRATEGY INC
Reel/Frame 072513/0437 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT REEL/FRAME: 056647/0687, REEL/FRAME: 057435/0023, REEL/FRAME: 059256/0247, REEL/FRAME: 062794/0255 AND REEL/FRAME: 066663/0713 Recorded Sep 26, 2024
From: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION, AS SUCCESSOR IN INTEREST TO U.S. BANK NATIONAL ASSOCIATION, IN ITS CAPACITY AS COLLATERAL AGENT FOR THE SECURED PARTIES
To: MICROSTRATEGY INCORPORATED; MICROSTRATEGY SERVICES CORPORATION
Reel/Frame 069065/0539 →
SECURITY INTEREST Recorded Jun 22, 2021
From: MICROSTRATEGY INCORPORATED
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 056647/0687 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 13, 2020
From: IMTIAZ, NIDA; PENA, VICTOR HUGO; YUAN, HUI; YU, JIANDE; VIJAYVARGIYA, SUNIT
To: MICROSTRATEGY INCORPORATED
Reel/Frame 052110/0004 →