IP Library Granted Patent US 12,242,550
Granted Patent B1
US 12,242,550 · App. 18/238,986 · Granted Mar 4, 2025

Browser plug-in for marketplace recommendations

Inventors: Shuodong Dang (Sunnyvale, CA); Orestis Kostakis (Redmond, WA)
Assignee: Snowflake Inc.
G06F16/9532G06F9/44526G06F16/9538
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,242,550
App. No.
18/238,986
Granted
Mar 4, 2025
Kind
B1
Abstract

A data access event may be recognized, using a browser plug-in, wherein the data access event constitutes a reference to previously obtained data. As a result of recognizing the event, the plug-in may send, to a search engine of a data exchange, a set of extracted terms. The plug-in may receive a set of related data listings related to the set of extracted terms. Upon a selection of a data listing from the set of related data listings, the plug-in may install the data listing to an account.

Claims (61)

1. A method comprising:

recognizing, by a processing device and using a browser plug-in, a data access event with respect to a notebook document displaying computer code and rich text elements, wherein the data access event constitutes a reference to previously obtained data;

as a result of recognizing the data access event with respect to the notebook document, extracting, by the browser plug-in, a set of terms from at least one of the computer code or the rich text elements in the notebook document;

sending, by the browser plug-in to a search engine of a data exchange, the set of terms;

receiving, from the data exchange, a set of data listings of the data exchange related to the set of terms;

providing, by the browser plug-in, a mini-browsing view that displays identifiers for the set of data listings concurrently with the notebook document; and

upon a selection of an identifier of a data listing of a data provider from the identifiers for the set of data listings displayed in the mini-browsing view, causing the data listing to be installed to an account of a data consumer of the data exchange to provide the data consumer with access to the data listing in the data exchange in a manner specified by the data provider.

2. The method of claim 1 , wherein the set of terms is obtained by the browser plug-in.

3. The method of claim 2 , wherein the set of terms is obtained by parsing a structured query language (SQL) query.

4. The method of claim 2 , wherein the set of terms is obtained from a set of dataframes.

5. The method of claim 2 , wherein the set of terms is obtained from free text input to a large language model.

6. The method of claim 1 , wherein the set of terms corresponds to at least one of table names or column names.

7. The method of claim 1 , wherein the set of data listings related to the set of terms is statistically related to the set of terms.

8. The method of claim 1 , wherein each extracted term in the set of terms is assigned an individual weight.

9. The method of claim 1 , wherein the set of terms is obtained from a table statement of a programmatic interface.

10. The method of claim 1 , wherein the set of terms includes information on previously viewed data.

11. A system comprising:

a memory; and

a processing device operatively coupled to the memory, the processing device to:

recognize, using a browser plug-in, a data access event with respect to a notebook document displaying computer code and rich text elements, wherein the data access event constitutes a reference to previously obtained data;

as a result of recognizing the data access event with respect to the notebook document, extract, by the browser plug-in, a set of terms from at least one of the computer code or the rich text elements in the notebook document;

send, by the browser plug-in to a search engine of a data exchange, the set of terms;

receive, from the data exchange, a set of data listings of the data exchange related to the set of terms;

provide, by the browser plug-in, a mini-browsing view that displays identifiers for the set of data listings concurrently with the notebook document; and

upon a selection of an identifier of a data listing of a data provider from the identifiers for the set of data listings displayed in the mini-browsing view, cause the data listing to be installed to an account of a data consumer of the data exchange to provide the data consumer with access to the data listing in the data exchange in a manner specified by the data provider.

12. The system of claim 11 , wherein the processing device is further to:

cause the browser plug-in to obtain the set of terms.

13. The system of claim 12 , wherein to cause the browser plug-in to obtain the set of terms, the processing device is to:

obtain the set of terms by parsing a structured query language (SQL) query.

14. The system of claim 12 , wherein to cause the browser plug-in to obtain the set of terms, the processing device is to:

obtain the set of terms from a set of dataframes.

15. The system of claim 12 , wherein to cause the browser plug-in to obtain the set of terms, the processing device is to:

obtain the set of terms from free text input to a large language model.

16. The system of claim 11 , wherein the set of terms corresponds to at least one of table names or column names.

17. The system of claim 11 , wherein the set of data listings related to the set of terms is statistically related to the set of terms.

18. The system of claim 11 , wherein each term in the set of terms is assigned an individual weight.

19. The system of claim 11 , wherein to cause the browser plug-in to obtain the set of terms, the processing device is to:

obtain the set of terms from a table statement of a programmatic interface.

20. The system of claim 11 , wherein the set of terms includes information on previously viewed data.

