IP Library Granted Patent US 12,079,643
Granted Patent B2
US 12,079,643 · App. 17/961,368 · Granted Sep 3, 2024

Inline and contextual delivery of database content

Inventors: Siamak Ziraknejad (Reston, VA); Jiao Xu (Oakton, VA); Boyu Li (Herndon, VA); Quan Jia (Oakton, VA); Saurabh Abhyankar (McLean, VA); Raul de Leon (Vienna, VA); Timothy Lang (McLean, VA)
Assignee: MicroStrategy Incorporated
G06F9/451G06F3/04842G06F16/24575G06F16/248G06F16/9558G06F21/62G06F40/205G06F40/295H04L67/60G06F3/0481H04L67/01H04L67/306
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,079,643
App. No.
17/961,368
Granted
Sep 3, 2024
Kind
B2
Abstract

Methods, systems, and apparatus, including computer programs stored on computer-readable media, for inline and contextual delivery of content, which may include content selectively determined using private database content. In some implementations, interface data indicating text of a user interface of a electronic device is obtained. A particular term in the text of the user interface of the electronic device is determined to satisfy one or more criteria. Based on determining that the particular term satisfies the one or more criteria, the particular term is annotated to alter the appearance of the particular term in the user interface. After annotating the particular term, user interaction with the annotated term is detected and a card is provided for display in the user interface. The card can include information that corresponds to the term and that was determined using content from a private database for an organization of the user.

Claims (60)

1. A method performed by one or more computers, the method comprising:

storing, by the one or more computers, records that specify a set of terms and records that indicate entities corresponding to the respective terms;

receiving, by the one or more computers, a message from a client device over a communication network, wherein the message is sent in response to a determination that a particular term from the set of terms occurs in text of a user interface of the client device, and wherein the message from the client device indicates the particular term from the set of terms that is determined to occur in the text of the user interface of the client device;

in response to receiving the message from the client device:

using, by the one or more computers, the stored records to identify a particular entity corresponding to the particular term indicated in the message from the client device;

identifying, by the one or more computers, one or more attributes of the particular entity using a semantic graph, wherein identifying the one or more attributes of the particular entity comprises:

determining, using the semantic graph, an entity type of the particular entity;

selecting, from among information card templates for different entity types, an information card template for the determined entity type, wherein the selected information card template specifies a predetermined subset of attributes of entities of the determined entity type; and

identifying the predetermined subset of attributes specified by the selected information card template as the one or more attributes; and

retrieving, by the one or more computers, values for the one or more attributes of the particular entity from a database, including retrieving a value for each of the attributes in the predetermined subset of attributes; and

responding, by the one or more computers, to the message from the client device by sending a response message to the client device over the communication network, wherein the response message identifies the one or more attributes of the particular entity and includes the retrieved values for the one or more attributes of the particular entity, wherein the response message includes the retrieved values for the attributes in the predetermined subset of attributes.

2. The method of claim 1 , wherein sending the response message to the client device comprises providing information card data defining an information card to be presented by the client device in response to user interaction with the particular term, wherein the information card data is provided to the client device over the network before a user of the client device interacts with the particular term in the user interface of the client device.

3. The method of claim 1 , further comprising providing the set of terms to the client device over the communication network; and

wherein receiving the message comprises receiving a message sent by the client device in response to the client device determining that the particular term from the set of terms is included in the text of the user interface of the client device.

4. The method of claim 1 , wherein the message from the client device indicates keywords included in the text of the user interface of the client device in addition to the particular term; and

wherein the method includes selecting, from among keywords in the user interface, which a subset of the keywords that are relevant to the entity based on information in the semantic graph.

5. The method of claim 1 , wherein the message from the client device indicates keywords included in the text of the user interface of the client device in addition to the particular term;

wherein the keywords indicate a time period or geographical location referenced in the text of the user interface; and

wherein the method includes creating an aggregation of data about the particular entity for the time period or geographical location indicated by the keywords, and wherein the response message to the client device includes one or more values determined based on the aggregation.

6. The method of claim 1 , further comprising identifying a user of the client device; and

wherein the response message to the client device has a set of values describing the particular entity, wherein the set of values is customized based on the identified user of the client device.

7. The method of claim 1 , further comprising identifying a user of the client device; and

wherein the response message to the client device has a set of values describing the particular entity, wherein the set of values is customized based on a history of one or more prior interactions of the user of the client device with annotated terms or information cards presented to the user.

8. A system comprising:

one or more computers; and

one or more computer-readable media storing instructions that are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising:

storing, by the one or more computers, records that specify a set of terms and records that indicate entities corresponding to the respective terms;

receiving, by the one or more computers, a message from a client device over a communication network, wherein the message is sent in response to a determination that a particular term from the set of terms occurs in text of a user interface of the client device, and wherein the message from the client device indicates the particular term from the set of terms that is determined to occur in the text of the user interface of the client device;

in response to receiving the message from the client device:

using, by the one or more computers, the stored records to identify a particular entity corresponding to the particular term indicated in the message from the client device;

