IP Library Granted Patent US 9,262,459
Granted Patent B2
US 9,262,459 · App. 14/634,021 · Granted Feb 16, 2016

Indexing application pages of native applications

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 9,262,459
App. No.
14/634,021
Granted
Feb 16, 2016
Kind
B2
Abstract

Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for indexing application pages of native applications that operate independent of a browser application on a user device. In one aspect, a method includes instantiating a virtual machine emulating an operating system of a user device; instantiating, within the virtual machine, a native application that generates application pages for display on a user device within the native application; accessing, within the virtual machine, application pages of the native application, and for each of the application pages: generating application page data describing content of the application page, the content described by the application page data including text that a user device displays on the application page when the user device displays the application page; and indexing the application page data for the native application in an index that is searchable by a search engine.

Claims (45)

1. A computer-implemented method performed by data processing apparatus comprising one or more computers in data communication, the method comprising:

instantiating a virtual machine emulating an operating system of a user device;

instantiating, within the virtual machine, a native application that generates application pages for display on a user device within the native application, the native application operating independent of a browser application that can operate on the user device;

accessing, within the virtual machine, application pages of the native application, and for each of the application pages:

extracting content from the application page, the content including content of a plurality of different content types, the content for each content type being extracted by a corresponding extractor specific to that content type;

generating application page data describing content of the application page, the content described by the application page data including text that a user device displays on the application page when the user device displays the application page; and

indexing the application page data for the native application in an index that is searchable by a search engine.

2. The computer implemented method of claim 1 , wherein the indexing comprises indexing the application page for the native application by a combination of a uniform resource identifier (URI) of the application page and a unique application identifier that identifiers the native application.

3. The computer-implemented method of claim 1 , further comprising:

receiving, from a publisher of the native application, data specifying application pages to be indexed for the native application; and

accessing application pages of the native application comprises accessing only the application pages that are specified to be indexed for the native application.

4. The computer-implemented method of claim 1 , wherein the extractor types include a text extractor specific to a text content type and an image extractor specific to an image content type.

5. The computer-implemented method of claim 4 , wherein the content described by the application page data further includes image data depicting an image of the application page.

6. The computer-implemented method of claim 5 , wherein generating application page data describing content of the application page comprises:

performing optical character recognition (OCR) on the image data to generate OCR text; and

generating, based on the OCR text, text data describing the text that a user device displays on the application page.

7. The computer-implemented method of claim 1 , wherein the content described by the application page data further includes application page link data describing at least one link within the application page that links to another application page.

8. The computer-implemented method of claim 1 , wherein the content described by the application page data further includes web page link data describing at least one link within the application page that links to a resource referenced by a uniform resource locator that, when selected, instantiates a browser application that renders the resource in a browser environment separate from the native application.

9. A system, comprising:

a data processing apparatus; and

software stored in non-transitory computer readable storage medium storing instructions executable by the data processing apparatus and that upon such execution cause the data processing apparatus to perform operations comprising:

instantiating a virtual machine emulating an operating system of a user device;

instantiating, within the virtual machine, a native application that generates application pages for display on a user device within the native application, the native application operating independent of a browser application that can operate on the user device;

accessing, within the virtual machine, application pages of the native application, and for each of the application pages:

extracting content from the application page, the content including content of a plurality of different content types, the content for each content type being extracted by a corresponding extractor specific to that content type;

generating application page data describing content of the application page, the content described by the application page data including text that a user device displays on the application page when the user device displays the application page; and

indexing the application page data for the native application in an index that is searchable by a search engine.

10. The system of claim 9 , wherein the indexing comprises indexing the application page for the native application by a combination of a uniform resource identifier (URI) of the application page and a unique application identifier that identifiers the native application.

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

receiving, from a publisher of the native application, data specifying application pages to be indexed for the native application; and

accessing application pages of the native application comprises accessing only the application pages that are specified to be indexed for the native application.

12. The system of claim 9 , wherein the extractor types include a text extractor specific to a text content type and an image extractor specific to an image content type.

13. The system of claim 11 , wherein the content described by the application page data further includes image data depicting an image of the application page.

14. The system of claim 13 , wherein generating application page data describing content of the application page comprises:

performing optical character recognition (OCR) on the image data to generate OCR text; and

generating, based on the OCR text, text data describing the text that a user device displays on the application page.

15. The system of claim 9 , wherein the content described by the application page data further includes application page link data describing at least one link within the application page that links to another application page.

16. The system of claim 9 , wherein the content described by the application page data further includes web page link data describing at least one link within the application page that links to a resource referenced by a uniform resource locator that, when selected, instantiates a browser application that renders the resource in a browser environment separate from the native application.

17. A non-transitory computer readable storage medium storing instructions executable by a data processing apparatus and that upon such execution cause the data processing apparatus to perform operations comprising:

instantiating a virtual machine emulating an operating system of a user device;

instantiating, within the virtual machine, a native application that generates application pages for display on a user device within the native application, the native application operating independent of a browser application that can operate on the user device;

accessing, within the virtual machine, application pages of the native application, and for each of the application pages:

extracting content from the application page, the content including content of a plurality of different content types, the content for each content type being extracted by a corresponding extractor specific to that content type;

generating application page data describing content of the application page, the content described by the application page data including text that a user device displays on the application page when the user device displays the application page; and

indexing the application page data for the native application in an index that is searchable by a search engine.

Assignments (2)
CHANGE OF NAME Recorded Oct 2, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044566/0657 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 8, 2015
From: CHANG, LAWRENCE; JUNG, CHAESANG; YEOM, JAEHYUN; LEE, SANG-IL
To: GOOGLE INC.
Reel/Frame 036026/0903 →