IP Library Granted Patent US 11,841,915
Granted Patent B2
US 11,841,915 · App. 16/804,644 · Granted Dec 12, 2023

Systems and methods for displaying contextually relevant links

Inventors: Siyuan Fan (Falls Church, VA); Jiande Yu (McLean, VA); Fang Niu (Fairfax, VA); Victor Hugo Pena (Falls Church, VA); Jose Manuel Nocedal De La Garza (Leesburg, VA); Raul De Leon (Vienna, VA)
Assignee: MICROSTRATEGY INCORPORATED
G06F16/9558G06F16/958G06F16/9535G06F16/9538H04L67/02
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,841,915
App. No.
16/804,644
Granted
Dec 12, 2023
Kind
B2
Abstract

Disclosed are methods, systems, and computer-readable medium for displaying contextually relevant links by a browser extension. For instance, the method may include: comparing terms of a set of terms with a content of a user interface to identify matching terms; in response to identifying matching terms, transmitting a query to a server, the query indicating the matching terms; receiving a response from the server, the response including one or more information cards for each of the matching terms; annotating instances of the identified matching terms on the user interface; in response to a user interaction with an annotated instance of an identified matching term, causing an information card to be displayed that corresponds to the identified matching term, the information card including a link element; determining whether a user input selects the link element; and in response to determining the user input selecting the link element, executing a link process.

Claims (206)

1. A method for displaying contextually relevant links by a browser extension, comprising:

receiving and examining content of a user interface of a browser, on a client device, on a recurring or ongoing basis;

comparing terms of a set of terms at a system database with terms in the content of the user interface to identify matching terms;

identifying a contextual term within the content of the user interface of the browser, the contextual term being different than the matching term;

identifying a semantic meaning of the contextual term based on at least one of the matching terms, the semantic meaning based on a semantic classification;

in response to identifying matching terms and the semantic meaning of the contextual term, transmitting a query to a server, the query comprising the matching terms and the semantic meaning of the contextual term;

receiving a response from the server, the response including one or more information cards for each of the matching terms, the one or more information cards including information based on the semantic meaning of the contextual term;

annotating instances of the identified matching terms on the user interface;

in response to a user interaction with an annotated instance of an identified matching term, causing an information card to be displayed that corresponds to the identified matching term, the information card including a link element;

determining whether a user input selects the link element; and

in response to determining the user input selecting 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 a web page or a web application on the browser, in accordance with the address information.

3. 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 a web page or a web application on the browser, in accordance with the address information,

wherein the executing the link launch process comprises:

extracting a text string from the address information; and

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

4. 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 a web page or a web application on the browser, in accordance with the address information,

wherein the executing the link launch process comprises:

extracting a text string from the address information; and

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

wherein the address information comprises a static or a dynamic link.

5. 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 a web page or a web application on the browser, in accordance with the address information,

wherein the executing the link launch process comprises:

extracting a text string from the address information; and

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

wherein the address information comprises a static or a dynamic link,

wherein the text string of the address information includes a base portion of the text string and/or one or more data elements of parameter portions of the text string.

6. 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 a web page or a web application on the browser, in accordance with the address information,

wherein the executing the link launch process comprises:

extracting a text string from the address information; and

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

wherein the address information comprises a static or a dynamic link,

wherein the text string of the address information includes a base portion of the text string and/or one or more data elements of parameter portions of the text string,

wherein the server generates the information card by:

selecting a template for the information card from among a plurality of templates that each specify a different content and format for the information card; and

generating the information card by populating the selected template with stored data from a database.

7. 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 a web page or a web application on the browser, in accordance with the address information,

wherein the executing the link launch process comprises:

extracting a text string from the address information; and

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

wherein the address information comprises a static or a dynamic link,

wherein the text string of the address information includes a base portion of the text string and/or one or more data elements of parameter portions of the text string,

wherein the server generates the information card by:

selecting a template for the information card from among a plurality of templates that each specify a different content and format for the information card; and

generating the information card by populating the selected template with stored data from a database,

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

retrieving the one or more data elements for the parameter portions from the database in accordance with one or more data element pointers, and

populating the one or more parameter portions to complete the text string.

8. A system for displaying contextually relevant links by a browser extension, the system comprising:

at least one memory storing instructions; and

at least one processor executing the instructions to perform operations, the operations including:

receiving and examining content of a user interface of a browser, on a client device, on a recurring or ongoing basis;

comparing terms of a set of terms at a system database with terms in the content of the user interface to identify matching terms;

identifying a contextual term within the content of the user interface of the browser, the contextual term being different than the matching term;

identifying a semantic meaning of the contextual term based on at least one of the matching terms, the semantic meaning based on a semantic classification;

in response to identifying matching terms and the semantic meaning of the contextual term, transmitting a query to a server, the query comprising the matching terms and the semantic meaning of the contextual term;

receiving a response from the server, the response including one or more information cards for each of the matching terms, the one or more information cards including information based on the semantic meaning of the contextual term;

annotating instances of the identified matching terms on the user interface;

in response to a user interaction with an annotated instance of an identified matching term, causing an information card to be displayed that corresponds to the identified matching term, the information card including a link element;

