Sitelinks based on visual location

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.

BACKGROUND

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

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

DETAILED DESCRIPTION

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.

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.

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.

FIG. 1is a diagram of an example environment100in which systems and/or methods described herein may be implemented. As depicted, environment100may include client systems110-1, . . . ,110-N (where N≧1) (hereinafter referred to collectively as “client systems110,” and individually as “client system110”), network120, search engine system130, and sitelink management system140.

The number of systems and/or networks, illustrated inFIG. 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 inFIG. 1. For instance, in some implementations, search engine system130and sitelink management system140may correspond to the same system or device. In some implementations, sitelink management system140may operate behind search engine system130. Sitelink management system140may be a separate system that pre-generates sitelinks and/or stores sitelinks in search engine system130, in addition to serving sitelinks to search engine system130.

Also, in some implementations, one or more of the systems of environment100may perform one or more functions described as being performed by another one or more of the systems of environment100. For example, systems of environment100may interconnect via wired connections, wireless connections, or a combination of wired and wireless connections.

Client system110may include one or more types of computing and/or communication devices. For example, client system110may 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 system110may be capable of communicating with network120. In one example, client system110may be capable of communicating a search engine query to search engine system130and/or receiving a search engine result from search engine system130.

Network120may include any type of network and/or combination of networks. For example, network120may 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 3gpp 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, network120may 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.

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

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

FIG. 2is a diagram of an example of a generic computing device200and a generic mobile computing device250, which may be used with the techniques described here. Generic computing device200or generic mobile computing device250may correspond to, for example, client system110, search engine system130, and/or sitelink management system140. Computing device200is 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 device250is 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 inFIG. 2, their connections and relationships, and their functions, are meant to be examples only, and are not meant to limit implementations described herein.

Computing device200may include a processor202, a memory204, a storage device206, a high-speed interface208connecting to memory204and high-speed expansion ports210, and a low-speed interface212connecting to a low-speed expansion port214and a storage device206. Each of components202,204,206,208,210,212, and214, are interconnected using various buses, and may be mounted on a common motherboard or in other manners as appropriate. Processor202can process instructions for execution within computing device200, including instructions stored in memory204or on storage device206to display graphical information for a graphical user interface (GUI) on an external input/output device, such as display216coupled to high-speed interface208. 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 devices200may 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.

Memory204stores information within computing device200. In one implementation, memory204includes a volatile memory unit or units. In another implementation, memory204may include a non-volatile memory unit or units. Memory204may 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.

Storage device206is capable of providing mass storage for computing device200. In one implementation, storage device206may 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 memory204, storage device206, or a memory on processor202.

High-speed interface208manages bandwidth-intensive operations for computing device200, while low-speed interface212manages lower bandwidth-intensive operations. Such allocation of functions is exemplary only. In one implementation, high-speed interface208is coupled to memory204, display216(e.g., through a graphics processor or accelerator), and to high-speed expansion ports210, which may accept various expansion cards (not shown). In this implementation, low-speed interface212may be coupled to storage device206and low-speed expansion port214. Low-speed expansion port214, 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.

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

Mobile computing device250may include a processor252, a memory264, an input/output (“I/O”) device, such as a display254, a communication interface266, and a transceiver268, among other components. Mobile computing device250may also be provided with a storage device, such as a micro-drive or other device, to provide additional storage. Each of the components252,264,254,266, and268are interconnected using various buses, and several of the components may be mounted on a common motherboard or in other manners as appropriate.

Processor252can execute instructions within mobile computing device250, including instructions stored in memory264. Processor252may be implemented as a chipset of chips that include separate and multiple analog and digital processors. Processor252may provide, for example, for coordination of the other components of mobile computing device250, such as control of user interfaces, applications run by mobile computing device250, and wireless communication by mobile computing device250.

Processor252may communicate with a user through control interface258and display interface256coupled to a display254. Display254may 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 interface256may include appropriate circuitry for driving display254to present graphical and other information to a user. Control interface258may receive commands from a user and convert the commands for submission to processor252. In addition, an external interface262may be provided in communication with processor252, so as to enable near area communication of mobile computing device250with other devices. External interface262may provide, for example, for wired communication in some implementations, or for wireless communication in other implementations, and multiple interfaces may also be used.

