Sitelinks Based On Visual Location

SEO; Minkoo

Patent Application Summary

U.S. patent application number 13/493096 was filed with the patent office on 2015-06-11 for sitelinks based on visual location. This patent application is currently assigned to GOOGLE INC.. The applicant listed for this patent is Minkoo SEO. Invention is credited to Minkoo SEO.

Application Number20150161281 13/493096
Document ID /
Family ID53267917
Filed Date2015-06-11

United States Patent Application 20150161281
Kind Code A1
SEO; Minkoo June 11, 2015

SITELINKS BASED ON VISUAL LOCATION

Abstract

A computing device may receive a request for sitelinks corresponding to a document and identify a plurality of hyperlinks corresponding to the document. Each hyperlink, of the plurality of hyperlinks, may include a hyperlink object within the document. The computing device may determine a visual location corresponding to each hyperlink of the plurality of hyperlinks corresponding to the document, and assign a score to each hyperlink, of the plurality of hyperlinks, based on the visual location corresponding to the hyperlink. The computing device may provide a sitelink, corresponding to a hyperlink, of the plurality of hyperlinks, based on the score assigned to the hyperlink.


Inventors: SEO; Minkoo; (GunPoSI, KR)
Applicant:
Name City State Country Type

SEO; Minkoo

GunPoSI

KR
Assignee: GOOGLE INC.
Mountain View
CA

Family ID: 53267917
Appl. No.: 13/493096
Filed: June 11, 2012

Current U.S. Class: 707/706 ; 715/205
Current CPC Class: G06F 16/951 20190101; G06F 16/9558 20190101; G06F 16/338 20190101
International Class: G06F 17/30 20060101 G06F017/30; G06F 17/00 20060101 G06F017/00

Claims



1. A method performed by a computing device, the method comprising: receiving, by the computing device, a request for sitelinks corresponding to a document; identifying, by the computing device, a plurality of hyperlinks corresponding to the document, each hyperlink, of the plurality of hyperlinks, comprising a hyperlink object within the document; determining, by the computing device, a visual location corresponding to each hyperlink of the plurality of hyperlinks corresponding to the document; assigning, by the computing device, a score to each hyperlink, of one or more of the plurality of hyperlinks, based on the visual location corresponding to the hyperlink, assigning the score to each hyperlink of the one or more of the plurality of hyperlinks including: assigning a score to each hyperlink corresponding to a particular hyperlink group, each hyperlink, not corresponding to the particular hyperlink group, being disregarded, the particular hyperlink group including at least one hyperlink of the plurality of hyperlinks; and providing, by the computing device, at least one sitelink, corresponding to a hyperlink of the one or more of the plurality of hyperlinks, based on the score assigned to the hyperlink.

2. The method of claim 1, where identifying the plurality of hyperlinks corresponding to the document comprises: identifying the document based on the request; and parsing the document to identify hyperlinks within the document.

3. The method of claim 1, where determining the visual location corresponding to each hyperlink of the plurality of hyperlinks comprises: obtaining software code corresponding to the document, creating a document object model based on the software code, where the document object model comprises a hyperlink element corresponding to each hyperlink of the plurality of hyperlinks, and identifying the visual location corresponding to each hyperlink, of the plurality of hyperlinks, based on a position of each hyperlink element within the document object model.

4. The method of claim 3, where identifying the visual location corresponding to each hyperlink, of the plurality of hyperlinks, based on the position of each hyperlink element, comprises: determining at least one coordinate corresponding to each hyperlink, of the plurality of hyperlinks, within the document object model, and using the at least one coordinate to define the visual location.

5. The method of claim 1, where assigning flail the score to each hyperlink, of the one or more of the plurality of hyperlinks, based on the visual location corresponding to the hyperlink, comprises: defining two or more hyperlink groups based on the visual location corresponding to each hyperlink of the plurality of hyperlinks, the two or more hyperlink groups including the particular hyperlink group, where each hyperlink group of the two or more hyperlink groups comprises at least one hyperlink of the plurality of hyperlinks, identifying a quantity of hyperlinks corresponding to each of the two or more hyperlink groups, and assigning a score to each hyperlink group of the two or more hyperlink groups based on the quantity of hyperlinks corresponding to each of the two or more hyperlink groups, the particular hyperlink group being assigned a highest score out of the score assigned to each hyperlink group of the two or more hyperlink groups.

6. The method of claim 5, where each hyperlink group, of the two or more hyperlink groups, is defined based on a position of each hyperlink element within a document object model, and a parent element associated with each hyperlink element within the document object model.

7. (canceled)

8. The method of claim 1, further comprising: generating a search result corresponding to a search engine query, where the search result comprises: a hyperlink corresponding to the document, and the at least one sitelink; and providing the search result.

9. The method of claim 1, where assigning the score to each hyperlink, of the one or more of the plurality of hyperlinks, includes: assigning the score to each hyperlink, of the one or more of the plurality of hyperlinks, further based on a click-through rate corresponding to each hyperlink of the one or more of the plurality of hyperlinks.

10. A system, comprising: one or more memory devices to store instructions; and one or more processors to execute the instructions to: receive a request for sitelinks corresponding to a document, identify a plurality of hyperlinks corresponding to the document, each hyperlink, of the plurality of hyperlinks, comprising a hyperlink object within the document, determine a visual location corresponding to each hyperlink of the plurality of hyperlinks corresponding to the document, assign a score to each hyperlink, of one or more of the plurality of hyperlinks, based on the visual location corresponding to each hyperlink of the one or more of the plurality of hyperlinks, when assigning the score to each hyperlink of the one or more of the plurality of hyperlinks, the one or more processors are to: assign a score to each hyperlink corresponding to a particular hyperlink group, each hyperlink, not corresponding to the particular hyperlink group, being disregarded, the particular hyperlink group including least one hyperlink of the plurality of hyperlinks, select at least one sitelink, corresponding to a hyperlink, of the one or more of the plurality of hyperlinks, based on the score assigned to the hyperlink, and provide a search result based on the at least one sitelink.

11. The system of claim 10, where, when identifying the one or more sitelinks corresponding to the document, the one or more processors are to: identify the document based on the request; and parse the document to identify hyperlinks within the document.

12. The system of claim 10, where, when determining the visual location corresponding to each hyperlink, the one or more processors are to: obtain software code corresponding to the document, create a document object model based on the software code, where the document object model comprises a hyperlink element corresponding to each hyperlink of the plurality of hyperlinks, and identify the visual location corresponding to each hyperlink, of the plurality of hyperlinks, based on a position of each hyperlink element within the document object model.

13. The system of claim 12, where, when identifying the visual location of each hyperlink based on a position of each hyperlink element within the document object model, the one or more processors are to: determine at least one coordinate corresponding to each hyperlink element within the document object model, and use the at least one coordinate to define the visual location.

