SYSTEM AND METHOD TO ALLOW A DOMAIN NAME SERVER TO PROCESS A NATURAL LANGUAGE QUERY AND DETERMINE CONTEXT

A method for processing a natural language query and determining context includes receiving a natural language query from a user device, determining context of the user device, using the determined context to identify a web server having information related to the natural language query, sending information identifying the user device and the natural language query to the web server; and identifying the web server to the user device.

DETAILED DESCRIPTION

As used herein, the term “user device” includes a device capable of receiving content from a web site and transmitting information to a website. A user device can be a stationary device, a wireless device or a mobile device.

As used herein, the term “user” refers to an individual receiving content on a user device and transmitting information to a website.

As used herein, the term “context” refers to any or all attributes of the user or the user device, such as physical, logical, social and other contextual information.

As used herein, the terms “context aware metadata” and “contextual metadata” refer to metadata that describes or defines the context of a user or a user device.

As used herein, the term “context aware content” refers to content that is delivered to a user device and that is tailored to a user's context.

As used herein, the term “web property” refers to an entity having one or more websites having one or more web pages.

As used herein, the term “natural language” refers to a search query that can be entered into an electronic device, where the search query does not include sufficient information to allow a domain name server (DNS) to map the search query directly to a domain name and/or an Internet Protocol (IP) address. An example of a natural language search query is one that does not include a domain name or sufficient portions of a domain name to allow a DNS to identify an IP address corresponding to the query.

In an embodiment, a system and method to allow a domain name server (DNS) to process a natural language query and determine context can be implemented as part of a system that allows a wireless device to access the World Wide Web.

FIG. 1is a functional block diagram of an embodiment of a system and method to allow a domain name server (DNS) to process a natural language query and determine context. The system100will be described in the context of a local area network (LAN), such as a wireless network located within a particular location or venue. However, the system100is applicable to other types of networks and locations. In an embodiment, the system100will be described using a wireless fidelity (WiFi) network implemented at a location or at a venue. Examples of such locations include an airport, a sporting event venue, a shopping mall or shopping district, an entertainment venue, a theme park, or any other location.

The system100comprises a user device102, a network106, a domain name server (DNS)108, a web server110, a web server120and a query engine112. The user device102comprises a web browser104, such as a hypertext transfer protocol (HTTP) web browser104for accessing and viewing web content. The web server110and the web server120can each be an HTTP server. The user device102can be a stationary device or a mobile device. In an embodiment, the user device102is a mobile device, such as a smart phone that can wirelessly connect to the network106. In an embodiment, the network106can comprise one or more networks and comprises functionality that provides a number of processing and communication functions, including, but not limited to, one or more access points (AP)105a,105band105c, as examples, and router/switch logic107. The location of the user device102within the system100can, at least in part, be determined by a location/position element116that is connected to the router/switch logic107, and by the access point105to which the user device102is connected. In an embodiment, the user device102is connected to the network106through the access point105aover a wireless connection103. In this example, the wireless connection103may be a WiFi connection, or another wireless connection. In an embodiment, the location/position element116can determine the particular access point (AP105ain this example) to which the user device102is connected, and can therefore determine the location of the user device102at least to within a level of granularity determined by the router/switch logic107, the network106, and the location/position element116, depending on the size of the area covered by the particular access point to which the user device102is connected. Moreover, information, such as signal strength, bit error rate (BER), round trip latency between the user device102and the network106, or other parameters, from each access point can be analyzed by the location/position element116to further determine the location of the user device102within the system100.

The DNS108is coupled to the network106over a bi-directional connection109and to the location/position element116over bi-directional connection113. The location/position element116is also coupled to the router/switch logic107over bi-directional connection121. The bi-directional connections109,113and121can comprise one or more direct connections, wireless connections, and/or networks. The DNS108and the location/position element116can be located within the network106or outside of the network106. The DNS108can use the location/position element116to determine the location of the user device102.