Memory264stores information within mobile computing device250. Memory264can 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 memory274may also be provided and connected to mobile computing device250through expansion interface272, which may include, for example, a SIMM (Single In Line Memory Module) card interface. Such expansion memory274may provide extra storage space for device250, or may also store applications or other information for mobile computing device250. Specifically, expansion memory274may include instructions to carry out or supplement the processes described herein, and may include secure information also. Thus, for example, expansion memory274may be provided as a security module for mobile computing device250, and may be programmed with instructions that permit secure use of mobile computing device250. 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.

Expansion memory274may 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 memory264, expansion memory274, or a memory on processor252, that may be received, for example, over transceiver268or external interface262.

Mobile computing device250may communicate wirelessly through communication interface266, which may include digital signal processing circuitry where necessary. Communication interface266may 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 transceiver268. 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 module270may provide additional navigation- and location-related wireless data to mobile computing device250, which may be used as appropriate by applications running on mobile computing device250.

Mobile computing device250may be implemented in a number of different forms, as shown in the figure. For example, mobile computing device250may be implemented as a cellular telephone280. Mobile computing device250may also be implemented as part of a smart phone282, personal digital assistant, or other similar mobile device.

FIG. 3is a diagram of example functional components of sitelink management system140according to one or more implementations described herein. As depicted, sitelink management system140may include document module310and sitelinks module320. Depending on the implementation, one or more of modules310-320may be implemented as a combination of hardware and software based on the components illustrated and described with respect toFIG. 2. Alternatively, modules310-320may each be implemented as hardware based on the components illustrated and described with respect toFIG. 2.

Document module310may provide functionality with respect to documents and/or other types of data. For example, document module310may enable sitelink management system140to receive a request for sitelinks corresponding to a document. Document module310may also, or alternatively, enable sitelink management system140to 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.

Sitelink module320may provide functionality with respect to hyperlink, sitelinks and/or other types of data. For example, sitelink module320may enable sitelink management system140to determine a visual location of each hyperlink within a document. Sitelink module320may also, or alternatively, enable sitelink management system140to score hyperlinks based on the visual location corresponding to each hyperlink. Additionally, or alternatively, sitelink module320may enable sitelink management system140to communicate or otherwise provide (e.g., to search engine system130) the sitelinks, corresponding to hyperlinks, according to the score corresponding to each hyperlink.

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

FIG. 4is a diagram of an example process400for providing sitelinks according to one or more implementations described herein. In one or more implementations, process400may be performed by one or more components of sitelink management system140. In other implementations, some or all of process400may be performed by one or more other components/devices, or a group of components/devices, including or excluding sitelink management system140. A description ofFIG. 4is provided below with reference toFIGS. 5-6.

As depicted, a request for sitelinks, corresponding to a document, is received (block410). For example, sitelink management system140may 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 system140, client system110, search engine system130, 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.

Hyperlinks within the document are identified (block420). For example, sitelink management system140may identify hyperlinks within the document. In one example, sitelink management system140may 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 system140may 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.

Visual locations of the hyperlinks within the web page document are determined (block430). For example, sitelink management system140may 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.

The hyperlinks are scored based on the visual locations of the hyperlinks (block440). For example, sitelink management system140may score the hyperlinks based on visual locations corresponding to the hyperlinks. In one example, sitelink management system140may score the hyperlinks based on one or more hyperlink analysis operations or processes executed by sitelink management system140. For example, sitelink management system140may 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.

FIG. 5is a diagram of an example document500according to one or more implementations described herein. As depicted, document500may include images510, text520, and hyperlinks530-1,530-2, . . . ,530-15. WhileFIG. 5shows a particular number and arrangement of features (e.g., images510, text520, and hyperlinks530), in alternative implementations, an example document may include additional features, fewer features, different features, or differently arranged features than those depicted inFIG. 5.

As mentioned above, sitelink management system140may identify hyperlinks530within document500, determine the visual locations of hyperlinks530within document500, and score hyperlinks530based on visual locations corresponding to hyperlinks530. In one example, sitelink management system140may score hyperlinks530by identifying different hyperlink groups within document500and identifying which hyperlink group seems to be the most significant with respect to document500.