14. The system of claim 10, where, when assigning the score to each hyperlink based on the visual location corresponding to each hyperlink, the one or more processors are to: define two or more hyperlink groups based on the visual location corresponding to each hyperlink of the plurality of hyperlinks, the two or more hyperlink groups including the particular hyperlink group, where each hyperlink group of the two or more hyperlink groups comprises at least one hyperlink of the plurality of hyperlinks, identify the quantity of hyperlinks corresponding to each of the two or more hyperlink groups, and score each hyperlink group, of the two or more hyperlink groups, based on the quantity of hyperlinks corresponding to each of the two or more hyperlink groups, a score of the particular hyperlink group being highest out of a score of each hyperlink group of the two or more hyperlink groups.

15. The system of claim 14, where each hyperlink group, of the two or more hyperlink groups, is defined based on a position of each hyperlink within a document object model, and one or more parent elements associated with each sitelink within the document object model.

16. (canceled)

17. The system of claim 10, where, providing the search result, the one or more processors are to: generate the search result corresponding to a search engine query, where the search result comprises: a hyperlink corresponding to the document, and the at least one sitelink.

18. The system of claim 10, where, when assigning the score to each hyperlink, of the one or more of the plurality of hyperlinks, the one or more processors are further to: assign the score to each hyperlink, of the one or more of the plurality of hyperlinks, further based on a click-through rate corresponding to each hyperlink of the one or more of the plurality of hyperlinks.

19. A non-transitory computer-readable medium storing instructions, the instructions comprising: one or more instructions which, when executed by one or more processors, cause the one or more processors to: receive a request for sitelinks corresponding to a document, identify a plurality of hyperlinks corresponding to the document, each hyperlink, of the plurality of hyperlinks, comprising a hyperlink object within the document, produce a document object model associated with the document, the document object model comprising a hyperlink element corresponding to each hyperlink of the plurality of hyperlinks, identify a visual location corresponding to each hyperlink, of the plurality of hyperlinks, based on a position of each hyperlink element within the document object model, assign a score to each hyperlink, of one or more of the plurality of hyperlinks, based on the visual location corresponding to each hyperlink of the one or more of the plurality of hyperlinks, the one or more instructions to assign the score to each hyperlink, of the one or more of the plurality of hyperlinks, including: one or more instructions to assign a score to each hyperlink corresponding to a particular hyperlink group, each hyperlink, not corresponding to the particular hyperlink group, being disregarded, the particular hyperlink group including at least one hyperlink of the plurality of hyperlinks, and provide at least one sitelink, corresponding to a hyperlink of the one or more of the plurality of hyperlinks, based on a score associated with the hyperlink.

20. The non-transitory computer-readable medium of claim 19, where the one or more instructions to identify the plurality of hyperlinks corresponding to the document include one or more instructions to cause the one or more processors to: identify the document based on the request; and parse the document to identify hyperlinks within the document.

21. The non-transitory computer-readable medium of claim 19, where the one or more instructions to identify the visual location of each hyperlink based on a position of each hyperlink element within the document object model include one or more instructions to cause the one or more processors to: determine at least one coordinate corresponding to each hyperlink element within the document object model, and use the at least one coordinate to define the visual location.

22. The non-transitory computer-readable medium of claim 19, where the one or more instructions to assign flail the score to each hyperlink of the one or more of the plurality of hyperlinks include one or more instructions to cause the one or more processors to: define two or more hyperlink groups based on the visual location corresponding to each hyperlink of the plurality of hyperlinks, the two or more hyperlink groups including the particular hyperlink group, where each hyperlink group of the two or more hyperlink groups comprises at least one hyperlink of the plurality of hyperlinks, identify a quantity of hyperlinks corresponding to each of the two or more hyperlink groups, and assign a score to each hyperlink group, of the two or more hyperlink groups, based on the quantity of hyperlinks corresponding to each of the two or more hyperlink groups, the particular hyperlink group being assigned a highest score out of the score assigned to each hyperlink group of the two or more hyperlink groups.

23. The non-transitory computer-readable medium of claim 22, where each hyperlink group, of the two or more hyperlink groups, is defined based on a position of each hyperlink within the document object model, and one or more parent elements associated with each hyperlink within the document object model.

24. (canceled)

25. The non-transitory computer-readable medium of claim 19, where the one or more instructions to provide the at least one sitelink include one or more instructions to cause the one or more processors to: generate a search result corresponding to a search engine query, where the search result comprises: a hyperlink corresponding to the document, and the at least one sitelink.

26. The non-transitory computer-readable medium of claim 19, where the one or more instructions to assign the score to each hyperlink, of the one or more of the plurality of hyperlinks, include one or more instructions to cause the one or more processors to: assign the score to each hyperlink, of the one or more of the plurality of hyperlinks, further based on a click-through rate corresponding to each hyperlink of the one or more of the plurality of hyperlinks.

27. The non-transitory computer-readable medium of claim 19, the instructions further comprising one or more instructions to: disassociate, from the document, one or more existing sitelinks that are associated with the document when the one or more existing sitelinks are not consistent with the one or more of the plurality of hyperlinks.

28. The system of claim 10, where the processor is further to: delete one or more existing sitelinks, that are associated with the document, when the one or more existing sitelinks are not consistent with the one or more of the plurality of hyperlinks.

29. The method of claim 1, further comprising: disassociating, from the document, one or more existing sitelinks that are associated with the document when the one or more existing sitelinks are not consistent with the one or more of the plurality of hyperlinks.
Description



BACKGROUND

[0001] Many techniques are available to users today to find information on the World Wide Web ("web"). For example, users often use web browsers and/or search engines to find information of interest. In order to provide quality results to users, search engines often provide links to websites corresponding to one or more search parameters.

SUMMARY

[0002] According to one possible implementation, a method may be performed by a computing device. The method may include receiving, by the computing device, a request for sitelinks corresponding to a document, and identifying, by the computing device, a plurality of hyperlinks corresponding to the document. Each hyperlink, of the plurality of hyperlinks, may include a hyperlink object within the document. The method may include determining, by the computing device, a visual location corresponding to each hyperlink of the plurality of hyperlinks corresponding to the document, and assigning, by the computing device, a score to each hyperlink, of the plurality of hyperlinks, based on the visual location corresponding to the hyperlink. The method may include selecting, by the computing device, a sitelink, corresponding to a hyperlink of the plurality of hyperlinks, based on the score assigned to the hyperlink, and providing, by the computing device, a search result that includes the sitelink.

[0003] When identifying the plurality of hyperlinks corresponding to the document, the method may include identifying the document based on the request, and parsing the document to identify hyperlinks within the document.

[0004] When determining the visual location corresponding to each hyperlink of the plurality of hyperlinks, the method may include: obtaining software code corresponding to the document: creating a document object model based on the software code, where the document object model may includes a hyperlink element corresponding to each hyperlink of the plurality of hyperlinks: and identifying the visual location corresponding to each hyperlink, of the plurality of hyperlinks, based on positions of the hyperlink elements within the document object model.

[0005] When identifying the visual location corresponding to each hyperlink, of the plurality of hyperlinks, based on positions of the hyperlink elements, the method may include determining at least one coordinate corresponding to each hyperlink, of the plurality of hyperlinks, within the document object model, and using the at least one coordinate to define the visual location.