determining whether a user input selects the link element; and

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

9. The system of claim 8 , 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 a web page or a web application on the browser, in accordance with the address information.

10. The system of claim 8 ,

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 a web page or a web application on the browser, in accordance with the address information,

wherein the executing the link launch process comprises:

extracting a text string from the address information; and

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

11. The system of claim 8 ,

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 a web page or a web application on the browser, in accordance with the address information,

wherein the executing the link launch process comprises:

extracting a text string from the address information; and

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

wherein the address information comprises a static or a dynamic link.

12. The system of claim 8 ,

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 a web page or a web application on the browser, in accordance with the address information,

wherein the executing the link launch process comprises:

extracting a text string from the address information; and

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

wherein the address information comprises a static or a dynamic link,

wherein the text string of the address information includes a base portion of the text string and/or one or more data elements of parameter portions of the text string.

13. The system of claim 8 ,

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 a web page or a web application on the browser, in accordance with the address information,

wherein the executing the link launch process comprises:

extracting a text string from the address information; and

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

wherein the address information comprises a static or a dynamic link,

wherein the text string of the address information includes a base portion of the text string and/or one or more data elements of parameter portions of the text string,

wherein the server generates the information card by:

selecting a template for the information card from among a plurality of templates that each specify a different content and format for the information card; and

generating the information card by populating the selected template with stored data from a database.

14. The system of claim 8 ,

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 a web page or a web application on the browser, in accordance with the address information,

wherein the executing the link launch process comprises:

extracting a text string from the address information; and

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

wherein the address information comprises a static or a dynamic link,

wherein the text string of the address information includes a base portion of the text string and/or one or more data elements of parameter portions of the text string,

wherein the server generates the information card by:

selecting a template for the information card from among a plurality of templates that each specify a different content and format for the information card; and

generating the information card by populating the selected template with stored data from a database,

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

retrieving the one or more data elements for the parameter portions from the database in accordance with one or more data element pointers, and

populating the one or more parameter portions 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 by a browser extension, the operations comprising:

receiving and examining content of a user interface of a browser, on a client device, on a recurring or ongoing basis;

comparing terms of a set of terms at a system database with terms in the content of the user interface to identify matching terms;

identifying a contextual term within the content of the user interface of the browser, the contextual term being different than the matching term;

identifying a semantic meaning of the contextual term based on at least one of the matching terms, the semantic meaning based on a semantic classification;

in response to identifying matching terms and the semantic meaning of the contextual term, transmitting a query to a server, the query comprising the matching terms and the semantic meaning of the contextual term;

receiving a response from the server, the response including one or more information cards for each of the matching terms, the one or more information cards including information based on the semantic meaning of the contextual term;

annotating instances of the identified matching terms on the user interface;

in response to a user interaction with an annotated instance of an identified matching term, causing an information card to be displayed that corresponds to the identified matching term, the information card including a link element;

determining whether a user input selects the link element; and

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

16. The non-transitory computer-readable medium of claim 15 , 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 a web page or a web application on the browser, in accordance with the address information.

17. The non-transitory computer-readable medium of claim 15 ,

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 a web page or a web application on the browser, in accordance with the address information,

wherein the executing the link launch process comprises:

extracting a text string from the address information; and

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

18. The non-transitory computer-readable medium of claim 15 ,

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 a web page or a web application on the browser, in accordance with the address information,

wherein the executing the link launch process comprises:

extracting a text string from the address information; and

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

wherein the text string of the address information includes a base portion of the text string and/or one or more data elements of parameter portions of the text string.

19. The non-transitory computer-readable medium of claim 15 ,

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 a web page or a web application on the browser, in accordance with the address information,

wherein the executing the link launch process comprises:

extracting a text string from the address information; and

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

wherein the text string of the address information includes a base portion of the text string and/or one or more data elements of parameter portions of the text string,

wherein the server generates the information card by:

selecting a template for the information card from among a plurality of templates that each specify a different content and format for the information card; and

generating the information card by populating the selected template with stored data from a database.

20. The non-transitory computer-readable medium of claim 15 ,

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 a web page or a web application on the browser, in accordance with the address information,

wherein the executing the link launch process comprises:

extracting a text string from the address information; and

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

wherein the text string of the address information includes a base portion of the text string and/or one or more data elements of parameter portions of the text string,

wherein the server generates the information card by:

selecting a template for the information card from among a plurality of templates that each specify a different content and format for the information card; and

generating the information card by populating the selected template with stored data from a database,

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

retrieving the one or more data elements for the parameter portions from the database in accordance with one or more data element pointers, and

populating the one or more parameter portions to complete the text string.

21. The method of claim 1 , further comprising:

monitoring a user interaction with the one or more information cards; and

adapting at least one of the one or more information cards based on monitoring the user interaction with the one or more information cards.

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 2, 2020
From: FAN, SIYUAN; YU, JIANDE; NIU, FANG; PENA, VICTOR HUGO; NOCEDAL DE LA GARZA, JOSE MANUEL; DE LEON, RAUL
To: MICROSTRATEGY INCORPORATED
Reel/Frame 051980/0129 →