When searching the World Wide Web (the “Web”) for travel information, it is not uncommon for users to utilize multiple Web sites to locate sought-after information. For instance, it is not uncommon for a user to utilize a search engine to identify a Web site that contains interesting travel information for a location. After viewing the identified Web site, it is also not uncommon for the user to then navigate to a map Web site in order to view a map of the location. Navigation between multiple Web sites in this manner can be a frustrating and time consuming experience for users interested in quickly and easily locating travel information about a location along with a map of the location. It can also be difficult for users to locate information regarding other interesting sites near the location.
It is with respect to these and other considerations that the disclosure made herein is presented.
Concepts and technologies are disclosed herein for travelogue-based contextual map generation. Through an implementation of the concepts and technologies presented herein, locations mentioned within a Web page can be identified. A map can then be displayed in conjunction with a display of the Web page that encompasses the locations mentioned in the Web page. The displayed map can be displayed without any user intervention. In this way, a user can be presented with a map configured to the contextual content of a Web page without requiring the user to navigate away from the Web page to a site that provides maps.
According to one aspect, a map user interface control (“map control”) is provided herein. The map control provides functionality for displaying a map in conjunction with the display of a Web page, such as within a Web browser application program. In various embodiments, program code may be embedded within a Web page that causes the map control to be instantiated when the Web page is rendered by the Web browser application program.
In various embodiments, the map control operates in conjunction with a location extraction component that analyzes the contents of the Web page to identify locations mentioned therein. The location extraction component might utilize a gazetteer containing location names in order to identify locations mentioned in the Website. For instance, a gazetteer might be utilized to identify possible name candidates, a classifier might then be utilized to identify location names from the name candidates, and ambiguity resolution might then be performed to distinguish between different locations having the same name.
Once the location extraction component has identified the locations mentioned in the Web page, a map is generated that encompasses the locations identified in the Web page. A map server might be utilized in embodiments to generate the map. Once the map has been generated, the map control displays the map in conjunction with the display of the Web page. For instance, if the Web page includes text, the map control might display the map in conjunction with the display of the text of the Web page. The names of the locations in the text might also be emphasized.
According to various embodiments, the map includes visual indicators corresponding to the locations identified in the Web page. According to yet other embodiments, the map might also include visual indicators corresponding to other locations near the locations identified in the Web page. To provide this functionality, a co-occurrence extraction component generates co-occurrence values for a set of travelogues. Each co-occurrence value is an integer value that specifies the number of times two locations are mentioned in the same travelogue for the entire set of travelogues. Travelogues are textual descriptions of a person's experience with a particular location. For instance, a person might travel to New York City and write a travelogue that describes their travel experience. In addition to a description of the person's travel experience with a particular location, a travelogue might also include a description of the person's experience with other, related locations.
Once the co-occurrence values have been generated, these values can be utilized to identify other locations near the locations mentioned in the Web page. In particular, the co-occurrence values are searched in order to identify those other locations that have non-zero co-occurrence values with respect to the locations identified in the Web page. The other locations having non-zero co-occurrence values with respect to the specified location can then be displayed on the map. In one embodiment, only those other locations having the highest co-occurrence values with respect to the locations identified in the Web page may be displayed.
It should be appreciated that the above-described subject matter might also be implemented as a computer-controlled apparatus, a computer process, a computing system, or as an article of manufacture such as a computer-readable storage medium. These and various other features will be apparent from a reading of the following Detailed Description and a review of the associated drawings.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended that this Summary be used to limit the scope of the claimed subject matter. Furthermore, the claimed subject matter is not limited to implementations that solve any or all disadvantages noted in any part of this disclosure.
The following detailed description is directed to technologies for travelogue-based contextual map generation. While the subject matter described herein is presented in the general context of program modules that execute in conjunction with the execution of an operating system and application programs on a computer system, those skilled in the art will recognize that other implementations may be performed in combination with other types of program modules. Generally, program modules include routines, programs, components, data structures, and other types of structures that perform particular tasks or implement particular abstract data types. Moreover, those skilled in the art will appreciate that the subject matter described herein may be practiced with other computer system configurations, including hand-held devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, mainframe computers, and the like.
In the following detailed description, references are made to the accompanying drawings that form a part hereof, and which are shown by way of illustration specific embodiments or examples. Referring now to the drawings, in which like numerals represent like elements throughout the several figures, aspects of a computing system, computer-readable storage medium, and computer-implemented methodology for travelogue-based contextual map generation will be presented.
Referring now to
It should also be appreciated that although a single client computer 102 and two server computers 104A-104B have been illustrated in
According to one implementation, the server computer 104A is configured to execute a Web server application 110. As known in the art, a Web server application 110 is configured to receive and respond to requests for Web sites, such as the Web site 112. As also known in the art, a Web site 112 is a collection of Web pages, like the Web page 116, and related content such as graphics, audio, and multimedia files. A user of the client computer 102 may utilize the Web browser 108 to establish a connection with the Web server application 110 and to view and interact with the Web site 112.
According to one implementation, the Web site 112 includes a Web page 116 that has program code 118 embedded therein. As will be described in greater detail below, the program code 118 causes a map control 120 stored at the map server computer 104B to be embedded within the Web page 116 when rendered by the Web browser 108. According to embodiments, the program code 118, which may be referred to herein simply as code 118, may comprise script or other types of program code that may be embedded within a Web page 116.
As will be discussed in greater detail below, the map control 120 executes in conjunction with a location extraction component 122. The location extraction component 122 is configured to identify the names of locations mentioned in the Web page 116. Once the location extraction component 122 has identified the names of the locations mentioned in the Web page 116, the map control 120 is configured to retrieve a map encompassing the identified locations from the map server application 114. As known in the art, the map server application 114 comprises an executable program component for generating maps.
Once the appropriate map has been generated, the map control 120 executes within the Web browser 118 and causes the generated map to be displayed in-line with the rendering of the Web page 116. As will also be described in greater detail below, the map might include visual indicators corresponding to the locations identified in the Web page 116. Additionally, the map might also include visual indicators corresponding to other popular locations near the locations identified in the Web page 116. To provide this functionality, the map control 120 also operates in conjunction with a co-occurrence extraction component that generates co-occurrence values. The co-occurrence values can then be utilized to identify other locations near the locations mentioned in the Web page 116. Additional details regarding the operation of the location extraction component 122 will be described below with respect to
Turning now to
In order to identify locations in a Web page 116, the location extraction component 122 might utilize a gazetteer that contains location names in order to identify the locations mentioned in the Web site 112. For instance, the gazetteer might be utilized to identify possible name candidates, a classifier might then be utilized to identify location names from the candidates, and ambiguity resolution might then be performed to distinguish between different locations that have the same name.
According to various embodiments, the location extraction component 302 might also be configured to take a set of travelogues as input. As discussed briefly above, travelogues are textual descriptions of a person's experience with a particular location and might also include a description of the person's experience with other, related locations. The location extraction component 302 analyzes the travelogues to identify all of the locations mentioned therein. As will be described in greater detail below, the locations identified in the set of travelogues can be utilized to identify other popular locations near the locations identified in a Web page 116. This process is described in greater detail below with respect to
Turning now to
In particular,
The co-occurrence extraction component 302 computes co-occurrence values for the identified locations 202. As discussed briefly above, a co-occurrence value is an integer value that specifies the number of times two locations are mentioned in the same travelogue over the entire set of travelogues. In order to compute the co-occurrence value, the number of times each pair of locations 202 occurs within the entire universe of travelogues is computed by the co-occurrence extraction component 302. The co-occurrence values 304 are then stored for use in providing information regarding popular locations near the locations identified in a Web page 116 in the manner described below.
Referring now to
It should be appreciated that the logical operations described herein with respect to
The routine 400 begins at operation 402, where the code 118 is embedded in the Web page 116. As described above, the code 118 provides functionality for embedding the map control 120 into the Web page 116. As also discussed above, the code 118 may comprise script that can be embedded in-line with the markup of the Web page 116. An owner of the Web site 112 and the Web page 116 may place the code 118 into the Web page 116. Alternately, the program code 118 may be placed into the Web page 116 by another program. Once the program code 118 has been embedded in the Web page 116, the routine 400 proceeds to operation 404.
At operation 404, the Web browser 108 requests the Web page 116. In response thereto, the Web server application 110 provides the Web page 116 to the Web browser 108. The Web browser 108 renders the Web page 116, including the program code 118, which causes the map control 120 to be instantiated. As discussed briefly above, when instantiated the map control 120 provides a display in-line with the display of the Web page 116 that includes a map containing locations mentioned within the Web page 116.
In order to provide the above-described functionality for generating and displaying a map encompassing the locations mentioned within the Web page 116, the routine 400 proceeds to operation 406. At operation 406, the location extraction component 122 identifies locations mentioned within the Web page 116 in the manner described above with reference to
From operation 408, the routine 400 proceeds to operation 410, where the map control 120 also displays visual indicators on the map for other popular locations near the locations identified in the Web page 116. As described above, the co-occurrence values 304 generated by the co-occurrence extraction component 302 can be utilized to identify the other locations. Once the other locations have been displayed on the map, the routine 400 proceeds to operation 412, where it ends.
Turning now to
In the screen display 500B shown in
According to other aspects, the locations identified in the text 502 might be emphasized in order to highlight the locations as compared to the remainder of the text 502. For instance, in the example screen display shown in
According to other embodiments, the map 602 might include functionality for permitting a user to interact with the contents of the map. For instance, user interface controls may be provided which, when selected, allow a user to zoom into or pan around the map 602. Additionally, other views may be provided, including a two-dimensional view and a three-dimensional view. Other information may also be overlaid on the map 602, such as roads, traffic, and satellite imagery. Other similar functionality for interacting with the map 602 may also be provided in other embodiments.
The computer architecture shown in
The mass storage device 610 is connected to the CPU 602 through a mass storage controller (not shown) connected to the bus 604. The mass storage device 610 and its associated computer-readable media provide non-volatile storage for the computer 600. Although the description of computer-readable media contained herein refers to a mass storage device, such as a hard disk or CD-ROM drive, it should be appreciated by those skilled in the art that computer-readable media can be any available computer storage media that can be accessed by the computer 600.
By way of example, and not limitation, computer-readable media may include volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules or other data. For example, computer-readable media includes, but is not limited to, RAM, ROM, EPROM, EEPROM, flash memory or other solid state memory technology, CD-ROM, digital versatile disks (“DVD”), HD-DVD, BLU-RAY, or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by the computer 600.
According to various embodiments, the computer 600 may operate in a networked environment using logical connections to remote computers through a network such as the network 620. The computer 600 may connect to the network 620 through a network interface unit 606 connected to the bus 604. It should be appreciated that the network interface unit 606 may also be utilized to connect to other types of networks and remote computer systems. The computer 600 may also include an input/output controller 612 for receiving and processing input from a number of other devices, including a keyboard, mouse, or electronic stylus (not shown in
As mentioned briefly above, a number of program modules and data files may be stored in the mass storage device 610 and RAM 614 of the computer 600, including an operating system 618 suitable for controlling the operation of a networked desktop, laptop, or server computer. The mass storage device 610 and RAM 614 may also store one or more program modules. In particular, the mass storage device 610 and the RAM 614 may store the location extraction component 122, the co-occurrence extraction component 302, the Web server application 110, and the map control 120, each of which was described in detail above with respect to
It should be appreciated that the software components described herein may, when loaded into the CPU 602 and executed, transform the CPU 602 and the overall computer 600 from a general-purpose computing system into a special-purpose computing system customized to facilitate the functionality presented herein. The CPU 602 may be constructed from any number of transistors or other discrete circuit elements, which may individually or collectively assume any number of states. More specifically, the CPU 602 may operate as a finite-state machine, in response to executable instructions contained within the software modules disclosed herein. These computer-executable instructions may transform the CPU 602 by specifying how the CPU 602 transitions between states, thereby transforming the transistors or other discrete hardware elements constituting the CPU 602.
Encoding the software modules presented herein may also transform the physical structure of the computer-readable media presented herein. The specific transformation of physical structure may depend on various factors, in different implementations of this description. Examples of such factors may include, but are not limited to: the technology used to implement the computer-readable media, whether the computer-readable media is characterized as primary or secondary storage, and the like. For example, if the computer-readable media is implemented as semiconductor-based memory, the software disclosed herein may be encoded on the computer-readable media by transforming the physical state of the semiconductor memory. For example, the software may transform the state of transistors, capacitors, or other discrete circuit elements constituting the semiconductor memory. The software may also transform the physical state of such components in order to store data thereupon.
As another example, the computer-readable media disclosed herein may be implemented using magnetic or optical technology. In such implementations, the software presented herein may transform the physical state of magnetic or optical media, when the software is encoded therein. These transformations may include altering the magnetic characteristics of particular locations within given magnetic media. These transformations may also include altering the physical features or characteristics of particular locations within given optical media, to change the optical characteristics of those locations. Other transformations of physical media are possible without departing from the scope and spirit of the present description, with the foregoing examples provided only to facilitate this discussion.
In light of the above, it should be appreciated that many types of physical transformations take place in the computer 600 in order to store and execute the software components presented herein. It also should be appreciated that the computer 600 may comprise other types of computing devices, including hand-held computers, embedded computer systems, personal digital assistants, and other types of computing devices known to those skilled in the art. It is also contemplated that the computer 600 may not include all of the components shown in
Based on the foregoing, it should be appreciated that technologies for travelogue-based contextual map generation are provided herein. Although the subject matter presented herein has been described in language specific to computer structural features, methodological and transformative acts, specific computing machinery, and computer readable media, it is to be understood that the invention defined in the appended claims is not necessarily limited to the specific features, acts, or media described herein. Rather, the specific features, acts and mediums are disclosed as example forms of implementing the claims.
The subject matter described above is provided by way of illustration only and should not be construed as limiting. Various modifications and changes may be made to the subject matter described herein without following the example embodiments and applications illustrated and described, and without departing from the true spirit and scope of the present invention, which is set forth in the following claims.
Number | Name | Date | Kind |
---|---|---|---|
6182008 | Nikiel et al. | Jan 2001 | B1 |
6321158 | DeLorme et al. | Nov 2001 | B1 |
7379811 | Rasmussen et al. | May 2008 | B2 |
7463976 | Nomura | Dec 2008 | B2 |
7472338 | Carro | Dec 2008 | B2 |
7475010 | Chao | Jan 2009 | B2 |
7548915 | Ramer et al. | Jun 2009 | B2 |
7698332 | Liu et al. | Apr 2010 | B2 |
7734641 | Kanigsberg et al. | Jun 2010 | B2 |
7788134 | Manber et al. | Aug 2010 | B1 |
8095303 | Nesbilt et al. | Jan 2012 | B1 |
20020128767 | Cardno et al. | Sep 2002 | A1 |
20020143490 | Maeda et al. | Oct 2002 | A1 |
20030093217 | Petzold et al. | May 2003 | A1 |
20040059708 | Dean et al. | Mar 2004 | A1 |
20050216464 | Toyama et al. | Sep 2005 | A1 |
20050234991 | Marx et al. | Oct 2005 | A1 |
20050278378 | Frank | Dec 2005 | A1 |
20060047690 | Humphreys et al. | Mar 2006 | A1 |
20060230033 | Halevy et al. | Oct 2006 | A1 |
20070005419 | Horvitz et al. | Jan 2007 | A1 |
20070010942 | Bill | Jan 2007 | A1 |
20070150188 | Rosenberg | Jun 2007 | A1 |
20070179863 | Stoll | Aug 2007 | A1 |
20070198182 | Singh | Aug 2007 | A1 |
20070219968 | Frank | Sep 2007 | A1 |
20080010605 | Frank | Jan 2008 | A1 |
20080033903 | Carol et al. | Feb 2008 | A1 |
20080082578 | Hogue et al. | Apr 2008 | A1 |
20080086468 | Jing et al. | Apr 2008 | A1 |
20080086686 | Jing et al. | Apr 2008 | A1 |
20080125969 | Chen et al. | May 2008 | A1 |
20080319974 | Ma et al. | Dec 2008 | A1 |
20090005981 | Forstall et al. | Jan 2009 | A1 |
20090019066 | Wang et al. | Jan 2009 | A1 |
20090070297 | Hadzima et al. | Mar 2009 | A1 |
20090119255 | Frank et al. | May 2009 | A1 |
20090156229 | Hein et al. | Jun 2009 | A1 |
20100179754 | Faenger et al. | Jul 2010 | A1 |
20110072025 | van Zwol et al. | Mar 2011 | A1 |
20110077848 | Xiao et al. | Mar 2011 | A1 |
20110078139 | Xiao et al. | Mar 2011 | A1 |
20110252025 | Jin et al. | Oct 2011 | A1 |
20110264655 | Xiao et al. | Oct 2011 | A1 |
20110264664 | Xiao et al. | Oct 2011 | A1 |
20110271232 | Crochet et al. | Nov 2011 | A1 |
Number | Date | Country | |
---|---|---|---|
20110078575 A1 | Mar 2011 | US |