[0006] When assigning a score to each hyperlink, of the plurality of hyperlinks, based on the visual location corresponding to the hyperlink, the method may include: defining two or more hyperlink groups based on the visual location corresponding to each hyperlink of the plurality of hyperlinks, where each hyperlink group of the two or more hyperlink groups may include at least one hyperlink of the plurality of hyperlinks; identifying a quantity of hyperlinks corresponding to each of the two or more hyperlinks groups; and assigning a score to each hyperlink group of the two or more hyperlink groups based on the quantity of hyperlinks corresponding to each of the two or more hyperlink groups.

[0007] Each hyperlink group, of the two or more hyperlink groups, may be defined based on a position of each hyperlink element within a document object model, and a parent element associated with each hyperlink element within the document object model.

[0008] When assigning, by the computing device, a score to each hyperlink, of the plurality of hyperlinks, based on the visual location corresponding to the hyperlink, the method may include assigning a score to each hyperlink corresponding to a hyperlink group, of the two or more hyperlink groups, corresponding to a highest score, and disregarding each hyperlink that does not correspond to the hyperlink group corresponding to the highest score.

[0009] When providing the search result, the method may include generating the search result corresponding to a search engine query, where the search result may include a hyperlink corresponding to the document, and the at least one sitelink.

[0010] The method may also assign a score to each hyperlink, of the plurality of hyperlinks based on a click-through rate corresponding to each hyperlink of the plurality of hyperlinks.

[0011] According to another possible implementation, a system may include a memory device to store instructions and one or more processors to execute the instructions. The processor may execute the instructions to receive a request for sitelinks corresponding to a document, and identify a plurality of hyperlinks corresponding to the document. Each hyperlink, of the plurality of hyperlinks, may include a hyperlink object within the document. The processor may execute the instructions to determine a visual location corresponding to each hyperlink of the plurality of hyperlinks corresponding to the document, and assign a score to each hyperlink of the plurality of hyperlinks based on the visual location corresponding to each hyperlink of the plurality of hyperlinks. The processor may execute the instructions to select at least one sitelink, corresponding to a hyperlink of the plurality of hyperlinks, based on the score assigned to the hyperlink, and provide a search result based on the at least one sitelink.

[0012] When identifying the one or more sitelinks corresponding to the document, the processor may identify the document based on the request, and parse the document to identify hyperlinks within the document.

[0013] When determining the visual location corresponding to each hyperlink, the processor may: obtain software code corresponding to the document; create a document object model based on the software code, where the document object model may include a hyperlink element corresponding to each hyperlink of the plurality of hyperlinks; and identify the visual location corresponding to each hyperlink, of the plurality of hyperlinks, based on a position of each hyperlink element within the document object model.

[0014] When defining the visual location of each hyperlink based on a position of each hyperlink element within the document object model, the processor may determine at least one coordinate corresponding to each hyperlink element within the document object model, and use the at least one coordinate to define the visual location.

[0015] When assigning a score to each hyperlink based on the visual location corresponding to each hyperlink, the processor may: define two or more hyperlink groups based on the visual location corresponding to each hyperlink of the plurality of hyperlinks, where each hyperlink group of the two or more hyperlink groups comprises at least one hyperlink of the plurality of hyperlinks; identify a quantity of hyperlinks corresponding to each of the two or more hyperlink groups; and score each hyperlink group, of the two or more hyperlink groups, based on the quantity of hyperlinks corresponding to each of the two or more hyperlink groups.

[0016] Each hyperlink group, of the two or more hyperlink groups, may be defined based on a position of each hyperlink within a document object model, and one or more parent element associated with each sitelink within the document object model.

[0017] When assigning a score to each hyperlink based on the visual location corresponding to each hyperlink, the processor may assign a score to each hyperlink corresponding to a hyperlink group, of the two or more hyperlink groups, corresponding to a highest score, and disregard each hyperlink that does not correspond to the hyperlink group corresponding to the highest score.

[0018] When providing the search result, the processor may generate the search result corresponding to a search engine query, where the search result may include a hyperlink corresponding to the document, and the at least one sitelink.

[0019] The processor may also assign a score to each hyperlink, of the plurality of hyperlinks, based on a click-through rate corresponding to each hyperlink of the plurality of hyperlinks.

[0020] According to another possible implementation, a computer-readable medium may include a set of instructions, which, when executed by a processor, cause the processors to receive a request for sitelinks corresponding to a document, and identify a plurality of hyperlinks corresponding to the document. Each hyperlink, of the plurality of hyperlinks, may include a hyperlink object within the document. The instructions may also cause the processor to produce a document object model associated with the document. The document object model comprises a hyperlink element corresponding to each hyperlink of the plurality of hyperlinks. The instructions may also cause the processor to identify a visual location corresponding to each hyperlink, of the plurality of hyperlinks, based on a position of each hyperlink element within the document object model, assign a score to each hyperlink, of the plurality of hyperlinks, based on the visual location corresponding to each hyperlink of the plurality of hyperlinks, and provide at least one sitelink, corresponding to a hyperlink of the plurality of hyperlinks, based on a score associated with the hyperlink.

[0021] When identifying the plurality of hyperlinks corresponding to the document, the set of instructions may cause the one or more processors to: identify the document based on the request; and parse the document to identify hyperlinks within the document.

[0022] When defining the visual location of each hyperlink based on a position of each hyperlink element within the document object model, the set of instructions may cause the one or more processors to: determine at least one coordinate corresponding to each hyperlink element within the document object model, and use the at least one coordinate to define the visual location.

[0023] When assigning a score to each hyperlink, the set of instructions may cause the one or more processors to: define two or more hyperlink groups based on the visual location corresponding to each hyperlink of the plurality of hyperlinks, where each hyperlink group of the two or more hyperlink groups comprises at least one hyperlink of the plurality of hyperlinks; identify a quantity of hyperlinks corresponding to each of the two or more hyperlink groups; and assign a score to each hyperlink group, of the two or more hyperlink groups, based on the quantity of hyperlinks corresponding to each of the two or more hyperlink groups.

[0024] Each hyperlink group, of the two or more hyperlink groups, may be defined based on a position of each hyperlink within a document object model, and one or more parent element associated with each hyperlink within the document object model.

[0025] When assigning a score to each hyperlink, the set of instructions may cause the one or more processors to: assign a score to each hyperlink corresponding to a hyperlink group, of the two or more hyperlink groups, corresponding to a highest score, and disregard each hyperlink that does not correspond to the hyperlink group corresponding to the highest score.

[0026] When providing the at least one sitelink, the set of instructions may cause the one or more processors to: generate a search result corresponding to a search engine query, where the search result may include a hyperlink corresponding to the document, and the at least one sitelink.

[0027] The set of instructions may also cause the one or more processors to assign a score to each hyperlink based on a click-through rate corresponding to each hyperlink of the plurality of hyperlinks.

BRIEF DESCRIPTION OF THE DRAWINGS

[0028] FIG. 1 is a diagram of an example environment in which systems and/or methods, described herein, may be implemented;