For instance, in example document500, sitelink management system140may identify or otherwise define one hyperlink group as hyperlinks530-1through530-5since each of hyperlinks530-1and530-5appear in document500as a sequence of contiguous hyperlinks530(or hyperlinks530appearing together on an X-axis or a Y-axis). Sitelink management system140may identify another hyperlink group as hyperlinks530-6through530-8since hyperlinks530-6through530-8appear in document500as a sequence of continuous hyperlinks530(or hyperlinks530appearing together on an X-axis or a Y-axis). Sitelink management system140may identify another hyperlink group as hyperlinks530-9through530-11, and another hyperlink group as hyperlinks530-12through530-15, for similar reasons. Hyperlink management system140may determine that the hyperlink group corresponding to hyperlinks530-1through530-5is the most significant to document500since the hyperlink group corresponding to hyperlinks530-1through530-5includes the largest quantity hyperlinks530and/or appear closest to the top of document500.

Additionally, or alternatively, sitelink management system140may determine the importance or significance of each hyperlink530within a hyperlink group. For example, referring to the hyperlink group that includes hyperlink530-1through hyperlink530-5, sitelink management system140may determine that hyperlink530-1is the most significant of the hyperlink group because of the visual location of hyperlink530-1. For similar reasons, sitelink management system140may determine that hyperlink530-5is the least significant of the hyperlink group. As such, sitelink management system140may score hyperlinks530based on a visual location corresponding to each hyperlink530.

FIG. 6is a diagram of an example of a DOM600according to one or more implementations described herein. As depicted inFIG. 6, DOM600may include elements610-1through610-4and hyperlink elements620-1through620-8. Elements610may include any type of DOM element (e.g., a TITLE element, a HEADER element, etc.).

Hyperlink elements620may include DOM elements corresponding to one or more hyperlinks530ofFIG. 5. For instance, hyperlink elements620-1through620-5may correspond to hyperlinks530-1through530-5, respectively. However, for simplicity, only some of hyperlinks530are represented by hyperlink elements620inFIG. 6. In addition, whileFIG. 6shows a particular number and arrangement of DOM features (e.g., elements610and hyperlink elements620), in alternative implementations, a DOM may include additional elements, fewer elements, different elements, or differently arranged elements than those depicted inFIG. 6.

As mentioned above, sitelink management system140may also, or alternatively, identify visual locations corresponding to hyperlinks within document500by obtaining software code corresponding to document500and using the software code to create DOM600. Sitelink management system140may define the visual location of hyperlink530based on a position of a corresponding hyperlink element620in DOM600. For instance, sitelink management system140may identify an X-coordinate and/or a Y-coordinate corresponding to each hyperlink element620and use the X-coordinate and/or Y-coordinate to identify or define visual locations, in addition to scoring one or more hyperlinks530corresponding to hyperlink element620.

Additionally, or alternatively, sitelink management system140may identify or define hyperlink groups based on two or more hyperlink elements620corresponding to the same X-coordinate or Y-coordinate. In addition, sitelink management system140may 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 element620. For instance, if hyperlink element620-1through hyperlink element620-8were all positioned along the same X-coordinate or Y-coordinate, sitelink management system140may determine, based on ancestor DOM elements610-2and610-4, that hyperlink elements620-1through620-5correspond to a different hyperlink group than hyperlink elements620-6through620-8. Ancestor DOM elements may also, or alternatively, be used to infer the manner and/or general location that one or more hyperlinks530may be presented when document500is displayed in a web browser. Accordingly, sitelink management system140may use DOM technologies to identify visual locations corresponding to hyperlinks530and/or score hyperlinks530based on the visual locations, which may include identifying hyperlink groups, scoring hyperlink groups, etc.

Returning now toFIG. 4, process400may include providing sitelinks, corresponding to hyperlinks530, according to the score of each hyperlink530(block450). For example, sitelink management system140may provide sitelinks, corresponding to hyperlinks530, according to the score of each hyperlink530. In some implementations, providing sitelinks may include sitelink management system140storing the sitelinks for later use, Additionally, or alternatively, sitelink management system140may provide sitelinks to search engine system130so that, for example, search engine system130may include one or more of the sitelinks in a search result document that provides search engine results. In some implementations, sitelink management system140may 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.