The DNS108implements a domain name system, which is a standard technology for managing the names of Web sites and other Internet domains. Domain name system technology allows a user to type a domain name into a web browser and a DNS108automatically finds an IP address on the Internet that corresponds to the domain name. However, in some instances, the domain name is not known or is not available to the user, or the user wishes to use a natural language search query for other reasons. However, a DNS cannot map a natural language search query to an IP address. In an embodiment, the DNS108also comprises a query cache113. The query cache113can contain associations and/or resolutions for every IP address processed by the DNS108. The query cache113allows a web server to have access to an original natural language query sent by the user device102.

The query engine112is connected to the DNS108over a bi-directional connection111. The bi-directional connection111can comprise one or more direct connections, wireless connections, and/or networks. In an embodiment, the connections109and111may form at least part of a local area network (LAN) to which the DNS server108and the query engine112are connected.

The query engine112comprises a search parser115and a table125. In an embodiment, the search parser115receives a natural language query from the user device102, via the DNS108, and the location or position of the user device102from the DNS108and together with the query engine112attempts to apply context aware parameters (such as the location of the user device102) to the natural language query to determine a domain or an IP address that is likely to correspond to the subject matter of the natural language query. In an embodiment, the table125contains a listing of topics generated from parsed search queries and the domain or IP address information of a web server that is likely to have the information related to the natural language search query. The table125may contain any metadata and/or description of a data association. For example the word “flight” in the context of an airport would mean a gate & flight number, but in the context of an amusement park, the word “flight” would refer to an amusement attraction. Although shown as residing outside of the DNS108, the query engine112may be incorporated into the DNS108, or may be part of another element connected to the network106and accessible by the DNS108.

Once the query engine112determines one or more possible or likely IP addresses or domains that may at least partially match or correspond to the subject of the natural language query and sends this information to the DNS108, the DNS108sends the IP address of the user device and the query subject to an appropriate web server. An appropriate web server is one that likely contains information related to the natural language query and that is identified by the DNS108. In an example, the appropriate web server is the web server110. The DNS108also sends a domain name (and/or IP address) of the appropriate web server, such as the web server110, to the user device102so that the user device102is aware that the web server110is a likely source for an answer corresponding to the natural language query.

The DNS108is connected to the web server110over a bi-directional connection119, and is connected to the web server120over a bi-directional connection117. The bi-directional connections117and119can comprise one or more direct connections, wireless connections, and/or networks.

In an embodiment in which the web server110is the likely source for an answer corresponding to the natural language query, the web server110may access the query cache113in the DNS108so when the web server110receives the actual request from the DNS108, the web server110can access the query cache113to determine the original natural language query sent by the user device102. An example of the information contained in the query cache113may be [IP, UA123, www.domain1.com], where the term “IP” refers to the IP address of the user device102, the term “UA123” is the natural language query, and the term “www.domain1.com” refers to the URL of the web server110.

Once the user device102obtains from the DNS108a domain name, an IP address, or other identifier, of an appropriate web server, such as the web server110, the user device then sends an HTTP request to the web server110. The HTTP request may include contextual information related to the user device102. In this manner, the DNS108points the web browser104on the user device102to the most appropriate source for an answer to the original natural language query.

The web server110matches the IP address of the user device102received from the DNS108with the IP address of the user device in the recently received HTTP request, as shown by table130. The web server110then sends appropriate content (a response to the natural language query) to the user device102based on the context provided by the DNS108.

FIG. 2is a call flow diagram200illustrating an embodiment of a method to allow a domain name server (DNS) to process a natural language query and determine context. The diagram200illustrates the operation of various elements inFIG. 1for reference. As an example, call202represents a natural language search query entered into a web browser104in a user device102. The call202is sent via the network106to the DNS108. In this example, the user device102can be located in an airport and the natural language query can be a flight number, such as “UA123.” In this example, the natural language query “UA123” does not include any information related to a domain name and therefore, the DNS108cannot map “UA123” directly to a domain name or to an IP address.

The DNS108receives the natural language query and attempts to return a domain name or an IP address relating to the natural language query “UA123.” However, the DNS108cannot locate a domain or an IP address that corresponds to “UA123.” The DNS108engages the location/position element116. The call204represents the DNS108contacting the location/position element116to determine the location of the user device102.

The call206represents the location/position element116returning the location of the user devoice102to the DNS108.

The call208sent from the DNS108to the query engine112represents the DNS108attempting to determine a domain or an IP address for the natural language query “UA123.” The call208includes the location information provided by the location/position element116.