[0029] FIG. 2 is a diagram of an example of a device of FIG. 1;

[0030] FIG. 3 a diagram of example functional components of a sitelink management system according to one or more implementations described herein;

[0031] FIG. 4 is a diagram of an example process for providing sitelinks according to one or more implementations described herein;

[0032] FIG. 5 is a diagram of an example document according to one or more implementations described herein;

[0033] FIG. 6 is a diagram of an example document object model (DOM) according to one or more implementations described herein;

[0034] FIG. 7 is a diagram of an example search result document according to one or more implementations described herein; and

[0035] FIG. 8 is a diagram of example functional components of the sitelink management system according to one or more implementations described herein.

DETAILED DESCRIPTION

[0036] The following detailed description refers to the accompanying drawings. The same reference numbers in different drawings may identify the same or similar elements.

[0037] A system or method, described herein, may be used to enhance search engine results by enabling search engine results to include scored sitelinks. For example, a sitelink management system may receive a request for sitelinks corresponding to a particular document (e.g., a web page). A sitelink, as described herein, may include a hyperlink within a search result document that is based on, or corresponds to, a hyperlink within a document. A sitelink may include a direct link to some part of the document, a direct link to some content of the document, etc. The sitelink management system may identify hyperlinks corresponding to the document, determine visual locations corresponding to the hyperlinks, and/or score the hyperlinks based on the visual locations. In one implementations, a visual location may include information describing a position of a hyperlink as represented by a document object model (DOM) corresponding to a document that includes the hyperlink, and/or information describing a position of the hyperlink when a document that includes the hyperlink is displayed within a web browser. The sitelink management system may also, or alternatively, provide sitelinks in accordance with the score of each hyperlink.

[0038] Since sitelinks may be included in a search engine result, scoring sitelinks according to visual locations and providing the sitelinks according to the score of each sitelink may enable the search engine result to not only include a hyperlink to a document, but also to include sitelinks corresponding to the most visually and/or functionally significant hyperlinks within the document. Accordingly, a system and/or method, as described herein, may be used to enhance search engine results corresponding to a document with one or more sitelinks to improve a user's search experience.

[0039] The concepts described herein may be applied to sets of documents. In one implementation, the documents may be images, such as images indexed by an image search engine. More generally, a document may be broadly interpreted to include any machine-readable and machine-storable work product. A document may include, for example, an e-mail, a web site, a file, a combination of files, one or more files with embedded links to other files, a news group posting, a news article, a blog, a business listing, an electronic version of printed text, a web advertisement, etc. In the context of the Internet, a common document is a web page. Documents often include textual information and may include embedded information, such as meta information, images, hyperlinks, etc., and/or embedded instructions, such as JavaScript, etc. A "link" or "hyperlink," as the terms are used herein, are to be broadly interpreted to include any reference to/from a document from/to another document or another part of the same document.

[0040] FIG. 1 is a diagram of an example environment 100 in which systems and/or methods described herein may be implemented. As depicted, environment 100 may include client systems 110-1, . . . , 110-N (where N.gtoreq.1) (hereinafter referred to collectively as "client systems 110," and individually as "client system 110"), network 120, search engine system 130, and sitelink management system 140.

[0041] The number of systems and/or networks, illustrated in FIG. 1, is provided for explanatory purposes only. In practice, there may be additional systems and/or networks, fewer systems and/or networks, different systems and/or networks, or differently arranged systems and/or networks than illustrated in FIG. 1. For instance, in some implementations, search engine system 130 and sitelink management system 140 may correspond to the same system or device. In some implementations, sitelink management system 140 may operate behind search engine system 130. Sitelink management system 140 may be a separate system that pre-generates sitelinks and/or stores sitelinks in search engine system 130, in addition to serving sitelinks to search engine system 130.

[0042] Also, in some implementations, one or more of the systems of environment 100 may perform one or more functions described as being performed by another one or more of the systems of environment 100. For example, systems of environment 100 may interconnect via wired connections, wireless connections, or a combination of wired and wireless connections.

[0043] Client system 110 may include one or more types of computing and/or communication devices. For example, client system 110 may include a laptop computer, a desktop computer, a tablet computer, a mobile telephone (e.g., a smart phone), or one or more other types of computing and/or communication devices. Client system 110 may be capable of communicating with network 120. In one example, client system 110 may be capable of communicating a search engine query to search engine system 130 and/or receiving a search engine result from search engine system 130.

[0044] Network 120 may include any type of network and/or combination of networks. For example, network 120 may include a LAN (e.g., an Ethernet network), a wireless LAN (WLAN) (e.g., an 802.11 network), a wide area network (WAN) (e.g., the Internet), a wireless WAN (WWAN) (e.g., a 3 gpp System Architecture Evolution (SAE) Long-Term Evolution (LTE) network, a Global System for Mobile Communications (GSM) network, a Universal Mobile Telecommunications System (UMTS) network, a Code Division Multiple Access 2000 (CDMA2000) network, a High-Speed Packet Access (HSPA) network, a Worldwide Interoperability for Microwave Access (WiMAX) network, etc.). Additionally, or alternatively, network 120 may include a virtual network (e.g., a virtual private network (VPN)), a telephone network (e.g., a Public Switched Telephone Network (PSTN)), a cellular network, or another type of network.

[0045] Search engine system 130 may include one or more types of computing and/or communication devices. For example, search engine system 130 may include a desktop computer, a server, a cluster of servers, or one or more other types of computing and/or communication devices. Search engine system 130 may be capable of receiving a search engine query from client system 110, identifying a document based on query parameters included in the search engine query, and notifying sitelink management system 140 of the search engine query and/or the document. Search engine system 130 may receive one or more sitelinks, corresponding to the document, from sitelink management system 140, and may provide client system 110 with search engine results, such as a list of hyperlinks to documents and one or more of the sitelinks received from sitelink management system 140.

[0046] Sitelink management system 140 may include one or more types of computing and/or communication devices. For example, sitelink management system 140 may include a desktop computer, a server, a cluster of servers, or one or more other types of computing and/or communication devices. Sitelink management system 140 may be capable of receiving a request for sitelinks corresponding to a document and identifying one or more hyperlinks within the document. Sitelink management system 140 may also, or alternatively, determine a visual location of the hyperlinks and score the hyperlinks based on the visual locations. Additionally, or alternatively, sitelink management system 140 may provide sitelinks, corresponding to the hyperlinks, (e.g., to search engine system 130) according to the score of each hyperlink.

[0047] FIG. 2 is a diagram of an example of a generic computing device 200 and a generic mobile computing device 250, which may be used with the techniques described here. Generic computing device 200 or generic mobile computing device 250 may correspond to, for example, client system 110, search engine system 130, and/or sitelink management system 140. Computing device 200 is intended to represent various forms of digital computers, such as laptops, desktops, workstations, personal digital assistants, servers, blade servers, mainframes, and other appropriate computers. Mobile computing device 250 is intended to represent various forms of mobile devices, such as personal digital assistants, cellular telephones, smart phones, tablet computers, and other similar computing devices. The components shown in FIG. 2, their connections and relationships, and their functions, are meant to be examples only, and are not meant to limit implementations described herein.

