IP Library Granted Patent US 12,292,927
Granted Patent B1
US 12,292,927 · App. 18/401,162 · Granted May 6, 2025

Storing contextual data with context schemas

Inventors: Ishita Das (Bangalore, IN); Sundaram Ravisundaram (Bangalore, IN)
Assignee: Twilio Inc.
G06F16/901G06F16/90335
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,292,927
App. No.
18/401,162
Granted
May 6, 2025
Kind
B1
Abstract

A context schema characterizing a context associated with an application is received by a processing device. The context schema specifies one or more context attributes. Each context attribute identifies a respective context element of the context associated with the application. A context item comprising one or more values is received. Each value corresponds to a respective context attribute of the one or more context attributes. The context item is validated against the context schema. Responsive to determining that the context item conforms to the context schema, the context item is stored in a context store.

Claims (65)

1. A method comprising:

receiving, by a host application, a context schema of a first client application of a plurality of client applications, the context schema characterizing a context associated with the first client application, the context schema of the first client application being received from the first client application via an application programming interface (API), the context schema of the first client application specifying one or more context attributes, each context attribute identifying a respective context element of the context associated with the first client application;

storing, by the host application, the context schema of the first client application in a schema store, wherein the schema store also stores contexts of other client applications of the plurality of client applications;

receiving, by the host application from the first client application, a first context item of the context associated with the first client application, the first context item comprising one or more values, each value corresponding to a respective context attribute of the one or more context attributes;

validating, by the host application, the first context item against the context schema of the first client application; and

responsive to determining that the first context item conforms to the context schema of the first client application, storing, by the host application, the first context item in a context store, wherein the context store also stores context items of contexts associated with the other client applications.

2. The method of claim 1 , further comprising:

receiving a second context schema characterizing a second context associated with a second client application, the second context schema specifying one or more second context attributes, each second context attribute identifying a respective second context element of the second context associated with the second client application, and a second context attribute of the one or more second context attributes being absent from the one or more context attributes of the context schema of the first client application.

3. The method of claim 1 , wherein receiving the first context item of the context associated with the first client application comprises:

receiving a data item associated with a second client application, wherein the one or more values of the first context item provide context for the data item associated with the second client application;

storing the data item associated with the second client application in a data store; and

adding an identifier of the stored data item associated with the second client application to the first context item.

4. The method of claim 1 , wherein a context attribute of the one or more context attributes is associated with an identifier element stored in a data storage layer of the first client application, and wherein a value of the one or more values of the first context item corresponds to an identifier value of an item stored in the data storage layer of the first client application.

5. The method of claim 1 , further comprising:

updating an index of the context store to facilitate searches of the one or more context attributes.

6. The method of claim 1 , further comprising:

receiving a search query from the first client application, the search query comprising an identifier of a context attribute and a search value of the respective context element;

retrieving one or more context items from the context store, each context item comprising a value corresponding to the search value; and

providing the one or more context items to the first client application.

7. The method of claim 6 , further comprising:

retrieving one or more data items from a data store, each data item corresponding to a reference value stored in a respective context item of the retrieved one or more context items; and

providing the one or more data items to the first client application.

8. A system comprising:

a memory device; and

a processing device coupled to the memory device, the processing device to perform operations comprising:

receiving, using a host application, a context schema of a first client application of a plurality of client applications, the context schema characterizing a context associated with the first client application, the context schema of the first client application being received from the first client application via an application programming interface (API), the context schema of the first client application specifying one or more context attributes, each context attribute identifying a respective context element of the context associated with the first client application;

storing, using the host application, the context schema of the first client application in a schema store, wherein the schema store also stores contexts of other client applications of the plurality of client applications;

receiving, using the host application from the first client application, a first context item of the context associated with the first client application, the first context item comprising one or more values, each value corresponding to a respective context attribute of the one or more context attributes;

validating, using the host application, the first context item against the context schema of the first client application; and

responsive to determining that the first context item conforms to the context schema of the first client application, storing, using the host application, the first context item in a context store, wherein the context store also stores context items of contexts associated with the other client applications.

9. The system of claim 8 , the operations further comprising:

receiving a second context schema characterizing a second context associated with a second client application, the second context schema specifying one or more second context attributes, each second context attribute identifying a respective second context element of the second context associated with the second client application, and a second context attribute of the one or more second context attributes being absent from the one or more context attributes of the context schema of the first client application.

10. The system of claim 8 , wherein receiving the first context item of the context associated with the first client application comprises:

receiving a data item associated with a second client application, wherein the one or more values of the first context item provide context for the data item associated with the second client application;

storing the data item associated with the second client application in a data store; and

adding an identifier of the stored data item associated with the second client application to the first context item.

11. The system of claim 8 , wherein a context attribute of the one or more context attributes is associated with an identifier element stored in a data storage layer of the first client application, and wherein a value of the one or more values of the first context item corresponds to an identifier value of an item stored in the data storage layer of the first client application.