The DNS108employs the location/position element116and the query engine112to determine the context (in this example, the location) of the user device102, and an appropriate web server that may have information that satisfies the natural language query “UA123” based on the context information obtained from the location/position element116and the natural language query. This is accomplished without employing an external search engine, such as a search engine or a search function provided by Google or Yahoo, for example.

The call210represents the query engine112returning to the DNS108with an IP address, or other identifier, of a web server that likely includes the information relating to the natural language query. In this example, the query engine112determines that the web server110(FIG. 1) is the likely source of the information sought by the natural language query “UA123.”

After determining the context, such as the physical location of the user device102from the location/position element116, and a likely web server to respond to the query from the query engine112, the DNS108sends a call212to the appropriate web server110. The call212includes the IP address of the user device102and includes the subject of the query (“UA123”) that is embodied in the call202. This is illustrated in the table130inFIG. 1as the “Query and IP Address of User Device” being placed in the table130accessible by the web server110.

The DNS108also sends a call214having the domain name and/or IP address of the web server110to the user device102. In this example, the domain is “www.domain1.com.”

Having the domain name and/or IP address of the web server110, the user device102issues a call216to the web server110. The call216includes an HTTP request directed to the IP address of the web server110. The call includes the IP address of User Device, as illustrated in the table130inFIG. 1. The web server110matches the IP address and query (“UA123”) of the user device102received from the DNS108with the IP address of the user device just received in the HTTP request in call216. In response, the web server110responds to the user device102with a call218representing the appropriate content (query response) based on the context provided by the DNS108.

In an embodiment in which the web server110is the likely source for an answer corresponding to the natural language query, the web server110may access the query cache113in the DNS108so when the web server110receives the actual request from the DNS108(call212), the web server110can access the query cache113to determine the original natural language query sent by the user device102. In this example, the original natural language query was “UA123.” The contents of the query cache113would be [IP, UA123, www.domain1.com], where the term “IP” refers to the IP address of the user device102, the term “UA123” is the natural language query, and the term www.domain1.com refers to the URL of the web server110.

FIGS. 3A and 3Bcollectively are a flow chart300illustrating an embodiment of a method to allow a domain name server (DNS) to process a natural language query and determine context. In block302, a DNS server108receives a natural language query from a user device102. An example of a natural language query is a flight information request in the form of typing “UA123” into the browser104. The natural language query “UA123” is intended to be a simplified example using flight information being sought at an airport. Any natural language query can be processed as described herein.

In block304, the DNS108determines if the query received in block302resolves to a domain name or to an IP address. If the query resolves to a domain name or to an IP address, then in block306the DNS108issues a domain name and/or an IP address corresponding to the request to the web browser104and the process ends.

If the query does not resolve to a domain name or to an IP address, then, in block308the DNS108determines the context of the user device and attempts to process the query and determine an appropriate web server that is likely to have information corresponding to the query. In an embodiment, the DNS108receives the natural language query and employs the location/position element116and the query engine112to determine the context (in this example, the location) of the user device102, and to determine an appropriate web server that may have information that satisfies the natural language query. For example, the DNS108can call the location/position element116in an attempt to determine the location of the user device102. In this example, the location/position element116returns the location of the user device102to the DNS108. The DNS108then forwards the natural language query and the location of the user device102to the query engine112. This is accomplished without employing an external search engine, such as a search engine or a search function provided by Google or Yahoo, for example.