[0048] Computing device 200 may include a processor 202, a memory 204, a storage device 206, a high-speed interface 208 connecting to memory 204 and high-speed expansion ports 210, and a low-speed interface 212 connecting to a low-speed expansion port 214 and a storage device 206. Each of components 202, 204, 206, 208, 210, 212, and 214, are interconnected using various buses, and may be mounted on a common motherboard or in other manners as appropriate. Processor 202 can process instructions for execution within computing device 200, including instructions stored in memory 204 or on storage device 206 to display graphical information for a graphical user interface (GUI) on an external input/output device, such as display 216 coupled to high-speed interface 208. In other implementations, multiple processors and/or multiple buses may be used, as appropriate, along with multiple memories and types of memory. Also, multiple computing devices 200 may be connected, with each device providing portions of the necessary operations, as a server bank, a group of blade servers, or a multi-processor system, etc.

[0049] Memory 204 stores information within computing device 200. In one implementation, memory 204 includes a volatile memory unit or units. In another implementation, memory 204 may include a non-volatile memory unit or units. Memory 204 may also be another form of computer-readable medium, such as a magnetic or optical disk. A computer-readable medium may refer to a non-transitory memory device. A memory device may refer to storage space within a single storage device or spread across multiple storage devices.

[0050] Storage device 206 is capable of providing mass storage for computing device 200. In one implementation, storage device 206 may be or contain a computer-readable medium, such as a floppy disk device, a hard disk device, an optical disk device, or a tape device, a flash memory or other similar solid state memory device, or an array of devices, including devices in a storage area network or other configurations. A computer program product can be tangibly embodied in an information carrier. The computer program product may also contain instructions that, when executed, perform one or more methods, such as those described herein. The information carrier is a computer or machine-readable medium, such as memory 204, storage device 206, or a memory on processor 202.

[0051] High-speed interface 208 manages bandwidth-intensive operations for computing device 200, while low-speed interface 212 manages lower bandwidth-intensive operations. Such allocation of functions is exemplary only. In one implementation, high-speed interface 208 is coupled to memory 204, display 216 (e.g., through a graphics processor or accelerator), and to high-speed expansion ports 210, which may accept various expansion cards (not shown). In this implementation, low-speed interface 212 may be coupled to storage device 206 and low-speed expansion port 214. Low-speed expansion port 214, which may include various communication ports (e.g., USB, Bluetooth, Ethernet, wireless Ethernet, etc.), may be coupled to one or more input/output devices, such as a keyboard, a pointing device, a scanner, or a networking device such as a switch or router, e.g., through a network adapter.

[0052] Computing device 200 may be implemented in a number of different forms, as shown in the figure. For example, computing device 200 may be implemented as a standard server, or multiple times in a group of such servers. Computing device 200 may also be implemented as part of a rack server system 224. In addition, computing device 200 may be implemented in a personal computer, such as a laptop computer 222. Alternatively, components from computing device 200 may be combined with other components in a mobile device (not shown), such as mobile computing device 250. Each of such devices may contain one or more of computing devices 200, 250, and an entire system may be made up of multiple computing devices 200, 250 communicating with each other.

[0053] Mobile computing device 250 may include a processor 252, a memory 264, an input/output ("I/O") device, such as a display 254, a communication interface 266, and a transceiver 268, among other components. Mobile computing device 250 may also be provided with a storage device, such as a micro-drive or other device, to provide additional storage. Each of the components 252, 264, 254, 266, and 268 are interconnected using various buses, and several of the components may be mounted on a common motherboard or in other manners as appropriate.

[0054] Processor 252 can execute instructions within mobile computing device 250, including instructions stored in memory 264. Processor 252 may be implemented as a chipset of chips that include separate and multiple analog and digital processors. Processor 252 may provide, for example, for coordination of the other components of mobile computing device 250, such as control of user interfaces, applications run by mobile computing device 250, and wireless communication by mobile computing device 250.

[0055] Processor 252 may communicate with a user through control interface 258 and display interface 256 coupled to a display 254. Display 254 may be, for example, a TFT LCD (Thin-Film-Transistor Liquid Crystal Display) or an OLED (Organic Light Emitting Diode) display, or other appropriate display technology. Display interface 256 may include appropriate circuitry for driving display 254 to present graphical and other information to a user. Control interface 258 may receive commands from a user and convert the commands for submission to processor 252. In addition, an external interface 262 may be provided in communication with processor 252, so as to enable near area communication of mobile computing device 250 with other devices. External interface 262 may provide, for example, for wired communication in some implementations, or for wireless communication in other implementations, and multiple interfaces may also be used.

[0056] Memory 264 stores information within mobile computing device 250. Memory 264 can be implemented as one or more of a computer-readable medium or media, a volatile memory unit or units, or a non-volatile memory unit or units. Expansion memory 274 may also be provided and connected to mobile computing device 250 through expansion interface 272, which may include, for example, a SIMM (Single In Line Memory Module) card interface. Such expansion memory 274 may provide extra storage space for device 250, or may also store applications or other information for mobile computing device 250. Specifically, expansion memory 274 may include instructions to carry out or supplement the processes described herein, and may include secure information also. Thus, for example, expansion memory 274 may be provided as a security module for mobile computing device 250, and may be programmed with instructions that permit secure use of mobile computing device 250. In addition, secure applications may be provided via the SIMM cards, along with additional information, such as placing identifying information on the SIMM card in a non-hackable manner.

[0057] Expansion memory 274 may include, for example, flash memory and/or NVRAM memory. In one implementation, a computer program product is tangibly embodied in an information carrier. The computer program product contains instructions that, when executed, perform one or more methods, such as those described above. The information carrier is a computer- or machine-readable medium, such as memory 264, expansion memory 274, or a memory on processor 252, that may be received, for example, over transceiver 268 or external interface 262.

[0058] Mobile computing device 250 may communicate wirelessly through communication interface 266, which may include digital signal processing circuitry where necessary. Communication interface 266 may provide for communications under various modes or protocols, such as GSM voice calls, Shot Messaging Service (SMS), Enhanced Messaging Service (EMS), or Multimedia Messaging Service (MMS), CDMA, Time Division Multiple Access (TDMA), Personal Digital Cellular (PDC), Wideband CDMA (WCDMA), CDMA2000, or General Packet Radio Service (GPRS), among others. Such communication may occur, for example, through transceiver 268. In addition, short-range communication may occur, such as using a Bluetooth, Wi-Fi, or other such transceiver (not shown). In addition, GPS (Global Positioning System) receiver module 270 may provide additional navigation- and location-related wireless data to mobile computing device 250, which may be used as appropriate by applications running on mobile computing device 250.

[0059] Mobile computing device 250 may also communicate audibly using audio codec 260, which may receive spoken information from a user and convert the received spoken information to digital information. Audio codec 260 may likewise generate audible sound for a user, such as through a speaker, e.g., in a handset of mobile computing device 250. Such sound may include sound from voice telephone calls, may include recorded sound (e.g., voice messages, music files, etc.), and may also include sound generated by applications operating on mobile computing device 250.