12. The system of claim 8 , the operations further comprising:

updating an index of the context store to facilitate searches of the one or more context attributes.

13. The system of claim 8 , the operations further comprising:

receiving a search query from the first client application, the search query comprising an identifier of a context attribute and a search value of the respective context element;

retrieving one or more context items from the context store, each context item comprising a value corresponding to the search value; and

providing the one or more context items to the first client application.

14. The system of claim 13 , the operations further comprising:

retrieving one or more data items from a data store, each data item corresponding to a reference value stored in a respective context item of the retrieved one or more context items; and

providing the one or more data items to the first client application.

15. A non-transitory computer-readable medium comprising instructions that, when executed by a processing device, cause the processing device to perform operations comprising:

receiving, using a host application, a context schema of a first client application of a plurality of client applications, the context schema characterizing a context associated with the first client application, the context schema of the first client application being received from the first client application via an application programming interface (API), the context schema of the first client application specifying one or more context attributes, each context attribute identifying a respective context element of the context associated with the first client application;

storing, using the host application, the context schema of the first client application in a schema store, wherein the schema store also stores contexts of other client applications of the plurality of client applications;

receiving, using the host application from the first client application, a first context item of the context associated with the first client application, the first context item comprising one or more values, each value corresponding to a respective context attribute of the one or more context attributes;

validating, using the host application, the first context item against the context schema of the first client application; and

responsive to determining that the first context item conforms to the context schema of the first client application, storing, using the host application, the first context item in a context store, wherein the context store also stores context items of contexts associated with the other client applications.

16. The non-transitory computer-readable medium of claim 15 , the operations further comprising:

receiving a second context schema characterizing a second context associated with a second client application, the second context schema specifying one or more second context attributes, each second context attribute identifying a respective second context element of the second context associated with the second client application, and a second context attribute of the one or more second context attributes being absent from the one or more context attributes of the context schema of the first client application.

17. The non-transitory computer-readable medium of claim 15 , wherein receiving the first context item of the context associated with the first client application comprises:

receiving a data item associated with a second client application, wherein the one or more values of the first context item provide context for the data item associated with the second client application;

storing the data item associated with the second client application in a data store; and

adding an identifier of the stored data item associated with the second client application to the first context item.

18. The non-transitory computer-readable medium of claim 15 , wherein a context attribute of the one or more context attributes is associated with an identifier element stored in a data storage layer of the first client application, and wherein a value of the one or more values of the first context item corresponds to an identifier value of an item stored in the data storage layer of the first client application.

19. The non-transitory computer-readable medium of claim 15 , the operations further comprising:

updating an index of the context store to facilitate searches of the one or more context attributes.

20. The non-transitory computer-readable medium of claim 15 , the operations further comprising:

receiving a search query from the first client application, the search query comprising an identifier of a context attribute and a search value of the respective context element;

retrieving one or more context items from the context store, each context item comprising a value corresponding to the search value; and

providing the one or more context items to the first client application.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 4, 2024
From: DAS, ISHITA; RAVISUNDARAM, SUNDARAM
To: TWILIO, INC.
Reel/Frame 066019/0054 →
References Cited (15)
US 7693973B2 · Joseph et al. · 2010 [cited by applicant]
US 9286399B2 · Pingree · 2016 [cited by applicant]
US 11573963B2 · Frampton et al. · 2023 [cited by applicant]
US 11657088B1 · Acheson · 2023 [cited by examiner]
US 20050120029A1 · Tomic · 2005 [cited by examiner]
US 20080229241A1 · Davies · 2008 [cited by examiner]
US 20090112916A1 · Stuhec · 2009 [cited by examiner]
US 20120066217A1 · Eder · 2012 [cited by examiner]
US 20180373781A1 · Palrecha · 2018 [cited by applicant]
US 20210248136A1 · Panuganty · 2021 [cited by examiner]
DE 102016005519A1 · 2017 [cited by applicant]
James Chalk, “SciData: A data model and ontology for semantic representation of scientific data”, Oct. 2016, pp. 1-2, 5, 9-12, https://www.researchgate.netpublication/309162834_SciData_A_data_model_and_ontology_for_sema… [cited by applicant]
Hellerstein, “Ground: A Data Context Service”, 2017, pp. 1, 3 and 7, https://rise.cs.berkeley.edu/wp-content/uploads/2017/03/CIDR17.pdf. [cited by applicant]
Elmongui ,“Chameleon: Context-Awareness inside DBMSs”, Oct. 2008, pp. 3 and 10, https://citeseerx.ist.psu.edu/document?repid=rep1&type=pdf&doi=ed2ba0d66e3e98b8277a53beeda168ee57a1fb1e. [cited by applicant]
Quintarelli, “Information Systems: A principled approach to context schema evolution in a data management perspective.”, 2015, pp. 1-37. [cited by applicant]