WhileFIG. 4shows a flowchart diagram of an example process400for 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 inFIG. 4.

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.

FIG. 7is a diagram of an example search result document700according to one or more implementations described herein. As depicted, search result document700may include a search parameters text box710, a search command button720, search engine results730, and a document navigation tool740. WhileFIG. 7shows a particular number and arrangement of document objects (e.g., search parameters text box710, search command button720, search engine results730, and document navigation tool740), in alternative implementations, search result document700may include additional document objects, fewer document objects, different document objects, or differently arranged document objects than those depicted.

Search parameters text box710may 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 button720may enable the user to cause a search query to be executed, based on the one or more search parameters, and search engine results730to be provided that are relevant to the one or more search parameters. Since search queries resulting in a large quantity of search engine results730may cause search engine results730to be displayed in multiple search result documents700, document navigation tool740may enable the user to navigate between the search result documents700containing search engine results730.

As depicted inFIG. 7, search engine results730may include one or more of a variety of information. For example, search engine results730-1,730-2,730-3, and730-4each include a document title (which may also be a hyperlink to a corresponding document500), a document description, and/or a document address, such as a uniform resource locator (URL). In addition, search engine results730-1and730-2each include sitelinks735, which may corresponds to high-score hyperlinks530of document500. As such, sitelink management system140may identify hyperlinks530within document500ofFIG. 5, determine a visual location of hyperlinks530within document500, score sitelinks530based on the visual locations of hyperlinks530, and provide, cause, or otherwise enable sitelinks530to be provided in accordance with the score of each hyperlink530. Providing sitelinks735based on the score of corresponding hyperlinks530may help ensure that the most significant hyperlinks530of document500are included in a search result that corresponds to document500.

FIG. 8is a diagram of example functional components of sitelink management system140according to one or more implementations described herein. As depicted inFIG. 8, sitelink management system140may be associated with a web810and may include a parser820, a document renderer830, a DOM tree840, existing sitelinks850, and a sitelink generator860. Web810may correspond to network120(e.g., the Internet). Existing sitelinks850may be provided by search engine system130and/or sitelink management system140.

Parser820may enable sitelink management system140to access a particular document (e.g., document500) via web810and/or scan (e.g., “parse”) the document500to identify hyperlinks within the document. In scenarios where a copy of the document is available in a data repository, sitelink management system140may 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 system140may be capable of identifying sitelinks within a document in one or more ways.

Document renderer830may enable sitelink management system140to render the document in a browser application. The browser application may be capable of computing or otherwise creating DOM tree840corresponding 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 system140may be capable of implementing browser applications and/or DOM trees to determine visual locations corresponding to hyperlinks within a document.

Sitelink generator860may enable sitelink management system140to score sitelinks530based on a visual location corresponding to each hyperlink530. 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 hyperlink530(e.g., each hyperlink530in 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 hyperlinks530corresponding to a particular hyperlink group, relative to a quantity of hyperlinks530corresponding to another hyperlink group within document500. A hyperlink score may be determined based on, for example, a visual location corresponding to a particular hyperlink530relative to the visual locations corresponding to one or more other hyperlinks530within document500. In one example, once sitelink management system140identifies a particular hyperlink group as have a higher score than another hyperlink group, sitelink management system140may disregard one or more hyperlinks530corresponding to the lower-score hyperlink group.

As depicted inFIG. 8, the document may already be associated with existing sitelinks850. In such scenarios, sitelink management system140may determine whether existing sitelinks850are consistent with the hyperlinks identified and scored by sitelink management system140. In some implementations, existing sitelinks850that are not consistent with hyperlinks530identified and scored by sitelink management system140may be deleted, disassociated from the document, or otherwise handled so that the inconsistent sitelinks are not displayed in a corresponding search engine result730or do not take score over the sitelinks identified and scored by sitelink management system140.

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

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 system140and/or by another system.

Accordingly, systems and devices, described herein, may be used to enhance the information provided in search engine results. For example, sitelink management system140may receive a request for sitelinks corresponding to a document. Sitelink management system140may scan the document to identify hyperlinks included within the document and determine visual locations corresponding the hyperlinks within the document. Sitelink management system140may 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.

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

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.