[0060] Mobile computing device 250 may be implemented in a number of different forms, as shown in the figure. For example, mobile computing device 250 may be implemented as a cellular telephone 280. Mobile computing device 250 may also be implemented as part of a smart phone 282, personal digital assistant, or other similar mobile device.

[0061] Various implementations of the systems and techniques described herein can be realized in digital electronic circuitry, integrated circuitry, specially designed ASICs (application specific integrated circuits), computer hardware, firmware, software, and/or combinations thereof. These various implementations can include implementations in one or more computer programs that are executable and/or interpretable on a programmable system including at least one programmable processor, which may be special or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device.

[0062] These computer programs (also known as programs, software, software applications, or code) include machine instructions for a programmable processor, and can be implemented in a high-level procedural and/or object-oriented programming language, and/or in assembly/machine language. As used herein, the terms "machine-readable medium" and "computer-readable medium" refer to any apparatus and/or device (e.g., magnetic discs, optical disks, memory, Programmable Logic Devices ("PLDs")) used to provide machine instructions and/or data to a programmable processor, including a machine-readable medium that receives machine instructions as a machine-readable signal. The term "machine-readable signal" refers to any signal used to provide machine instructions and/or data to a programmable processor.

[0063] To provide for interaction with a user, the systems and techniques described herein can be implemented on a computer having a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user and a keyboard and a pointing device (e.g., a mouse or a trackball) by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form, including acoustic, speech, or tactile input.

[0064] The systems and techniques described herein can be implemented in a computing system that includes a back end component (e.g., as a data server), or that includes a middleware component (e.g., an application server), or that includes a front end component (e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the systems and techniques described here), or any combination of such back end, middleware, or front end components. The components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a LAN, a WAN, and the Internet.

[0065] FIG. 3 is a diagram of example functional components of sitelink management system 140 according to one or more implementations described herein. As depicted, sitelink management system 140 may include document module 310 and sitelinks module 320. Depending on the implementation, one or more of modules 310-320 may be implemented as a combination of hardware and software based on the components illustrated and described with respect to FIG. 2. Alternatively, modules 310-320 may each be implemented as hardware based on the components illustrated and described with respect to FIG. 2.

[0066] Document module 310 may provide functionality with respect to documents and/or other types of data. For example, document module 310 may enable sitelink management system 140 to receive a request for sitelinks corresponding to a document. Document module 310 may also, or alternatively, enable sitelink management system 140 to identify hyperlinks within the document. As mentioned above, a document may include a web page or another type of network-accessible data structure that includes one or more hyperlinks.

[0067] Sitelink module 320 may provide functionality with respect to hyperlink, sitelinks and/or other types of data. For example, sitelink module 320 may enable sitelink management system 140 to determine a visual location of each hyperlink within a document. Sitelink module 320 may also, or alternatively, enable sitelink management system 140 to score hyperlinks based on the visual location corresponding to each hyperlink. Additionally, or alternatively, sitelink module 320 may enable sitelink management system 140 to communicate or otherwise provide (e.g., to search engine system 130) the sitelinks, corresponding to hyperlinks, according to the score corresponding to each hyperlink.

[0068] In addition to the functionality described above, the functional components of sitelink management system 140 may also, or alternatively, provide functionality as described elsewhere in this description. Further, while FIG. 3 shows a particular number and arrangement of modules, in alternative implementations, sitelink management system 140 may include additional modules, fewer modules, different modules, or differently arranged modules than those depicted.

[0069] FIG. 4 is a diagram of an example process 400 for providing sitelinks according to one or more implementations described herein. In one or more implementations, process 400 may be performed by one or more components of sitelink management system 140. In other implementations, some or all of process 400 may be performed by one or more other components/devices, or a group of components/devices, including or excluding sitelink management system 140. A description of FIG. 4 is provided below with reference to FIGS. 5-6.

[0070] As depicted, a request for sitelinks, corresponding to a document, is received (block 410). For example, sitelink management system 140 may receive a request for sitelinks corresponding to a document. The request may correspond to a scheduled request to process a document and/or a response to a new document being crawled. The request may originate from a user or operator of sitelink management system 140, client system 110, search engine system 130, or another type of system or device capable of communicating the request. Additionally, or alternatively, the request may be part of an automated process or application corresponding to executing a search engine query, a document indexing task, or another type of automated process.

[0071] Hyperlinks within the document are identified (block 420). For example, sitelink management system 140 may identify hyperlinks within the document. In one example, sitelink management system 140 may execute an operation, process, or application, such as a parse operation, process, or application to identify the sitelinks within the document and/or parse the document to locate tags (e.g., hyper text markup language (HTML) tags) corresponding to hyperlinks. In one possible implementation, sitelink management system 140 may analyze the parsed document with a pattern recognition (e.g., character recognition) operation, process, or application to identify the sitelinks within the document and/or the tags corresponding to hyperlinks.

[0072] Visual locations of the hyperlinks within the web page document are determined (block 430). For example, sitelink management system 140 may determine the visual location corresponding to each hyperlink within the document. As mentioned above, a visual location, as described herein, may include information describing a position of a hyperlink element within a DOM corresponding to a document, and/or information describing a position of the hyperlink when a document, that includes the hyperlink, is displayed within a web browser or another type of application.

[0073] The hyperlinks are scored based on the visual locations of the hyperlinks (block 440). For example, sitelink management system 140 may score the hyperlinks based on visual locations corresponding to the hyperlinks. In one example, sitelink management system 140 may score the hyperlinks based on one or more hyperlink analysis operations or processes executed by sitelink management system 140. For example, sitelink management system 140 may analyze the visual location of a hyperlink, as well as the visual location of other hyperlink within the document, to determine whether the hyperlink is positioned or arranged within the document in a manner that suggests that the hyperlink is a significant feature of the document.

[0074] FIG. 5 is a diagram of an example document 500 according to one or more implementations described herein. As depicted, document 500 may include images 510, text 520, and hyperlinks 530-1, 530-2, . . . , 530-15. While FIG. 5 shows a particular number and arrangement of features (e.g., images 510, text 520, and hyperlinks 530), in alternative implementations, an example document may include additional features, fewer features, different features, or differently arranged features than those depicted in FIG. 5.

[0075] As mentioned above, sitelink management system 140 may identify hyperlinks 530 within document 500, determine the visual locations of hyperlinks 530 within document 500, and score hyperlinks 530 based on visual locations corresponding to hyperlinks 530. In one example, sitelink management system 140 may score hyperlinks 530 by identifying different hyperlink groups within document 500 and identifying which hyperlink group seems to be the most significant with respect to document 500.