21. A non-transitory computer-readable medium having instructions stored thereon which, when executed by a processing device, cause the processing device to:

recognize, by the processing device and using a browser plug-in, a data access event with respect to a notebook document displaying computer code and rich text elements, wherein the data access event constitutes a reference to previously obtained data;

as a result of recognizing the data access event with respect to the notebook document, extract, by the browser plug-in, a set of terms from at least one of the computer code or the rich text elements in the notebook document;

send, by the browser plug-in to a search engine of a data exchange, the set of terms;

receive, from the data exchange, a set of data listings related to the set of terms;

provide, by the browser plug-in, a mini-browsing view that displays identifiers for the set of data listings concurrently with the notebook document; and

upon a selection of an identifier of a data listing of a data provider from the identifiers for the set of data listings, cause the data listing to be installed to an account of a data consumer of the data exchange to provide the data consumer with access to the data listing in the data exchange in a manner specified by the data provider.

22. The non-transitory computer-readable medium of claim 21 , wherein the instructions, when executed by the processing device, further cause the processing device to:

cause the browser plug-in to obtain the set of terms.

23. The non-transitory computer-readable medium of claim 22 , wherein to cause the browser plug-in to obtain the set of terms, the instructions, when executed by the processing device, cause the processing device to:

obtain the set of terms by parsing a structured query language (SQL) query.

24. The non-transitory computer-readable medium of claim 22 , wherein to cause the browser plug-in to obtain the set of terms, the instructions, when executed by the processing device, cause the processing device to:

obtain the set of terms from a set of dataframes.

25. The non-transitory computer-readable medium of claim 22 , wherein to cause the browser plug-in to obtain the set of terms, the instructions, when executed by the processing device, cause the processing device to:

obtain the set of terms from free text input to a large language model.

26. The non-transitory computer-readable medium of claim 22 , wherein to cause the browser plug-in to obtain the set of terms, the instructions, when executed by the processing device, cause the processing device to:

obtain the set of terms from a table statement of a programmatic interface.

27. The non-transitory computer-readable medium of claim 21 , wherein the set of terms corresponds to at least one of table names or column names.

28. The non-transitory computer-readable medium of claim 21 , wherein the set of data listings related to the set of terms is statistically related to the set of terms.

29. The non-transitory computer-readable medium of claim 21 , wherein the instructions, when executed by the processing device, further cause the processing device to:

assign each term in the set of terms an individual weight.

30. The non-transitory computer-readable medium of claim 21 , wherein the set of terms includes information on previously viewed data.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 25, 2024
From: DANG, SHUODONG; KOSTAKIS, ORESTIS
To: SNOWFLAKE INC.
Reel/Frame 067226/0257 →
References Cited (27)
US 8407576B1 · Yin · 2013 [cited by examiner]
US 10216554B2 · Sarid · 2019 [cited by examiner]
US 11422862B1 · Faulhaber · 2022 [cited by examiner]
US 11513772B1 · Gross · 2022 [cited by examiner]
US 11973763B1 · Carru · 2024 [cited by examiner]
US 11995411B1 · Qadrud-Din · 2024 [cited by examiner]
US 12008390B1 · Faulhaber · 2024 [cited by examiner]
US 20080017722A1 · Snyder · 2008 [cited by examiner]
US 20080195604A1 · Sears · 2008 [cited by examiner]
US 20080263009A1 · Buettner · 2008 [cited by examiner]
US 20130103686A1 · Sisneros · 2013 [cited by examiner]
US 20140244713A1 · Grimm · 2014 [cited by examiner]
US 20150281647A1 · Xin · 2015 [cited by examiner]
US 20160063553A1 · Pesochinsky · 2016 [cited by examiner]
US 20160203233A1 · Akselrod · 2016 [cited by examiner]
US 20180052940A1 · Miller · 2018 [cited by examiner]
US 20200243094A1 · Thomson · 2020 [cited by examiner]
US 20200311031A1 · Sim-Tang · 2020 [cited by examiner]
US 20210056147A1 · Pesochinsky · 2021 [cited by examiner]
US 20210165801A1 · Sekharan · 2021 [cited by examiner]
US 20220237372A1 · Chakrapani · 2022 [cited by examiner]
US 20230060252A1 · Bly · 2023 [cited by examiner]
US 20230066233A1 · van Dam · 2023 [cited by examiner]
US 20230222227A1 · Sankaranarayanan · 2023 [cited by examiner]
US 20230409615A1 · Khemka · 2023 [cited by examiner]
US 20240020546A1 · Vu · 2024 [cited by examiner]
US 20240160416A1 · Lyu · 2024 [cited by examiner]