IP Library Granted Patent US 11,531,723
Granted Patent B2
US 11,531,723 · App. 17/503,618 · Granted Dec 20, 2022

Dynamic contextual library

Inventors: Siamak Ziraknejad (Reston, VA); Jiao Xu (Oakton, VA); Boyu Li (Herndon, VA); Quan Jia (Oakton, VA); Saurabh Abhyankar (McLean, VA); Timothy Lang (Vienna, VA)
Assignee: MicroStrategy Incorporated
G06F16/9577G06F3/0482G06F16/9566G06F16/94
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,531,723
App. No.
17/503,618
Granted
Dec 20, 2022
Kind
B2
Abstract

Methods, systems, and apparatus, including computer programs stored on a computer storage medium, for providing a dynamic contextual library. In some implementations, an interactive element is provided for display in a user interface. Context data that indicates a context of one or more computers is generated. Document data indicating a subset of documents from a document collection associated with a user is obtained, with the subset of documents being selected from the document collection based on the context data. After obtaining the data indicating the subset of documents, data indicating user interaction with the interactive element is received. Data identifying the subset of documents for display is provided in response to receiving the data indicating user interaction with the interactive element.

Claims (63)

1. A method comprising:

providing, by one or more computing devices, an interactive element for display in a user interface of a web browser running on the one or more computing devices;

generating, by one or more computing devices, context data that indicates a context of the one or more computing devices, the context data indicating a uniform resource locator (URL) for a resource displayed in the web browser;

obtaining, by one or more computing devices, document data indicating a subset of documents from a document collection associated with a user of the one or more computing devices, the subset of documents being selected from the document collection based on the URL indicated by the context data, wherein a first document is included in the subset based on (i) a stored mapping of the first document to a particular Internet domain, wherein the stored mapping designates the first document to be recommended when any of multiple resources in the particular Internet domain are displayed, and (ii) a determination that the resource displayed in the web browser is a web page in the particular Internet domain;

after obtaining the data indicating the subset of documents and before displaying identifying information for the subset of documents selected based on the URL, receiving, by one or more computing devices, data indicating user interaction with the interactive element; and

in response to receiving the data indicating user interaction with the interactive element, providing, by one or more computing devices, data identifying the subset of documents for display.

2. The method of claim 1 , comprising detecting that the web browser changed from presenting a first document with a first URL to presenting a second document with a second URL;

wherein generating the context data and obtaining the data indicating a subset of documents are performed in response to detecting that the web browser changed from presenting the first document with the first URL to presenting the second document with the second URL.

3. The method of claim 1 , wherein providing the data identifying the subset of documents for display comprises displaying an information panel overlay on the user interface, the information panel overlay identifying the documents subset of documents and including one or more interactive elements configured to receive user input to initiate opening of one or more of the documents in the subset of documents.

4. The method of claim 1 , comprising, after providing the interactive control for display, repeating a series of operations that includes:

detecting a change in the context of the one or more computing devices;

generating updated context data indicating the changed context of the one or more computing devices; and

obtaining, based on the updated context data, updated document data indicating an updated subset of documents selected from the document collection.

5. The method of claim 1 , comprising determining an identifier for the user;

wherein obtaining the document data comprises obtaining document data indicating a subset selected from a personalized document collection for the user that is identified based on the identifier for the user, wherein the personalized document collection is a set of documents that the user has previously accessed.

6. The method of claim 1 , wherein obtaining the document data indicating the subset of documents from the document collection associated with the user comprises:

providing the context data to a server system over a communication network; and

receiving the document data from the server system over the communication network in response to providing the context data.

7. The method of claim 6 , comprising:

in response to providing the context data, receiving document content for at least a particular document in the subset of documents;

caching the document content at the one or more computing devices;

after providing the data identifying the subset of documents for display, receiving data indicating interaction with an interface element for the particular document; and

in response to receiving the data indicating interaction with the interface element for the particular document, using the cached document content to display a representation of the particular document.

8. The method of claim 1 , wherein obtaining the document data indicating the subset of documents from the document collection associated with the user comprises selecting, by the one or more computing devices, a subset of the documents using an index of the documents in the document collection stored by the one or more computing devices.

9. The method of claim 1 , wherein generating the context data comprises generating data indicating that document content of a document displayed in the user interface comprises one or more keywords from a predetermined set of keywords;

wherein obtaining the document data indicating the subset of documents from the document collection associated with the user comprises obtaining, based on the context data, data indicating a subset of documents, from the document collection, that include or are associated with the one or more keywords included in the user interface.

10. One or more non-transitory computer-readable media storing instructions that are operable, when executed by one or more computing devices, to cause the one or more computing devices to perform operations comprising:

providing, by the one or more computing devices, an interactive element for display in a user interface of a web browser running on the one or more computing devices;

generating, by one or more computing devices, context data that indicates a context of the one or more computing devices, the context data indicating a uniform resource locator (URL) for a resource displayed in the web browser;