[0076] For instance, in example document 500, sitelink management system 140 may identify or otherwise define one hyperlink group as hyperlinks 530-1 through 530-5 since each of hyperlinks 530-1 and 530-5 appear in document 500 as a sequence of contiguous hyperlinks 530 (or hyperlinks 530 appearing together on an X-axis or a Y-axis). Sitelink management system 140 may identify another hyperlink group as hyperlinks 530-6 through 530-8 since hyperlinks 530-6 through 530-8 appear in document 500 as a sequence of continuous hyperlinks 530 (or hyperlinks 530 appearing together on an X-axis or a Y-axis). Sitelink management system 140 may identify another hyperlink group as hyperlinks 530-9 through 530-11, and another hyperlink group as hyperlinks 530-12 through 530-15, for similar reasons. Hyperlink management system 140 may determine that the hyperlink group corresponding to hyperlinks 530-1 through 530-5 is the most significant to document 500 since the hyperlink group corresponding to hyperlinks 530-1 through 530-5 includes the largest quantity hyperlinks 530 and/or appear closest to the top of document 500.

[0077] Additionally, or alternatively, sitelink management system 140 may determine the importance or significance of each hyperlink 530 within a hyperlink group. For example, referring to the hyperlink group that includes hyperlink 530-1 through hyperlink 530-5, sitelink management system 140 may determine that hyperlink 530-1 is the most significant of the hyperlink group because of the visual location of hyperlink 530-1. For similar reasons, sitelink management system 140 may determine that hyperlink 530-5 is the least significant of the hyperlink group. As such, sitelink management system 140 may score hyperlinks 530 based on a visual location corresponding to each hyperlink 530.

[0078] FIG. 6 is a diagram of an example of a DOM 600 according to one or more implementations described herein. As depicted in FIG. 6, DOM 600 may include elements 610-1 through 610-4 and hyperlink elements 620-1 through 620-8. Elements 610 may include any type of DOM element (e.g., a TITLE element, a HEADER element, etc.).

[0079] Hyperlink elements 620 may include DOM elements corresponding to one or more hyperlinks 530 of FIG. 5. For instance, hyperlink elements 620-1 through 620-5 may correspond to hyperlinks 530-1 through 530-5, respectively. However, for simplicity, only some of hyperlinks 530 are represented by hyperlink elements 620 in FIG. 6. In addition, while FIG. 6 shows a particular number and arrangement of DOM features (e.g., elements 610 and hyperlink elements 620), in alternative implementations, a DOM may include additional elements, fewer elements, different elements, or differently arranged elements than those depicted in FIG. 6.

[0080] As mentioned above, sitelink management system 140 may also, or alternatively, identify visual locations corresponding to hyperlinks within document 500 by obtaining software code corresponding to document 500 and using the software code to create DOM 600. Sitelink management system 140 may define the visual location of hyperlink 530 based on a position of a corresponding hyperlink element 620 in DOM 600. For instance, sitelink management system 140 may identify an X-coordinate and/or a Y-coordinate corresponding to each hyperlink element 620 and use the X-coordinate and/or Y-coordinate to identify or define visual locations, in addition to scoring one or more hyperlinks 530 corresponding to hyperlink element 620.

[0081] Additionally, or alternatively, sitelink management system 140 may identify or define hyperlink groups based on two or more hyperlink elements 620 corresponding to the same X-coordinate or Y-coordinate. In addition, sitelink management system 140 may identify or define hyperlink groups based on an ancestor DOM element (e.g., a parent DOM element, a grandparent DOM element, etc.) corresponding to each hyperlink element 620. For instance, if hyperlink element 620-1 through hyperlink element 620-8 were all positioned along the same X-coordinate or Y-coordinate, sitelink management system 140 may determine, based on ancestor DOM elements 610-2 and 610-4, that hyperlink elements 620-1 through 620-5 correspond to a different hyperlink group than hyperlink elements 620-6 through 620-8. Ancestor DOM elements may also, or alternatively, be used to infer the manner and/or general location that one or more hyperlinks 530 may be presented when document 500 is displayed in a web browser. Accordingly, sitelink management system 140 may use DOM technologies to identify visual locations corresponding to hyperlinks 530 and/or score hyperlinks 530 based on the visual locations, which may include identifying hyperlink groups, scoring hyperlink groups, etc.

[0082] Returning now to FIG. 4, process 400 may include providing sitelinks, corresponding to hyperlinks 530, according to the score of each hyperlink 530 (block 450). For example, sitelink management system 140 may provide sitelinks, corresponding to hyperlinks 530, according to the score of each hyperlink 530. In some implementations, providing sitelinks may include sitelink management system 140 storing the sitelinks for later use, Additionally, or alternatively, sitelink management system 140 may provide sitelinks to search engine system 130 so that, for example, search engine system 130 may include one or more of the sitelinks in a search result document that provides search engine results. In some implementations, sitelink management system 140 may provide the sitelinks in accordance with one or more rules or instructions, such as a limit to the quantity of sitelinks that may be provided, a constraint on the types of sitelinks that may be provided (e.g., sitelinks that do not exceed a particular length), etc.

[0083] While FIG. 4 shows a flowchart diagram of an example process 400 for providing sitelinks based on visual location, in other implementations, a process for providing sitelinks may include fewer operations, different operations, differently arranged operations, or additional operations than depicted in FIG. 4.

[0084] For example, the visual location of a hyperlink may be one factor of several factors used to score the hyperlink. An example of another factor may include a click-through rate corresponding to the hyperlink. In addition, in some implementations, one type of factor may be given more consideration than another type factor. For instance, a click-through rate corresponding to a particular hyperlink may have a greater impact on scoring the hyperlink than other factors.

[0085] FIG. 7 is a diagram of an example search result document 700 according to one or more implementations described herein. As depicted, search result document 700 may include a search parameters text box 710, a search command button 720, search engine results 730, and a document navigation tool 740. While FIG. 7 shows a particular number and arrangement of document objects (e.g., search parameters text box 710, search command button 720, search engine results 730, and document navigation tool 740), in alternative implementations, search result document 700 may include additional document objects, fewer document objects, different document objects, or differently arranged document objects than those depicted.

[0086] Search parameters text box 710 may provide a location for a user to input one or more search parameters (e.g., a letter, a number, a symbol, etc.), and search command button 720 may enable the user to cause a search query to be executed, based on the one or more search parameters, and search engine results 730 to be provided that are relevant to the one or more search parameters. Since search queries resulting in a large quantity of search engine results 730 may cause search engine results 730 to be displayed in multiple search result documents 700, document navigation tool 740 may enable the user to navigate between the search result documents 700 containing search engine results 730.

[0087] As depicted in FIG. 7, search engine results 730 may include one or more of a variety of information. For example, search engine results 730-1, 730-2, 730-3, and 730-4 each include a document title (which may also be a hyperlink to a corresponding document 500), a document description, and/or a document address, such as a uniform resource locator (URL). In addition, search engine results 730-1 and 730-2 each include sitelinks 735, which may corresponds to high-score hyperlinks 530 of document 500. As such, sitelink management system 140 may identify hyperlinks 530 within document 500 of FIG. 5, determine a visual location of hyperlinks 530 within document 500, score sitelinks 530 based on the visual locations of hyperlinks 530, and provide, cause, or otherwise enable sitelinks 530 to be provided in accordance with the score of each hyperlink 530. Providing sitelinks 735 based on the score of corresponding hyperlinks 530 may help ensure that the most significant hyperlinks 530 of document 500 are included in a search result that corresponds to document 500.

