IP Library Granted Patent US 11,550,838
Granted Patent B2
US 11,550,838 · App. 16/589,053 · Granted Jan 10, 2023

Providing information cards using semantic graph data

Inventors: Saurabh Abhyankar (McLean, VA); Scott Rigney (Arlington, VA); Timothy Lang (McLean, VA)
Assignee: MicroStrategy Incorporated
G06F16/36G06F16/3344G06F16/9024G06F16/9027G06F16/953G06F16/9535G06F40/30G06N5/04G06T11/206G10L13/027
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,550,838
App. No.
16/589,053
Granted
Jan 10, 2023
Kind
B2
Abstract

Methods, systems, and apparatus, including computer programs encoded on computer-readable storage media, for providing information cards using semantic graph data. In some implementations, semantic graph data for a semantic graph is stored, where the semantic graph data indicates objects and relationships among the objects, and the objects include a card object that represents characteristics of an information card. A request is received from a client device, and the request is processed using the semantic graph data. Data for the information card is provided to the client device based on the card object indicated by the semantic graph data.

Claims (62)

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

storing, by the one or more computers, semantic graph data for a semantic graph, wherein the semantic graph data indicates objects and relationships among the objects, wherein the objects include a card object that represents characteristics of an information card, wherein the card object specifies multiple types of data to include in a presentation of the information card;

receiving, by the one or more computers, a request from a client device;

in response to receiving the request:

identifying, by the one or more computers, an entity related to the request and an object represented in the semantic graph that corresponds to the entity;

using, by the one or more computers, the card object represented in the semantic graph to determine a set of attributes and/or metrics to include in presentation of the information card for the entity; and

retrieving, by the one or more computers, data for the information card, including values for the set of attributes and/or metrics for the entity; and

providing, by the one or more computers, the retrieved data for the information card to the client device based on the card object indicated by the semantic graph data.

2. The method of claim 1 , wherein the semantic graph data includes data indicating one or more triggers or conditions for presenting the information card.

3. The method of claim 2 , wherein the one or more triggers or conditions are represented as characteristics of the card object, including one or more keywords that, when present a user interface or are interacted with by a user, trigger display of the information card defined by the card object.

4. The method of claim 2 , wherein the one or more triggers or conditions are represented as one or more connections of the card object with one or more other objects.

5. The method of claim 1 , wherein the card object represents a template for providing information cards for entities in a category of entities.

6. The method of claim 5 , wherein the card object is connected, in the semantic graph, to each of multiple objects representing different entities in the category such that the connections designate the card object to be used to provide information cards for each of the different entities.

7. The method of claim 1 , wherein the card object is connected to synonym object in the semantic graph; and

wherein the one or more computers are configured to provide the data for the information card based on an occurrence of a synonym for an entity name indicated by the synonym object.

8. The method of claim 1 , comprising:

retrieving, from a data repository or an in-memory data store, a portion of a data set used to calculate a metric for an entity;

calculating the metric based on the retrieved portion of the data set; and

storing the metric and/or the retrieved portion of the data set in a cache.

9. The method of claim 1 , comprising providing, by the one or more computers to one or more client devices, cache data for one or more information cards to populate a cache of the one or more client devices, the one or more information cards having content defined by one or more corresponding card objects represented in the semantic graph,

wherein the cache data provided for each of the one or more information cards includes (i) content to be presented in the information card, and (ii) a presentation trigger or condition specifying when the information card should be presented.

10. The method of claim 1 , wherein the request indicates one or more terms associated with a context of the client device;

wherein the method includes determining, based on the semantic graph data, that the one or more terms correspond to the information card represented by the card object; and

wherein providing the data for the information card to the client device is based on determining that the one or more terms correspond to the information card.

11. The method of claim 1 , comprising:

identifying, from among the objects indicated by the semantic graph data, one or more objects referenced in content provided to a client device; and

providing information card data for information cards based on card objects connected to the identified one or more objects in the semantic graph.

12. The method of claim 1 , comprising selecting, from among a plurality of indicators associated with the entity, a proper subset of the indicators based on semantic graph data for the card object;

wherein providing the data for the information card comprises providing the proper subset of indicators associated with the entity.

13. The method of claim 1 , comprising:

analyzing access data indicating access to content by a user;

selecting, based on the analysis of the access data, a set of objects referenced in the content accessed by the user; and

providing, to a device associated with the user, data for information cards corresponding to the objects in the set of objects referenced in the content accessed by the user.

14. The method of claim 1 , wherein the card object represents an information card for the entity.

15. A system comprising:

one or more computers; and

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

storing, by the one or more computers, semantic graph data for a semantic graph,

wherein the semantic graph data indicates objects and relationships among the objects,

wherein the objects include a card object that represents characteristics of an information card, wherein the card object specifies multiple types of data to include in a presentation of the information card;

receiving, by the one or more computers, a request from a client device;

in response to receiving the request:

identifying, by the one or more computers, an entity related to the request and an object represented in the semantic graph that corresponds to the entity;

using, by the one or more computers, the card object represented in the semantic graph to determine a set of attributes and/or metrics to include in presentation of the information card for the entity; and

retrieving, by the one or more computers, data for the information card, including values for the set of attributes and/or metrics for the entity; and

providing, by the one or more computers, the retrieved data for the information card to the client device based on the card object indicated by the semantic graph data.

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

storing, by the one or more computers, semantic graph data for a semantic graph, wherein the semantic graph data indicates objects and relationships among the objects, wherein the objects include a card object that represents characteristics of an information card, wherein the card object specifies multiple types of data to include in a presentation of the information card;

receiving, by the one or more computers, a request from a client device;

in response to receiving the request:

determining, by the one or more computers, an entity related to the request and an object represented in the semantic graph that corresponds to the entity;

using, by the one or more computers, the card object represented in the semantic graph to determine a set of attributes and/or metrics to include in presentation of the information card for the entity; and

retrieving, by the one or more computers, data for the information card, including values for the set of attributes and/or metrics for the entity; and

providing, by the one or more computers, the retrieved data for the information card to the client device based on the card object indicated by the semantic graph data.

17. The method of claim 1 , wherein multiple card objects are represented in the semantic graph, each of the card objects corresponding to a different entity type; and

wherein the method comprises, in response to receiving the request, selecting the card object to set content for the information card, wherein the card object is selected from among the multiple card objects based on the semantic graph data.

18. The method of claim 17 , wherein the card object is selected from among the multiple card objects based on a connection in the semantic graph between an object representing the entity and the card object.

19. The method of claim 1 , wherein the semantic graph data specifies a plurality of attributes and/or metrics that are available for the entity;

wherein the card object specifies the set of attributes and/or metrics to include in presentation of the information card for the entity, wherein the set of attributes and/or metrics is a subset that includes fewer than all of the attributes and/or metrics that are available for the entity; and

wherein retrieving the data for the information card comprises retrieving values for the subset that includes fewer than all of the attributes and/or metrics that are available for the entity.

20. The method of claim 1 , wherein the card object corresponds to a particular entity type; and

wherein the method further comprises using the card object to define content to include in information cards for each multiple different entities of the particular entity type.

Assignments (5)
CHANGE OF NAME Recorded Sep 19, 2025
From: MICROSTRATEGY INCORPORATED
To: STRATEGY INC
Reel/Frame 072974/0529 →
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 →
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 Dec 23, 2019
From: ABHYANKAR, SAURABH; RIGNEY, SCOTT; LANG, TIMOTHY
To: MICROSTRATEGY INCORPORATED
Reel/Frame 051355/0509 →