obtaining, by one or more computing devices, document data indicating a subset of documents from a document collection associated with a user of the one or more computing devices, the subset of documents being selected from the document collection based on the URL indicated by the context data, wherein a first document is included in the subset based on (i) a stored mapping of the first document to a particular Internet domain, wherein the stored mapping designates the first document to be recommended when any of multiple resources in the particular Internet domain are displayed, and (ii) a determination that the resource displayed in the web browser is a web page in the particular Internet domain;

after obtaining the data indicating the subset of documents and before displaying identifying information for the subset of documents selected based on the URL, receiving, by one or more computing devices, data indicating user interaction with the interactive element; and

in response to receiving the data indicating user interaction with the interactive element, providing, by one or more computing devices, data identifying the subset of documents for display.

11. A method comprising:

providing, by one or more computing devices, an interactive element for display in a user interface of a web browser running on the one or more computing devices;

generating, by one or more computing devices, context data that indicates a context of the one or more computing devices, the context data indicating a particular keyword occurring in a resource displayed in the web browser;

obtaining, by one or more computing devices, document data indicating a subset of documents from a document collection associated with a user of the one or more computing devices, the subset of documents being selected from the document collection based on stored mappings between specific keywords and specific documents designated to correspond to the specific keywords, wherein the subset includes at least a first document selected based on (i) the context data indicating that the particular keyword occurs in the resource displayed in the web browser, and (ii) the stored mappings mapping the particular keyword to the first document;

after obtaining the data indicating the subset of documents and before displaying identifying information for the subset of documents, receiving, by one or more computing devices, data indicating user interaction with the interactive element; and

in response to receiving the data indicating user interaction with the interactive element, providing, by one or more computing devices, data identifying the subset of documents for display.

12. The method of claim 11 , comprising detecting that the web browser changed from presenting a first document with a first URL to presenting a second document with a second URL;

wherein generating the context data and obtaining the data indicating a subset of documents are performed in response to detecting that the web browser changed from presenting the first document with the first URL to presenting the second document with the second URL.

13. The method of claim 11 , wherein providing the data identifying the subset of documents for display comprises displaying an information panel overlay on the user interface, the information panel overlay identifying the documents subset of documents and including one or more interactive elements configured to receive user input to initiate opening of one or more of the documents in the subset of documents.

14. The method of claim 11 , comprising, after providing the interactive control for display, repeating a series of operations that includes:

detecting a change in the context of the one or more computing devices;

generating updated context data indicating the changed context of the one or more computing devices; and

obtaining, based on the updated context data, updated document data indicating an updated subset of documents selected from the document collection.

15. The method of claim 11 , comprising determining an identifier for the user;

wherein obtaining the document data comprises obtaining document data indicating a subset selected from a personalized document collection for the user that is identified based on the identifier for the user, wherein the personalized document collection is a set of documents that the user has previously accessed.

16. The method of claim 11 , wherein obtaining the document data indicating the subset of documents from the document collection associated with the user comprises:

providing the context data to a server system over a communication network; and

receiving the document data from the server system over the communication network in response to providing the context data.

17. The method of claim 16 , comprising:

in response to providing the context data, receiving document content for at least a particular document in the subset of documents;

caching the document content at the one or more computing devices;

after providing the data identifying the subset of documents for display, receiving data indicating interaction with an interface element for the particular document; and

in response to receiving the data indicating interaction with the interface element for the particular document, using the cached document content to display a representation of the particular document.

18. The method of claim 11 , wherein obtaining the document data indicating the subset of documents from the document collection associated with the user comprises selecting, by the one or more computing devices, a subset of the documents using an index of the documents in the document collection stored by the one or more computing devices.

19. The method of claim 11 , wherein generating the context data comprises generating data indicating that document content of a document displayed in the user interface comprises one or more keywords from a predetermined set of keywords; and

wherein obtaining the document data indicating the subset of documents from the document collection associated with the user comprises obtaining, based on the context data, data indicating a subset of documents, from the document collection, that include or are associated with the one or more keywords included in the user interface.

20. The method of claim 11 , wherein obtaining the document data indicating the subset of documents from the document collection associated with the user comprises obtaining data indicating documents selected based on at least one of:

output of one or more machine learning models generated in response to receiving the context data as input;

previous document accesses by the user or other users;

determining that one or more terms in the user interface are included in one or more documents in the document collection; or

determining that the user interface is associated with a particular topic and that one or more documents in the document collection are associated with the particular topic.

Assignments (4)
CHANGE OF NAME Recorded Sep 19, 2025
From: MICROSTRATEGY INCORPORATED
To: STRATEGY INC
Reel/Frame 072910/0511 →
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 →
SUPPLEMENTARY PATENT SECURITY AGREEMENT Recorded Feb 18, 2022
From: MICROSTRATEGY INCORPORATED; MICROSTRATEGY SERVICES CORPORATION
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 059256/0247 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 19, 2021
From: ZIRAKNEJAD, SIAMAK; XU, JIAO; LI, BOYU; JIA, QUAN; ABHYANKAR, SAURABH; LANG, TIMOTHY
To: MICROSTRATEGY INCORPORATED
Reel/Frame 057833/0529 →
Continuity (3)
Continuation 16691989 · Nov 22, 2019
Provisional Application 62792740 · Jan 15, 2019
Related Publication 20220035887A1 · Feb 3, 2022