[0088] FIG. 8 is a diagram of example functional components of sitelink management system 140 according to one or more implementations described herein. As depicted in FIG. 8, sitelink management system 140 may be associated with a web 810 and may include a parser 820, a document renderer 830, a DOM tree 840, existing sitelinks 850, and a sitelink generator 860. Web 810 may correspond to network 120 (e.g., the Internet). Existing sitelinks 850 may be provided by search engine system 130 and/or sitelink management system 140.

[0089] Parser 820 may enable sitelink management system 140 to access a particular document (e.g., document 500) via web 810 and/or scan (e.g., "parse") the document 500 to identify hyperlinks within the document. In scenarios where a copy of the document is available in a data repository, sitelink management system 140 may also, or alternatively, identify hyperlinks within the document based on the copy of the document (e.g., without the parser functionality). As such, sitelink management system 140 may be capable of identifying sitelinks within a document in one or more ways.

[0090] Document renderer 830 may enable sitelink management system 140 to render the document in a browser application. The browser application may be capable of computing or otherwise creating DOM tree 840 corresponding to the document, where DOM tree nodes correspond to hyperlinks and include coordinates identifying a visual location (e.g., an X coordinate and a Y coordinate) corresponding to each hyperlink. The browser application may or may not be a browser application with a user interface component. Accordingly, sitelink management system 140 may be capable of implementing browser applications and/or DOM trees to determine visual locations corresponding to hyperlinks within a document.

[0091] Sitelink generator 860 may enable sitelink management system 140 to score sitelinks 530 based on a visual location corresponding to each hyperlink 530. As discussed above, this may include, for example, identifying hyperlink groups, determining a group score corresponding to each hyperlink group, and/or determining a hyperlink score corresponding to each hyperlink 530 (e.g., each hyperlink 530 in a hyperlink group). A group score and/or a hyperlink score may be determined in one or more of a variety of ways. For instance, as discussed above, a group score may be determined based on a quantity of hyperlinks 530 corresponding to a particular hyperlink group, relative to a quantity of hyperlinks 530 corresponding to another hyperlink group within document 500. A hyperlink score may be determined based on, for example, a visual location corresponding to a particular hyperlink 530 relative to the visual locations corresponding to one or more other hyperlinks 530 within document 500. In one example, once sitelink management system 140 identifies a particular hyperlink group as have a higher score than another hyperlink group, sitelink management system 140 may disregard one or more hyperlinks 530 corresponding to the lower-score hyperlink group.

[0092] As depicted in FIG. 8, the document may already be associated with existing sitelinks 850. In such scenarios, sitelink management system 140 may determine whether existing sitelinks 850 are consistent with the hyperlinks identified and scored by sitelink management system 140. In some implementations, existing sitelinks 850 that are not consistent with hyperlinks 530 identified and scored by sitelink management system 140 may be deleted, disassociated from the document, or otherwise handled so that the inconsistent sitelinks are not displayed in a corresponding search engine result 730 or do not take score over the sitelinks identified and scored by sitelink management system 140.

[0093] In addition to the functionality described above, the functional components of sitelink management system 140 may also, or alternatively, provide functionality as described elsewhere in this description. Further, while FIG. 8 shows a particular number and arrangement of functional components, in alternative implementations, sitelink management system 140 may include additional functional components, fewer functional components, different functional components, or differently arranged functional components than those depicted.

[0094] In some implementations, one or more of the outputs discussed above may be stored at any point during the overall sitelink scoring/management process. For instance, a DOM tree, rendered document, pared output, etc., may be stored by sitelink management system 140 and/or by another system.

[0095] Accordingly, systems and devices, described herein, may be used to enhance the information provided in search engine results. For example, sitelink management system 140 may receive a request for sitelinks corresponding to a document. Sitelink management system 140 may scan the document to identify hyperlinks included within the document and determine visual locations corresponding the hyperlinks within the document. Sitelink management system 140 may score the hyperlinks based on the visual location corresponding to each of the hyperlinks and provide sitelinks, corresponding to the hyperlinks, in accordance with the score of each hyperlink. Scoring hyperlinks according to visual location and providing sitelinks according to the score of corresponding hyperlinks may enable a search engine result to not only include hyperlinks to documents, but also to include the most visually significant sitelinks within the document. Accordingly, systems and devices, as described herein, may be used to enhance search engine results by including scored sitelinks in search engine results.

[0096] The foregoing description of implementations provides illustration and description, but is not intended to be exhaustive or to limit the implementations to the precise form disclosed. Modifications and variations are possible in light of the above disclosure or may be acquired from practice of the implementations.

[0097] For example, while a series of blocks has been described with regard to FIG. 4, the order of the blocks may be modified in other implementations. Further, non-dependent blocks may be performed in parallel.

[0098] It will be apparent that example aspects, as described above, may be implemented in many different forms of software, firmware, and hardware in the implementations illustrated in the figures. The actual software code or specialized control hardware used to implement these aspects should not be construed as limiting. Thus, the operation and behavior of the aspects were described without reference to the specific software code--it being understood that software and control hardware could be designed to implement the aspects based on the description herein.

[0099] Further, certain implementations may involve a component that performs one or more functions. These components may include hardware, such as an ASIC or a field-programmable gate array (FPGA), or a combination of hardware and software.

[0100] Even though particular combinations of features are recited in the claims and/or disclosed in the specification, these combinations are not intended to limit disclosure of the possible implementations. In fact, many of these features may be combined in ways not specifically recited in the claims and/or disclosed in the specification. Although each dependent claim listed below may directly depend on only one other claim, the disclosure of the implementations includes each dependent claim in combination with every other claim in the claim set.

[0101] No element, act, or instruction used in the present application should be construed as critical or essential to the implementations unless explicitly described as such. Also, as used herein, the article "a" is intended to include one or more items. Where only one item is intended, the term "one" or similar language is used. Further, the phrase "based on" is intended to mean "based, at least in part, on" unless explicitly stated otherwise.

* * * * *


uspto.report is an independent third-party trademark research tool that is not affiliated, endorsed, or sponsored by the United States Patent and Trademark Office (USPTO) or any other governmental organization. The information provided by uspto.report is based on publicly available data at the time of writing and is intended for informational purposes only.

While we strive to provide accurate and up-to-date information, we do not guarantee the accuracy, completeness, reliability, or suitability of the information displayed on this site. The use of this site is at your own risk. Any reliance you place on such information is therefore strictly at your own risk.

All official trademark data, including owner information, should be verified by visiting the official USPTO website at www.uspto.gov. This site is not intended to replace professional legal advice and should not be used as a substitute for consulting with a legal professional who is knowledgeable about trademark law.

© 2024 USPTO.report | Privacy Policy | Resources | RSS Feed of Trademarks | Trademark Filings Twitter Feed