identifying, by the one or more computers, one or more attributes of the particular entity using a semantic graph, wherein identifying the one or more attributes of the particular entity comprises:

determining, using the semantic graph, an entity type of the particular entity;

selecting, from among information card templates for different entity types, an information card template for the determined entity type, wherein the selected information card template specifies a predetermined subset of attributes of entities of the determined entity type; and

identifying the predetermined subset of attributes specified by the selected information card template as the one or more attributes; and

retrieving, by the one or more computers, values for the one or more attributes of the particular entity from a database, including retrieving a value for each of the attributes in the predetermined subset of attributes; and

responding, by the one or more computers, to the message from the client device by sending a response message to the client device over the communication network, wherein the response message identifies the one or more attributes of the particular entity and includes the retrieved values for the one or more attributes of the particular entity, wherein the response message includes the retrieved values for the attributes in the predetermined subset of attributes.

9. The system of claim 8 , wherein sending the response message to the client device comprises providing information card data defining an information card to be presented by the client device in response to user interaction with the particular term, wherein the information card data is provided to the client device over the network before a user of the client device interacts with the particular term in the user interface of the client device.

10. The system of claim 8 , wherein the operations further comprise providing the set of terms to the client device over the communication network; and

wherein receiving the message comprises receiving a message sent by the client device in response to the client device determining that the particular term from the set of terms is included in the text of the user interface of the client device.

11. The system of claim 9 , wherein the message from the client device indicates keywords included in the text of the user interface of the client device in addition to the particular term; and

wherein the operations further comprise selecting, from among keywords in the user interface, which a subset of the keywords that are relevant to the entity based on information in the semantic graph.

12. The system of claim 8 , wherein the message from the client device indicates keywords included in the text of the user interface of the client device in addition to the particular term;

wherein the keywords indicate a time period or geographical location referenced in the text of the user interface; and

wherein the operations further comprise creating an aggregation of data about the particular entity for the time period or geographical location indicated by the keywords, and wherein the response message to the client device includes one or more values determined based on the aggregation.

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

storing, by the one or more computers, records that specify a set of terms and records that indicate entities corresponding to the respective terms;

receiving, by the one or more computers, a message from a client device over a communication network, wherein the message is sent in response to a determination that a particular term from the set of terms occurs in text of a user interface of the client device, and wherein the message from the client device indicates the particular term from the set of terms that is determined to occur in the text of the user interface of the client device;

in response to receiving the message from the client device:

using, by the one or more computers, the stored records to identify a particular entity corresponding to the particular term indicated in the message from the client device;

identifying, by the one or more computers, one or more attributes of the particular entity using a semantic graph, wherein identifying the one or more attributes of the particular entity comprises:

determining, using the semantic graph, an entity type of the particular entity;

selecting, from among information card templates for different entity types, an information card template for the determined entity type, wherein the selected information card template specifies a predetermined subset of attributes of entities of the determined entity type; and

identifying the predetermined subset of attributes specified by the selected information card template as the one or more attributes; and

retrieving, by the one or more computers, values for the one or more attributes of the particular entity from a database, including retrieving a value for each of the attributes in the predetermined subset of attributes; and

responding, by the one or more computers, to the message from the client device by sending a response message to the client device over the communication network, wherein the response message identifies the one or more attributes of the particular entity and includes the retrieved values for the one or more attributes of the particular entity, wherein the response message includes the retrieved values for the attributes in the predetermined subset of attributes.

14. The one or more non-transitory computer-readable media of claim 13 , wherein sending the response message to the client device comprises providing information card data defining an information card to be presented by the client device in response to user interaction with the particular term, wherein the information card data is provided to the client device over the network before a user of the client device interacts with the particular term in the user interface of the client device.

15. The method of claim 1 , wherein the set of terms is a set of keywords that has been selected to trigger display of contextual information at one or more client devices; and

wherein the message from the client device is sent while the particular term is displayed in the user interface of the client device, in response to the client device detecting that the particular term is in the user interface and that the particular term is in the set of keywords.

16. The method of claim 1 , wherein the selected information card template specifies layout and formatting for presenting the values of the attributes in the predetermined subset of attributes.

17. The method of claim 1 , wherein the records that indicate the entities corresponding to the respective terms comprise the semantic graph.

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 17, 2023
From: MICROSTRATEGY INCORPORATED; MICROSTRATEGY SERVICES CORPORATION
To: 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
Reel/Frame 062794/0255 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 12, 2022
From: ZIRAKNEJAD, SIAMAK; XU, JIAO; LI, BOYU; JIA, QUAN; ABHYANKAR, SAURABH; LEON, RAUL DE; LANG, TIMOTHY
To: MICROSTRATEGY INCORPORATED
Reel/Frame 061386/0191 →
Continuity (3)
Continuation 16247892 · Jan 15, 2019
Provisional Application 62720955 · Aug 22, 2018
Related Publication 20230029927A1 · Feb 2, 2023
Cited By (1)
US 12,417,822