In block310, the search parser115in the query engine112parses the natural language query, the query engine112applies the location information provided by the DNS108, and compares the parsed natural language query to a table125of web servers that may or that may likely correspond to the parsed natural language query. For example, the search parser115will map the input (user input) into a topic. In this example, the query UA123 will be mapped to the topic called “FLIGHT NUMBER”. The table125contains an entry corresponding to (FLIGHT NUMBER, Location: Airport, web site location of appropriate source of information (e.g., www.gatefinder.com for airport gate information). The table125may contain other entries as well that may be related to the natural language query, such as, for example, another entry like (FLIGHT NUMBER, location: Mall, web site location of mall map) and another entry like (FLIGHT NUMBER, Location: All but airport and malls, web site location of flight tracker). The query engine112sends to the DNS108the IP address, or another identifier, of one or more selected web servers that likely contain the information related to the natural language query.

In block312, the DNS108uses the response from the query engine112and sends the IP address of the user device102and the query subject (“UA123”) to the selected web server110.

In block314, the DNS108sends the IP address, or other identifier, of the selected web server110to the user device102.

In block316, the user device102sends an HTTP request to the selected web server110. The HTTP request may include information related to the context (such as the location) of the user device102.

In block318, the selected web server110matches the IP address and query subject (“UA123”) of the user device102received from the DNS108with the IP address of the user device102just received in the HTTP request. The web server110may access the query cache113in the DNS108(FIG. 1) so that when the web server110receives the actual processed request from the DNS108, the web server110can access the query cache113to determine the original natural language query sent by the user device102.

In block322, the selected web server110responds to the user device102with the appropriate content (query response to (“UA123”)) based on the context provided by the DNS108.

FIG. 4is a block diagram of the query engine ofFIG. 1.

A natural language query is provided to the search parser115from the DNS108(FIG. 1). The search parser115comprises a processor402and a memory404operatively coupled together over a bus406. The processor402can be a general purpose or special purpose microprocessor, or any other processor capable of executing instructions. The memory404can be any type of volatile or non-volatile memory, and in an embodiment, can include flash memory. The bus406can comprise physical and logical connections that allow the memory404and the processor402to communicate and interoperate, and that allow the processor402to execute the instructions provided by parse logic410and comparison logic415.

In this example, the parse logic410and the comparison logic415are located in the memory404and are accessible to the processor402for execution. In an embodiment, a natural language query from the DNS108is operated on by the parse logic410so as to analyze and deconstruct the query into its constituent components, resulting in a parse tree408showing their syntactic relation to each other, which may also contain semantic and other information. In this example, the natural language query is “UA123” and the parse logic410deconstructs the query to its constituent terms “U”, “A”, and “123.” The parse logic410realizes that the search term “UA123” together with the contextual location information that informs the query engine112that the user is located at an airport, results in a parse tree408having the terms “United,” “Air,” “Lines,” and “123.” The relationship among these constituent terms is illustrated by the arrows connecting the terms. Having the location information and the parsed search terms “United,” “Air,” “Lines,” and “123” causes the query engine112to reach a conclusion that the natural language query “UA123” relates to information related to United Airlines, flight 123. For example, the search parser115will map the input “UA123” to a topic, where in this example, the topic is “FLIGHT NUMBER.”

FIG. 5is a block diagram of the table125ofFIG. 4. The search parser115maps the input “UA123” into the topic “FLIGHT NUMBER”. The table125contains an entry corresponding to (FLIGHT NUMBER, Location: Airport, web site location of appropriate source of information (e.g., www.gatefinder.com for airport gate information), indicating that the web server110having the domain www.gatefinder.com is the likely source for the answer to the query “UA123.”

The parse tree408is used to develop the table125, which associates the topic of the parsed query to one or more of the web servers110and120to determine which web server may be a likely source of the information sought in the query. In this example, the query engine112may also comprise comparison logic415configured to compare the parsed natural language query to the list of web servers that are likely to include information related to the parsed natural language. In this example, the query engine112may conclude that the web server110has gate information related to United Airlines flight number123and is selected to be the likely source of the information sought in the query.

In view of the disclosure above, one of ordinary skill in programming is able to write computer code or identify appropriate hardware and/or circuits to implement the disclosed invention without difficulty based on the flow charts and associated description in this specification, for example. Therefore, disclosure of a particular set of program code instructions or detailed hardware devices is not considered necessary for an adequate understanding of how to make and use the invention. The inventive functionality of the claimed computer implemented processes is explained in more detail in the above description and in conjunction with the FIGS. which may illustrate various process flows.

Also, any connection is properly termed a computer-readable medium. For example, if the software is transmitted from a website, server, or other remote source using a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (“DSL”), or wireless technologies such as infrared, radio, and microwave, then the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of medium.

Disk and disc, as used herein, includes compact disc (“CD”), laser disc, optical disc, digital versatile disc (“DVD”), floppy disk and Blu-Ray disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer-readable media.