WO2007040807A1 - Automated concierge system and method - Google Patents

Automated concierge system and method Download PDF

Info

Publication number
WO2007040807A1
WO2007040807A1 PCT/US2006/030550 US2006030550W WO2007040807A1 WO 2007040807 A1 WO2007040807 A1 WO 2007040807A1 US 2006030550 W US2006030550 W US 2006030550W WO 2007040807 A1 WO2007040807 A1 WO 2007040807A1
Authority
WO
WIPO (PCT)
Prior art keywords
location
network application
providing
user
mobile device
Prior art date
Application number
PCT/US2006/030550
Other languages
French (fr)
Inventor
James D. Shaffer
John F. Keaveney
Original Assignee
Targus Information Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Targus Information Corporation filed Critical Targus Information Corporation
Priority to CA002618005A priority Critical patent/CA2618005A1/en
Priority to EP06789455A priority patent/EP1913601A1/en
Publication of WO2007040807A1 publication Critical patent/WO2007040807A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • H04W4/029Location-based management or tracking services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/52Network services specially adapted for the location of the user terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • H04W4/024Guidance services

Definitions

  • This invention relates to an automated system and method for providing location- based concierge services to end users communicating over network devices, such as telephones and wireless devices, and utilizing third party network location-based service applications, such as Internet/Web locators.
  • network devices such as telephones and wireless devices
  • third party network location-based service applications such as Internet/Web locators.
  • concierge has evolved from its originally somewhat specific meanings such as a hotel staff member who handles luggage, reservations and tours, etc., to refer more generally to the provision of personalized services.
  • Many concierge services are location-based, such as identifying nearby restaurants or attractions, or providing local maps or directions.
  • the Internet and World Wide Web have helped spur the evolution in concierge services by providing mechanisms to facilitate and automate a variety of services.
  • the Internet and Web have also helped to spur innovation in location-based services (LBS) such as store locators, including the ability to generate maps and turn-by- turn directions. This in turn prompted the development of third party network LBS applications such as Internet/Web locators for users communicating over network devices such as telephones and wireless devices.
  • LBS location-based services
  • UPS Uniform Resource System
  • Yellow Pages ® from major telephone companies and many independent Yellow Pages ® publishers are available from a variety of websites that generally accept location identifiers such as a ZIP code or other postal code, street address and/or street intersection as a proxy for the user's current location or starting point of interest, hi some cases, such as Federal Express, a user can provide a 10- digit telephone phone number as the location identifier, which the website will associate with a physical location.
  • an automated concierge method comprises receiving a location-based service request from a user of a communication device, which may be a mobile or wireless device or a wire-line device, such as a request to find the nearest location of a particular merchant or type of merchant.
  • a communication device which may be a mobile or wireless device or a wire-line device, such as a request to find the nearest location of a particular merchant or type of merchant.
  • the request can come in a variety of ways, such as through a spoken request, a Graphical User Interface ("GUI") or other command input at a mobile or wireless device, or a text message.
  • GUI Graphical User Interface
  • a network application such as a website related to the service request is identified, for example, a store locator application on the Web.
  • An input to the network application is provided based on the coordinate location of the communication device, such as a street address, a ZIP+4 code, a USPS Delivery Point Code (DPC) or ZIP+6 code, or other postal code nearest to the location of a cell phone.
  • DPC Delivery Point Code
  • An output is received from the network application, such as the identification of the nearest location for a requested merchant and/or attributes related to a particular location relevant to the mobile device (e.g., directions, store hours, and the like) and a location-based service is provided to the mobile device based on the output, such as displaying or speaking back information about a nearby location, or directions to such a location.
  • a location-based service is provided to the mobile device based on the output, such as displaying or speaking back information about a nearby location, or directions to such a location.
  • methods of providing automated concierge services include obtaining multiple coordinate locations of a mobile device over time.
  • the coordinate location can be obtained from the mobile device or from a system external to the mobile device that determines the mobile device location, such as a cell phone network infrastructure.
  • a measure of the precision of the coordinate location of the mobile device is obtained and used in determining the type of information provided to the user in response to the service request.
  • the method of providing automated concierge services may include the option of receiving a spoken information request or a request derived from spoken information.
  • the request can also come from a text message or key entered data, or from input obtained through a graphical user interface.
  • the output from the concierge service can be a spoken output, e.g., text-to-speech or recorded voice, a text message output, or a graphical user interface output.
  • Methods of providing automated concierge services include accessing network applications, such as web applications available at company or other websites, hi some cases the websites can be company specific sites selected from multiple candidate sites, and in some cases they can be sites that provide information for multiple independent companies.
  • network applications such as web applications available at company or other websites
  • methods of providing automated concierge services include prompting a mobile device user to select an entity associated with a network application from multiple candidate entities.
  • an automated concierge service method or system may access one or more websites that provide information about multiple merchants or companies that provide a similar product or service or brand such as, for example, pizza restaurants or shoe repair shops or sports-related brands.
  • the concierge method accesses one ore more websites that provide information about multiple locations that provide the same brand, such as Reebok ® .
  • the method may include determining a street address, ZIP code, ZEP+4 code, DPC or ZIP+6 code, other type of postal code, or city and state based on the coordinate location of the mobile device for use as an input parameter to a website.
  • Multiple network applications may be queried with different inputs in a representative embodiment, such as querying a web store locator with a postal code and querying a different website to obtain related directions based on a street address.
  • Providing a location-based service to a mobile device can comprise providing information about multiple locations near to the mobile device, including directions to one or more nearby locations.
  • a communication session is established between a wireless device and a particular location identified by a network application, such as a voice link to a particular store or merchant identified by website store locator.
  • the concierge service can enable an order for a product or service from a particular location to be placed by the user of the communication device.
  • An automated LBS method includes obtaining a latitude and longitude pair of the current location of a mobile device, receiving a request for location-based information from a user of the mobile device, identifying a company-specific location-based web application related to the service request, translating the latitude and longitude pair to a location identifier for use as an input parameter to the web application, providing the location identifier to the web application, receiving an output from the web application, and providing information to the mobile device user based on the output.
  • automated LBS methods may include receiving an input parameter representing a location associated with a user communicating over a network, receiving a location-based service request initiated by the user selecting a web LBS application from multiple candidate web LBS applications based on the service request, providing the input parameter to the selected web LBS application, receiving an output from the web LBS application, and providing selected information from the output over the network for use in providing a location-based service to the user.
  • Different embodiments implement these methods either with or without interaction with a live operator.
  • Figure 1 is a block diagram illustrating a wireless device connected to a wireless carrier incorporating a concierge application according to an exemplary embodiment
  • Figure 2 is a functional block diagram of the concierge application of Figure 1
  • Figure 3 is a flowchart showing steps and processes of the concierge application
  • Figure 4 is a flowchart illustrating a method of initially setting up the concierge application according to an embodiment
  • Figure 5 is a block diagram illustrating multiple wireless devices connected to multiple carriers in a concierge method and system according to another embodiment.
  • Certain embodiments as disclosed herein provide a system and method for location-based concierge services, which utilizes network location-based services (LBS) applications, such as Internet/Web locators, available at various websites to provide information to end users communicating over network devices such as telephones and wireless devices.
  • LBS network location-based services
  • one method as disclosed herein allows for providing an automated concierge service, comprising receiving a location-based service request from a mobile device, such as a request to find the nearest location of a particular merchant, or to locate the closest store or business of a particular type, querying and obtaining a coordinate location of the mobile device, such as a latitude and longitude of a cell phone or personal digital assistant ("PDA"), creating a query in the appropriate format for an Internet/Web locator based upon the request to obtain information, and providing the obtained information to the mobile device in a format appropriate for that device.
  • a location-based service request from a mobile device
  • a coordinate location of the mobile device such as a latitude and longitude of a cell phone or personal digital assistant ("PDA")
  • PDA personal digital assistant
  • FIG. 1 is a block diagram illustrating a simplified example of a wireless device connected to a wireless carrier incorporating a concierge system according to one embodiment.
  • an end user wireless device 10 is connected to a wireless infrastructure 20, which in turn can communicate via the Internet 30 with websites identified as 40a, 40b through 4On, and generally referred to as 40.
  • the websites contain location based service (“LBS”) or network applications for locating various- types of merchants or services.
  • LBS location based service
  • the wireless infrastructure 20 comprises a wireless carrier 50, Mobile Positioning Center (“MPC”) 60, one or more Interactive Voice Response (“IVR”)/operator platforms 70, and a wireless concierge application or module 100.
  • the wireless carrier 50 represents those aspects of a wireless network, such as a cellular telephone network, that are not explicitly depicted in the figure. While Figure 1 illustrates the concierge application 100 and TVR/operators 70 as part of infrastructure 20,. these modules may also be located outside infrastructure 20, for example on one or more servers connected to the wireless infrastructure 20 through the Internet 30 or separate network connections.
  • the concierge application 100 facilitates access to a variety of different types of websites having location based service (“LBS") applications from the wireless device 10 without requiring the wireless device user to comply with the different locational input and query formats as required by the different websites or LBS applications 40.
  • the concierge application 100 is implemented as software running on a server on or in communication with the wireless carrier 50 network.
  • the concierge application 100 can be used in other network environments, for example when substituting a wire-line device such as a conventional telephone for the wireless device, in which case a different carrier such as a wire-line or VoIP telephony carrier may be substituted for the wireless carrier 50.
  • Wireless device 10 may be a cell phone, personal digital assistant (“PDA”), laptop computer, or the like.
  • PDA personal digital assistant
  • PCS personal communication services
  • GSM global system for mobile communications
  • CDMA code division multiple access
  • the particular protocols of the end user device and carrier are immaterial so long as it is possible to obtain or determine the location of the wireless device 10, to exchange voice and/or data to and from the end user wireless device 10, and to interface with the concierge application 100, which in turn can interface with the web LBS applications 40.
  • the illustrated wireless infrastructure 20 includes the MPC 60, which is configured to obtain and store the location of wireless devices 10.
  • Device locations can be obtained in a variety of ways depending on the particular wireless carrier 50 and/or the wireless device 10.
  • the MPC 60 can receive a location reported directly from the wireless device 10.
  • the infrastructure 20 can use network triangulation techniques to determine the location of the wireless device 10, although this can be less precise than when the device itself has a GPS receiver. There are other variations such as differential GPS and assisted GPS.
  • the wireless infrastructure 20 provides access via the Internet 30 to websites having LBS applications 40, which today are available from a number of companies or merchants.
  • Exemplary website LBS applications include store locators for many merchants, for example Domino's ® , Pizza Hut ® , other pizza delivery companies, restaurants of various types, a drop box locator for FedEx ® , a Starbucks ® website that provides a variety of Starbucks-related LBS applications, store websites, a generic Yellow Pages ® website that provides LBS applications based on compiled Yellow Pages ® business data, and a VISA ® ATM locator website, among others.
  • the wireless infrastructure 20 of FIG. 1 includes the concierge application 100 which provides the wireless device 10 with access to the LBS applications at websites 40.
  • the concierge application 100 can be implemented in software running on a computer such as a network server or the like separate from wireless infrastructure 20.
  • the concierge application 100 can be implemented in a first software application running on the wireless device 10 and capable of communicating with another software application running on a network server or a server incorporated into the wireless infrastructure 20.
  • FIG. 2 is a functional block diagram of one embodiment of a concierge application 100.
  • the concierge application comprises an interface module 510, a processing module 520, a website set up or initialization module 525, and an output module 530.
  • the interface module may comprise an IVR interface 511 for voice communications with a user, a text messaging interface 512 for communications using text messages, which is a popular form of communication for cell phones and PDAs, and a graphical user interface (GUI) or other command interface 513 for communications over a GUI or the like.
  • GUI graphical user interface
  • a GUI is commonly used by personal digital assistants ("PDA"s) and other devices like cell phones with bit-mapped displays. It will be understood that other types of user interface may be provided in interface module 510.
  • the processing module 520 is responsible for analyzing user requests, generating auxiliary questions in response to user requests, identifying websites for use in responding to user requests, generating queries for websites for obtaining information, and preparing answers to user requests based on information received from websites.
  • Processing module 520 comprises translators 521, database manager 522, and user location finder 524.
  • Translators 521 are configured to translate user communications into a format understood by the concierge application and to translate information retrieved by the concierge application from LBS websites into the format being utilized by a user's device. In other words, information or queries provided from the user are translated into a format compatible with the format which the concierge application uses to store information.
  • the data base manager 522 is linked to web page setup (initialization) module 525, and manages and maintains a list of concierge service categories with links to websites which may provide information appropriate for each of the service categories, as well as the contents of user input tables or scripts and concierge output tables or scripts.
  • the database manager 522 maintains user request information stored in input tables, verifies whether the concierge has sufficient information to answer the user's question, selects additional questions for the user, updates concierge output tables with information obtained from one or more selected LBS websites, and manages the output tables containing the information obtained from the LBS websites.
  • the list of service categories and associated- websites, along with the user input tables and concierge output tables, are initially set up by web page set up module 525, which is described in more detail below in connection with Figure 4.
  • the service categories are linked to the Uniform Resource Locators (URLs) of identified LBS websites in the database manager.
  • the list of categories and associated websites may, for example, link a particular merchant with the URL for that merchant's website, or may link a general type of merchant request with the URL or URLs of several merchants of that type, or to a more general search engine for locating different types of merchant.
  • a pizza restaurant service category may be linked to URLs of various different pizza restaurants.
  • the initialization process also involves setting up scripts or tables of appropriate user inputs and concierge outputs linked to each service category and website, as will be described in more detail below in connection with Figure 4.
  • the identified list of service categories and associated URLs, and the associated scripts or tables, are all stored by the data base manager 522.
  • the user location finder module 524 is configured to find the location of a wireless device from which a user request originated.
  • Device location may be found in various different ways in different embodiments.
  • the location finder module may query an MPC 60 to find the location of the user device.
  • Device location may alternatively be obtained directly from the user's wireless device, if equipped with a Global Positioning System (GPS) sensor.
  • GPS Global Positioning System
  • Network triangulation techniques may be used to find the location when the communication device is not a GPS device.
  • Various other location techniques may alternatively be used.
  • the output module 530 of the concierge application comprises an LBS website selector 531 and an information retriever 533.
  • the website selector 531 analyzes user request information contained in an input table or script, reviews the concierge's list of websites providing LBS services, and selects a website that can provide the information requested by the user.
  • the information retriever 533 retrieves the information from the selected LBS website and stores it in output tables. Because collecting information requested by the user may require multiple accesses to the LBS website and/or access to multiple LBS websites, the concierge application may have to invoke the LBS website selector 531 and the information retriever 533 more than once.
  • Figure 3 is a flowchart showing steps of an automated concierge method according to an embodiment, using the concierge application or system 100 of Figures 1 and 2. The steps can be performed in orders different than the one shown.
  • the concierge application receives a request for a location based service from a user of a communication device 10.
  • This request may be any location based service request, such as "find a Vietnamese restaurant', or "find Starbucks®", for example.
  • the request is received via interface module 510.
  • the user may communicate the LBS request to the concierge application by text messaging from a mobile phone or PDA, and communications will then proceed via the text messaging interface 512.
  • the text messaging interface 512 of the concierge application 100 establishes communication with the user and collects the messaging data stream.
  • the user may access the concierge application using a graphical user interface (GUI) displayed on the wireless device, and communications then proceed via GUI interface 513.
  • GUI graphical user interface
  • Such a graphical user interface on a communication device such as a cell phone or PDA may be provided with a menu for accessing the concierge application 100 and for clicking on certain frequently used types of requests, such as "Find the nearest Starbucks®” for example, as well as allowing the user to input specific or custom location based service requests. If the user contacts the concierge application 100 by launching a browser and contacting the URL for the concierge application, communications can proceed by displaying responses and receiving user input on the browser.
  • the user may contact the concierge application by dialing a dedicated telephone number (such as a 1-800 or 1-877 number or the like) provided for the concierge application and serviced by the wireless infrastructure 20.
  • a dedicated telephone number such as a 1-800 or 1-877 number or the like
  • device 10 is a mobile communication device or wireless device.
  • POTS Peer Old Telephone Service
  • the user may also request concierge service using a wire-line telephone via a POTS (Plain Old Telephone Service) network.
  • POTS Peer Old Telephone Service
  • the IVR interface 511 collects the voice input information from the user, plays additional questions to narrow down the search for the answer to the user's question, and accepts voice answers to such questions.
  • the concierge application 100 collects the information from the user using, for example, an IVR system.
  • IVR technology can allow the cell or wire-line phone user to use speech input and output to access the LBS website applications provided via the Internet.
  • a cell phone user may say "find the nearest Starbucks ® " and the concierge application 100, using a method such as those disclosed below, interacts with an IVR platform 70 to enable the wireless infrastructure to speak back the location and directions to the nearest Starbucks ® .
  • the information collected by the IVR system is translated by the translators 521 to the format understood by the concierge application 100. Then, the translators 521 parse the information into elements that can be stored in the user input tables (or arrays) described below in connection with FIG. 4.
  • methods of providing concierge services include a live operator, who can interact with the caller on request to obtain the necessary information which the concierge application 100 then communicates to the network applications (e.g., LBS websites).
  • a caller may request transfer to a live operator, or there is an automatic transfer to the live operator when there is a problem with the automated service, for example it is unable to obtain sufficiently precise instructions from the user in order to narrow down the search.
  • the operator obtains location information either automatically obtained from the network (e.g., lat/long, or a translated location such as an address, ZEP+4 code or a U.S.
  • DPC Postal Service Delivery Point Code
  • ZIP+6 code which is equivalent to an address
  • the caller e.g., a spoken address or intersection or city and state, or address information such as a ZIP+4 or ZIP+6 code entered via a keypad or GUI.
  • Additional questions may be necessary after the first request is made, regardless of the format in which the request is received and whether an automated service or a live operator is used.
  • the additional questions may be needed in order to narrow down the search for an appropriate website to provide the information required by the user.
  • These questions may be displayed on the screen of the wireless or other communication device when the original question is received via text messaging interface 512 or GUI interface 513, or may be provided as voice output via the IVR interface when the query was received via voice communication from the user device 10.
  • the concierge application obtains the end user location of the communication device 10 from which the request originated (step 120).
  • the end user location may be latitude and longitude coordinates, a street address obtained from such coordinates, an intersection, a postal code such as a zone improvement plan (“ZIP") code or more precise ZIP+4 or ZIP+6 (DPC) code as used by the United States Postal Service (“USPS”), or the like.
  • ZIP zone improvement plan
  • DPC ZIP+4 or ZIP+6
  • USPS United States Postal Service
  • the system may alternatively produce location information based on other types of postal codes as used in other countries, and may convert coordinate locations of users in such countries to the respective country postal code.
  • the initial location format may be converted to a different format depending on the requirements of the LBS website or sites being accessed to obtain the required information, as discussed in more detail below in connection with step 140.
  • the location of the communication device 10 may be obtained in various different ways depending on the network used by device 10. Where device 10 is a mobile device, the user location finder may contact a mobile positioning center of the network currently used by the device, such as MPC 60 as described above in connection with Figure I, or another device location provider, or may determine the location directly using various location finding techniques. An MPC 60 obtains and stores the locations of mobile subscribers for emergency 911 type services.
  • Concierge application 100 can query the MPC about the location of the mobile or wireless device 10 which is requesting a location based service, and then receive and store the current latitude and longitude location coordinates of device 10.
  • coordinate location may be obtained directly from the user device 10 if the device has a built-in GPS receiver.
  • Device locations can be obtained in a variety of ways depending on the particular wireless carrier 50 and/or the wireless device 10. In a heterogeneous network environment with multiple network providers, the network device or wireless device location may be obtained, for example, using the method described in U.S. Patent Application Publication No. 20060106930 (co- pending Application Serial No.
  • the location finder module 524 can obtain the precise location (address of the phone's location) or a general location (e.g. the address of a switch to which the phone is connected) from the telephone company or databases of wire-line location information. If the address information cannot be found directly using any of these techniques, the system may contact the user and ask for location information, using the appropriate communication format based on the manner in which the user first contacted the system (e.g. voice call, text messaging, using a GUI interface, or the like). In some cases, a coordinate location may not be available. In this case, the wireless infrastructure 20 may determine a general location of the mobile device which is sufficient to identify the city and state.
  • the location finding step may also involve obtaining a series of coordinate locations of the mobile device 10, for example when the device is in a moving vehicle.
  • the direction of travel of the mobile device may be obtained from multiple samples of the current location over time. This will enable the concierge application to provide directions or select a location based on the direction or travel path. Alternatively, multiple samples can be averaged or otherwise manipulated to provide an improved estimate of the user location.
  • the LBS website selector 531 of the concierge application 100 identifies at least one website 40 that corresponds to the request from step 110. This may be done by accessing the previously stored list or directory of websites and associated categories in the database manager module 522. If no appropriate previously stored category is found in the list, more specific information may be requested from the user, or one of many Web browsers or crawlers (e.g. Google ® , Netscape ® , Yahoo ® , etc) may be used to narrow down the search. For example, to find a type of location that is not company specific, such as a Vietnamese restaurant, the concierge application 100 uses websites that provide access to compiled Yellow Pages ® and/or business information for the city where the end user is located.
  • Google ® e.g. Google ® , Netscape ® , Yahoo ® , etc
  • the concierge application 100 may also use a specialty website such as www.restaurants.com. For a company specific request, such as finding the location of or directions to the nearest Starbucks ® , the concierge application 100 uses the Starbucks ® website.
  • the concierge application 100 may identify one or more websites to be accessed in order to obtain the information requested by the user.
  • the concierge application 100 translates or converts the initial location of the end user device found in step 120 into the appropriate input parameter or location format for the website(s) identified in the step 130.
  • the required location format will depend on the requirements of the website or sites identified in step 130 as appropriate for obtaining the information requested by the user.
  • the input parameter or translated location can contain a variety of information, such as a street address, intersection, ZIP code, city and state, and the like.
  • the concierge application 100 can convert a relatively precise coordinate location into a relatively imprecise website input, such as a name of the city and name of the state (which can be appropriate when knowing a precise location in a rural area). Conversely, when starting with a relatively imprecise location from step 120, the concierge application 100 can prompt the user to provide additional- information in order to create a more precise website input, such as a street intersection or a ZIP+4 or ZEP+6 code.
  • the location coordinates for a mobile device may be converted to a nearby street address or corresponding ZIP+4 or ZIP+6 (DPC) code.
  • DPC ZIP+4 or ZIP+6
  • the concierge application may be configured to determine an estimated error associated with the determined location information, and to decide based on this error whether or not the location is sufficiently precise to convert to a street address or intersection or to a ZIP+4 or ZIP+6 code. If the location is not precise enough for use as an input to an LBS website in order to find the closest merchant location, the system may ask the user for more precise location information, as noted above, such as a street name or the like.
  • the concierge application 100 determines that it is appropriate to convert the location to the nearest street address, and then uses that address as the input to the website store locator. If an estimated error is of the order of 100 feet, the concierge application 100 correlates the mobile device location to a ZIP+4 code, by choosing the ZEP+4 code that has its centroid closest to the coordinate location of the end user device. Alternatively, the detected location or street address may be converted to a DPC or ZIP+6 code for input to the website store locator.
  • most company website store locators such as the Domino's ® website store locator, permit the use of a ZIP+4 or ZIP +6 code as an input to the Domino's ® website store locator.
  • the concierge application 100 can determine that it can only rely on the 5-digit ZIP code that has its centroid nearest to the mobile device location.
  • the Domino's ® website store locator permits a 5-digit ZIP code as an input, although in this case the store locator identifies nearby stores for carryout and not for delivery.
  • a website application 40 such as a merchant's website locator can allow for a variety of different inputs, such as a street address, a ZIP+4 code, a ZIP+6 code which is equivalent to an address, and a 5-digit ZIP code.
  • Another input accepted by the Domino's ® and other merchant's locator websites is a name of the city and/or the name of the state.
  • step 140 the user location finder 524 first translates the latitude and longitude coordinates obtained for a mobile device 10 into the street address that is nearest to the user's location.
  • an exemplary embodiment may use street segment information as found in the TIGER files available from the U.S. Census Bureau, and/or information that provides lat/long centroids of ZIP+4 and ZIP+6 codes such as is available from Tele Atlas, and/or data available from the U.S. Postal Service (USPS).
  • An illustrative algorithm which can be implemented by the location finder 524 to determine a representative address from latitude/longitude coordinates of a user location uses the following steps:
  • the location of the end user wireless device 10 relative to the locations of information available from network LBS applications affects the ability of the LBS web application to provide relevant information. For example, if an individual is on a boat ten miles from shore, or hiking on a mountain or in the middle of a desert, there is no street or intersection nearby, nor are there any nearby businesses. In such a case, while it is possible to identify the nearest Starbucks ® , there likely is little value if it is 100 miles away from the end user. Thus, as with most web applications, there tends to be an increase in value when used, in urban over rural environments.
  • Embodiments of the web concierge application 100 are configured to notify the user of the mobile device when there are no relevant merchant locations anywhere in the near vicinity of the user.
  • the information retriever module 533 of the concierge application 100 queries the selected website(s) using the translated location from step 140- and, at a step 160, it receives the corresponding output data.
  • websites 40 are typically designed for human interaction
  • the concierge application 100 uses automated techniques commonly referred to as web bot technology to simulate the input normally obtained interactively from web users.
  • TABLE 1 below provides an example of software source code to illustrate the usage of this type of technique for retrieving data from the store locator provided on the current Domino's ® website.
  • StringBuilder strTotal new StringBuilder( 8192 ) ; int count ;
  • ASCIIEncoding ASCIIEncoder new ASCIIEncoding() ;
  • HttpWebRequest webReq (HttpWebRequest)WebRequest.Create( URI );
  • StreamReader s new StreamReader( response.GetResponseStream(), UTF ⁇ Encoder ); // Now read response into a byte buffer.
  • ⁇ count s.Read( body, 0, 1024 ) ; if( count > 0 )
  • the concierge application 100 can simultaneously query multiple websites to find the closest location of a requested merchant, and then parse the outputs to provide improved results. For example, if a user initiates a query for nearby pizza restaurants (using one of the methods described above), the concierge application 100 queries in parallel websites from Pizza Hut ® , Domino's ® , Papa John's ® , California Pizza Kitchen ® , and a wide variety of other known providers of pizza, in addition to other local search services such as those provided by Internet Yellow Pages ® companies.
  • the web bot techniques also allow for the concierge application 100 to continuously monitor the correct response of the various websites that it accesses, so that if a company changes the interface or other parameters of its LBS website applications, the concierge application 100 can relatively quickly adapt to the changed conditions. This enables a type of a "heartbeat" updating feature without having processed a request from an end user, whereby the concierge application 100 determines that its interface with one or more websites either is working correctly, requires correction, or has been automatically corrected, and updates its data base and provides appropriate notifications if appropriate.
  • the changes to a website cause an automatic update of the interface between the concierge and the website.
  • Some changes to a website do not require any updating of the concierge application. For example, if the address of one of the stores listed in the Domino's ® Pizza website was changed, then each time a user asks for that store, the new address is provided. Such changes to the contents of websites do not require modifications to the concierge application 100.
  • the information retriever 533 of the concierge application 100 parses the data returned by a website 40 to obtain the desired information relevant to the particular LBS request from the step 120, such as store names, address, telephone numbers, hours open, directions, maps, and the like.
  • the concierge application 100 uses multiple disparate websites.
  • a store is located from one website and precise directions from the mobile device location to the located store are obtained from another website.
  • the concierge application 100 then obtains maps and/or driving directions from websites such as MapQuest ® and/or MapPoint ® .
  • the concierge application 100 also links to other spatial and non-spatial data sources. Exemplary data linkage techniques are disclosed in U.S. Patent No. 5,901,214, mentioned above.
  • the end user can also retrieve additional information, such as related customer ratings or health rating information.
  • the concierge application 100 provides the appropriate information back to the end user. In some cases it is necessary for the concierge application to make multiple queries in order to obtain the desired information. It may be desirable or necessary in some cases for the concierge application 100 to communicate preliminary information back to the end user, such as a list of nearby locations, and then obtain additional input from the user, such as a selection from the list.
  • Step 170 is performed after output module 530 finishes the web search for the information requested by the user and collects the requested information in output tables.
  • the processing module 520 processes the collected information and prepares an answer to the user.
  • the processing is performed by translators 521, which parse and translate the information stored in the output tables into the format required by the user. The translated information is then sent to the user.
  • the user device may be communicating with the concierge application 100 using a variety of technologies, including IVR, text messaging, GUI, Internet browser, and other known communication technologies.
  • the answer to the user is sent by an appropriate interface module, depending on the technique originally used to contact the concierge application 100.
  • the location information may be provided to the user with various degrees of geographic precision and may vary from low precision to fine precision. In some cases, low geographic precision of the desired merchant location is sufficient.
  • a website application may provide information only at a "city level," i.e., it may only provide a name of the city compiled from Yellow Pages ® data for identifying all entries of a type of business within a particular city.
  • An example of a city level search is a search for specialty stores that are few and far between, such as a Maserati ® dealer (or a Maserati ® repair shop).
  • relatively fine location precision is provided.
  • a relatively fine precision may be required to discriminate the closest Starbucks ® location from among a large number of candidate locations, which in an urban environment can be within a small distance of each other.
  • the concierge application 100 needs to accommodate polygonal franchise boundaries, such as those used by Domino's ® and Pizza Hut ® franchises. In these cases, the closest location may be appropriate for carry-out but not be the appropriate location for delivery.
  • the output to the user device at step 170 will use the same interface that was used to make the original request, such as text messages, graphical user interface, Internet browser, or voice output via the IVR interface.
  • the concierge application 100 can interact with IVR technology to receive spoken requests from and to speak results back to a telephony end user.
  • the concierge application 100 can be implemented in various ways to allow for voice input and output, such as on the IVR platform or on a separate platform that communicates with the IVR platform.
  • step 160 it is a matter of human interface design to reformat and wrap the website output from the step 160 as appropriate for providing the user output at step 170, e.g., building the appropriate dialogue and, in the case of the IVR, using text-to-speech or recorded voice for spoken output.
  • One option which may be provided in the concierge application is communication via a live operator, as noted above. This maybe provided by specific user request or where other types of communication have failed to convey the information required.
  • the operator obtains desired results from the website(s) as appropriate for a caller's LBS request, and then speaks back information to the caller and/or causes information to be transmitted (e.g., display information sent back to a device) and/or provides some other service, such as enabling the caller to be connected to a located store's telephone number.
  • an operator utilizes a decision-making process.
  • the operator has to decide which websites to query, such as an Internet Yellow Pages ® site, Google ® , Netscape ® , Yahoo ® , or other.
  • the operator's task is effectively mechanical. For example, if the caller requests identification of the nearest location for a specific merchant or company, the operator mechanically facilitates queries to those company websites and facilitates the communication of the requested information back to the caller.
  • a user of communication device 10 may request the location of the closest outlet or store of a business, such as a restaurant, pizza delivery store such as Domino's ® or Pizza Hut ® , for example, Starbucks ® , FedEx ® office, UPS ® office, ATM, bank, or the like.
  • pizza delivery store such as Domino's ® or Pizza Hut ®
  • Starbucks ® a pizza delivery store
  • UPS ® office a pizza delivery store
  • ATM bank
  • the user requests the location of the closest ABC pizza delivery store, where ABC could be any pizza delivery store or franchise such as Domino's ® , Pizza Hut , or others.
  • the same basic method can be used regardless of the type of business or merchant location which the user is seeking, whether it is a restaurant, coffee shop, bank, postal delivery service, car repair shop or any other type of merchant.
  • the user need not necessarily request the business or merchant by name, and could be simply looking for the closest garage, ATM, pizza delivery store, or the like, regardless of the company name, which can be found using a generic Yellow Pages ® website, or other search engine, for example.
  • the concierge application 100 On receipt of a concierge request, the concierge application 100 first determines the location of the user using any of the techniques discussed above. The application then identifies the website or websites needed for locating the closed ABC pizza delivery store, for example the ABC website and possibly also a driving directions website where the user has requested such directions.
  • the coordinate location of the end user device 10 is then translated into a street address that is nearest to the user's location, or into another location format if required by the ABC website.
  • the application launches the website of the requested merchant, such as ABC pizza delivery store, and queries the website with the user's street address, ZIP+4 or ZIP+6 to receive back information about the closest ABC pizza delivery store.
  • the company website can also provide the store's telephone number and hours of operation, as well as information about other nearby ABC pizza delivery locations that are available for carryout service.
  • Concierge application 100 receives this information as output by the web application 40, and then selects and reformats information for communication back to the end user device 10. The reformatting can be done in a variety of ways.
  • the format of the answer provided to the user depends on the way the user contacted the concierge application 100. For example, if the user contacted the concierge application 100 over the phone, the concierge application 100 can provide to the user the phone number of the nearby ABC pizza delivery franchise and/or can offer to connect the user with the franchise. For example, the user can be automatically connected with the franchise and can place the pizza order right away over the phone. Alternatively, the user can be connected to a navigation-type system, which can provide the user with step-by- step directions to the nearby franchise.
  • the wireless infrastructure 20 provides access to the applications 40 via a telephone network.
  • the concierge application 100 connects the wireless device 10 with the selected LBS application 40.
  • the concierge application 100 can use technology similar to the technology implemented in an "automated phone assistance," such as, e.g., "411" service. For example, once the concierge application 100 identifies a phone number of the requested LBS application, it can automatically connect the wireless device 10 with the phone number of the LBS application, in the same way that the "411" service can automatically connect a customer with the phone number of the requested party.
  • an "automated phone assistance” such as, e.g., "411” service.
  • the communication may be facilitated by a telephone connection, where a user of the wireless device 10 dials a dedicated phone number (e.g. l-800x, l-877x, etc.) provided and serviced by the wireless infrastructure 20.
  • a dedicated phone number e.g. l-800x, l-877x, etc.
  • the IVR interface 511 collects the voice input information from the user, translates communications between the concierge 100 and the wireless device 10, plays additional questions to narrow down the search for the answer to the user question, accepts user audio answers, and the like.
  • the concierge application 100 accesses different telephone numbers associated with different LBS or groups of LBS with associated scripts stored by the data base manager and implemented by the IVR to obtain the information required by the caller.
  • the concierge can then provide the information to the rVR interface 511 which translates and speaks the information to the caller.
  • GUI graphical user interface
  • the concierge application can display the response to the user on the display window of the wireless device 10.
  • the concierge may display the phone number to the closest ABC pizza company franchise, take the order from the user by communicating with the user on the graphical user interface displayed on the wireless device 10, or provide the user with step-by-step directions to the nearby ABC company franchise, such as a Domino's ® pizza delivery franchise, for example.
  • output module 530 finishes the web search of the information and collects the requested information in the output tables
  • the processing module 520 processes the information and prepares an answer to the user.
  • the processing is performed by translators 521, which parse and translate the information stored in the output tables.
  • the browser can display the response to the user on the display window of the wireless device by communicating with the browser.
  • the concierge may display the phone number to the closest ABC company franchise in the browser window, take the order from the user by communicating via the browser, or display in the browser step-by-step directions to the nearby ABC company franchise.
  • the concierge application 100 determines an estimated error introduced by such devices as MPC 60 or other location finding techniques, and provides appropriate information to the user based on the estimated error, as discussed in more detail below.
  • LBS websites 40 can return different types of output information depending on the type of the input parameter. For example, with a relatively precise location input (e.g., street address, ZIP+4 or ZIP+6 code), the Domino's ® website returns information about both a delivery location and carryout locations, but with a relatively imprecise location input (e.g., 5 -digit ZIP code or city and state) it returns information only for carryout. Because the concierge application 100 controls the input type, it facilitates the ability to parse the output returned from a website. Concierge application 100 may be configured to translate the location available from the wireless infrastructure 20 into the most precise format compatible with the websites 40, as justified by the precision of the location.
  • a relatively precise location input e.g., street address, ZIP+4 or ZIP+6 code
  • the Domino's ® website returns information about both a delivery location and carryout locations, but with a relatively imprecise location input (e.g., 5 -digit ZIP code or city and state) it returns information only for carryout.
  • Figure 4 is a flow chart illustrating the initial set up of the system to identify websites having LBS applications for use in the concierge application and to associate or link identified websites with a list of LBS service categories, and for building associated tables or scripts for user inputs and concierge outputs, using the web page setup module 525 of Figure 2.
  • the same procedure is used both in initial set up of the concierge application and also when new websites are added to the list of stored URLs and associated service categories, or when websites are updated.
  • the tables or scripts will be based on different user requests as well as possible responses received from the website or sites.
  • the websites, user input script, and concierge output script may be added and updated as needed either automatically or manually by a system operator executing the steps in Figure 4.
  • the identified websites and associated service categories will be stored in data base module 525 along with the associated scripts or tables of user inputs and concierge outputs. It will be understood that the scripts may be in the form of trees with different branches based on different responses received from the user or from an LBS website.
  • a list of service categories is identified and stored.
  • These categories may include a list of specific merchants, such as restaurants, stores, theaters, subway stations, post offices, car repair shops, banks, or the like, general merchant categories, driving directions from one location to another, making reservations for hotels, theaters, airlines, trains, ferries, and the like, as well as other services suitable for a concierge application.
  • websites which can provide requested information are identified and the URL of each website is linked with at least one appropriate entry on the stored list of categories.
  • a URL will be linked with more than one entry on the category list, and each category may be linked to one or more URLs, as appropriate.
  • the URL may be a home page for the website, or a URL directly linked to the LBS application at the website.
  • step 320 acceptable user inputs are identified and a table or script of the acceptable user inputs is built and stored (step 330).
  • the table or script may include acceptable types of requests that the user can submit to the concierge application based on the type of service required, and the type of information required to query network resources in order to find an answer to the user request.
  • acceptable types of user input for such a request include the name of the restaurant, user location (such as longitude and latitude coordinates of user location provided by a MPC, street address, ZIP+4 or ZIP+6 code), and the like.
  • the acceptable types of user input may include the name of a carrier, the type of service sought, such as a self-service FedEx drop box or a full-service FedEx office location, and the like.
  • a table (or an array, script, list of pointers, or the like) of acceptable types of user inputs is built.
  • the initialization subroutine organizes the previously determined acceptable types of user inputs into a table or script that can be easily accessed by the concierge during answering of user requests.
  • the organization of the table depends on the software configuration used in the implementation of the concierge application.
  • the website set up module determines a list of acceptable types of concierge outputs.
  • the list contains entries that define types of possible answers that the concierge application can provide to the user in response to the user request. For example, if a user asked for a location of the Domino's ® Pizza restaurant, the possible types of responses from the concierge application may include an address of the restaurant, a ZIP+6 location code of the restaurant, a phone number to the restaurant, information that no restaurant in the area has been found, a prompt to provide some additional information, a list of similar restaurants in the area, and the like.
  • an output table or script containing acceptable outputs from the concierge application is built.
  • the previously identified outputs are organized into a table that can be easily accessed and filled with information by the concierge application when processing a user request.
  • the organization and the format of the output table depends on the software configuration used in the implementation of the concierge application.
  • a sequence of questions is generated in the form of a script for the concierge application.
  • the script is a sequence of questions that the concierge application needs to ask the user before the concierge can start a search, and different scripts may be provided for different service requests.
  • a set of user options will be associated with each question, and subsequent questions may depend on the option selected.
  • the questions and user options are stored in the data storage module for use when the user interface format is text messaging, a graphical interface, or an Internet browser, and may also be pre-recorded and ported to an IVR system for use when spoken requests and spoken answers are used in communicating with the user.
  • the questions and user options generated are organized in a form of a hierarchical tree.
  • the tree comprises ordered sequences of questions used to collect information necessary to answer the user question.
  • the questions are ordered in such a way that at each step of the sequence, the user has one or more options to select and at each step the concierge refines the search parameters. For example, to narrow down the search, the concierge might first ask the user whether the request pertains to finding a restaurant, and if so, whether the request pertains to delivery of pizza or other type of food. Then, if the request pertains to the delivery of pizza, the concierge might ask whether the request pertains to the delivery of pizza from Domino's ® Pizza, Pizza Hut ® , or other establishment.
  • FIG. 5 is a block diagram illustrating multiple wireless devices 10 connected to multiple carriers 50.
  • the concierge application 100 is implemented using a web gateway 200. While the embodiment of FIG. 1 illustrates the concierge application 100 associated with carrier infrastructure 20 supporting a single carrier 50, the embodiment of FIG. 5 illustrates the concierge application 100 interfacing with multiple carriers 50 through web gateway 200. The carriers 50 in turn interface with multiple wireless devices 10.
  • the concierge application 100 of Figure 5 may be identical to the application as illustrated in Figure 2, and the method of obtaining information and providing it to requesters using wireless devices .10 will be the same as described above in connection with Figures 1 to 4.
  • the carriers 50 interface with web gateway 200 over network connections.
  • the network connections can be connections within the infrastructure of the wireless networks, or they can be one or more of a variety of communications links such as the public Internet or dedicated Tl, T3, frame relay links, etc.
  • Concierge application 100 within gateway 200 communicates with websites 40 via the Internet 30 in the same manner as shown and discussed for Figures 1 to 3.
  • the embodiment of Figure 5 facilitates an implementation of the concierge application 100 in a service provider model.
  • the web gateway 200 interfaces with IVR platforms and operators in the same manner as shown and discussed above for the embodiments of Figures 1 to 4, or an IVR or operator platform can include the web gateway 200.
  • the concierge application 100 can handle multiple requests from different users (or the same user) in the same way that the method and system of the first embodiment handled multiple requests from users using the same carrier. For example, the concierge application receives a first LBS request and identifies a first network application for that request, and receives a second LBS request for which a second network application is identified.
  • the location of the LBS requested may be in different formats for the different network applications.
  • the first network application could be a web store and the input parameter to that application could be a ZIP+4 or ZEP+6 code.
  • the second network application could be an LBS website and the input parameter to that application could be a street address identified for the LBS requester.
  • the location of a user device 10 can be obtained in various ways, as in the first embodiment, and may involve first determining the carrier network 50 over which the user is communicating, then querying an MPC of that carrier network to determine the current location of the wireless device. In this case, the location may be found using the method described in U.S. Patent Application Publication No. 20060106930 (co-pending Application Serial No. 11/281,952 filed November 15, 2005) as referenced above. Alternative location finding techniques may also be used, as discussed in detail above in connection with Figures 1 to 4.
  • Implementations of the concierge application 100 can provide various benefits, such as the advantages of accessing specific company websites in lieu of Yellow Pages ® data.
  • Yellow Pages ® data There are various issues with Yellow Pages ® data including: (1) there are many permutations for the same business name; (2) inconsistent categories across directories published in different parts of the country; (3) lack of currency (e.g. a business could buy a 3 year Yellow Pages ® ad and go out of business after the first year), etc.
  • many entries in the Yellow Pages ® do not have addresses, and there are many entities that do not appear in the Yellow Pages ® - entities such as ATMs, drop boxes and other self serve locations are not advertised in the Yellow Pages as they have no phone number to call.
  • DSP digital signal processor
  • ASIC application specific integrated circuit
  • FPGA field programmable gate array
  • a general-purpose processor can be a microprocessor, but in the alternative, the processor can be any processor, controller, microcontroller, or state machine.
  • a processor can also be implemented as a combination of computing devices, for example, a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.
  • a software module can reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, a CD-ROM, or any other form of storage medium.
  • An exemplary storage medium can be coupled to the processor such that the processor can read information from, and write information to, the storage medium. Ih the alternative, the storage medium can be integral to the processor.
  • the processor and the storage medium can reside in an ASIC.

Abstract

A method and system for providing automated concierge services to end users communicates with users over network devices, such as telephones and wireless devices, and utilizes third party network location-based service (LBS) applications, such as Internet/Web locators, to obtain location information based on user requests. On receipt of a request from a mobile device, the location of the mobile device is identified. A network application related to the requested service is identified and the user location is translated into an input parameter compatible with the network application which is provided to the network applications. A response to the input parameter is received and processed in order to generate an answer to the user's request. Finally, the application sends the answer to the user.

Description

AUTOMATED CONCIERGE SYSTEM AND METHOD
Related Application
[01] The present application claims the benefit of United States provisional patent application 60/705,554, entitled AUTOMATED CONCIERGE METHOD, filed on August 5, 2005, which is incorporated herein by reference.
Background
1. Field of the Invention
[02] This invention relates to an automated system and method for providing location- based concierge services to end users communicating over network devices, such as telephones and wireless devices, and utilizing third party network location-based service applications, such as Internet/Web locators.
2. Related Art
[03] The term concierge has evolved from its originally somewhat specific meanings such as a hotel staff member who handles luggage, reservations and tours, etc., to refer more generally to the provision of personalized services. Many concierge services are location-based, such as identifying nearby restaurants or attractions, or providing local maps or directions.
[04] The Internet and World Wide Web ("Web") have helped spur the evolution in concierge services by providing mechanisms to facilitate and automate a variety of services. The Internet and Web have also helped to spur innovation in location-based services (LBS) such as store locators, including the ability to generate maps and turn-by- turn directions. This in turn prompted the development of third party network LBS applications such as Internet/Web locators for users communicating over network devices such as telephones and wireless devices.
[05] Relatively recent "911" legislation requires wireless, carriers in the United States to be able to determine the current location of a wireless device. This typically is done via a Global Positioning System ("GPS") chip and receiver in the wireless device and/or via network triangulation. These methods can provide a fairly precise latitude and longitude estimate of the wireless device's current location. There can be privacy concerns related to providing the telephone number and the precise coordinate location of a mobile phone to an entity outside the mobile phone network for uses other than emergency 911 services. [06] Multi-location businesses such as, for example, Pizza Hut®, Domino's® Pizza, Starbucks®, Automated Teller Machines ("ATM"s), Federal Express ("FedEx"), and United Parcel Service, Inc. ("UPS"), commonly provide locator systems for identifying nearby locations via company websites. Also online Yellow Pages® from major telephone companies and many independent Yellow Pages® publishers are available from a variety of websites that generally accept location identifiers such as a ZIP code or other postal code, street address and/or street intersection as a proxy for the user's current location or starting point of interest, hi some cases, such as Federal Express, a user can provide a 10- digit telephone phone number as the location identifier, which the website will associate with a physical location.
Summary
[07] Aspects of embodiments disclosed herein relate to issues involving use of third party network location-based services ("LBS") applications, such as Internet/Web locators, for use in providing concierge services to end users communicating over network communication devices, such as wire-line telephones and wireless devices such as cell phones, personal digital assistants (PDAs), laptop computers and the like. [08] In one embodiment, an automated concierge method comprises receiving a location-based service request from a user of a communication device, which may be a mobile or wireless device or a wire-line device, such as a request to find the nearest location of a particular merchant or type of merchant. The request can come in a variety of ways, such as through a spoken request, a Graphical User Interface ("GUI") or other command input at a mobile or wireless device, or a text message. A network application such as a website related to the service request is identified, for example, a store locator application on the Web. An input to the network application is provided based on the coordinate location of the communication device, such as a street address, a ZIP+4 code, a USPS Delivery Point Code (DPC) or ZIP+6 code, or other postal code nearest to the location of a cell phone. An output is received from the network application, such as the identification of the nearest location for a requested merchant and/or attributes related to a particular location relevant to the mobile device (e.g., directions, store hours, and the like) and a location-based service is provided to the mobile device based on the output, such as displaying or speaking back information about a nearby location, or directions to such a location.
[09] According to other embodiments, methods of providing automated concierge services include obtaining multiple coordinate locations of a mobile device over time. The coordinate location can be obtained from the mobile device or from a system external to the mobile device that determines the mobile device location, such as a cell phone network infrastructure. In some embodiments a measure of the precision of the coordinate location of the mobile device is obtained and used in determining the type of information provided to the user in response to the service request.
[10] The method of providing automated concierge services may include the option of receiving a spoken information request or a request derived from spoken information. The request can also come from a text message or key entered data, or from input obtained through a graphical user interface. Similarly the output from the concierge service can be a spoken output, e.g., text-to-speech or recorded voice, a text message output, or a graphical user interface output.
[11] Methods of providing automated concierge services according to other embodiments include accessing network applications, such as web applications available at company or other websites, hi some cases the websites can be company specific sites selected from multiple candidate sites, and in some cases they can be sites that provide information for multiple independent companies.
[12] According to other embodiments, methods of providing automated concierge services include prompting a mobile device user to select an entity associated with a network application from multiple candidate entities.
[13] In some embodiments, an automated concierge service method or system may access one or more websites that provide information about multiple merchants or companies that provide a similar product or service or brand such as, for example, pizza restaurants or shoe repair shops or sports-related brands. In some embodiments the concierge method accesses one ore more websites that provide information about multiple locations that provide the same brand, such as Reebok®. The method may include determining a street address, ZIP code, ZEP+4 code, DPC or ZIP+6 code, other type of postal code, or city and state based on the coordinate location of the mobile device for use as an input parameter to a website.
[14] Multiple network applications may be queried with different inputs in a representative embodiment, such as querying a web store locator with a postal code and querying a different website to obtain related directions based on a street address. Providing a location-based service to a mobile device can comprise providing information about multiple locations near to the mobile device, including directions to one or more nearby locations.
[15] In one embodiment, a communication session is established between a wireless device and a particular location identified by a network application, such as a voice link to a particular store or merchant identified by website store locator. The concierge service can enable an order for a product or service from a particular location to be placed by the user of the communication device.
[16] An automated LBS method according to one embodiment includes obtaining a latitude and longitude pair of the current location of a mobile device, receiving a request for location-based information from a user of the mobile device, identifying a company- specific location-based web application related to the service request, translating the latitude and longitude pair to a location identifier for use as an input parameter to the web application, providing the location identifier to the web application, receiving an output from the web application, and providing information to the mobile device user based on the output.
[17] In some embodiments, automated LBS methods may include receiving an input parameter representing a location associated with a user communicating over a network, receiving a location-based service request initiated by the user selecting a web LBS application from multiple candidate web LBS applications based on the service request, providing the input parameter to the selected web LBS application, receiving an output from the web LBS application, and providing selected information from the output over the network for use in providing a location-based service to the user. Different embodiments implement these methods either with or without interaction with a live operator.
[18] The foregoing description of aspects of embodiments is not intended to limit the inventions to particular combinations or examples more limited than the combinations specifically claimed. The following detailed description of representative embodiments will illustrate these and other aspects of embodiments of the inventions. The inventions are susceptible to various modifications and alternatives.
[19] Other features and advantages will become more readily apparent to those of ordinary skill in the art after reviewing the following detailed description and accompanying drawings. Brief Description of the Drawings
[20] The details of the inventive systems and methods, both as to their structure and operation, may be gleaned in part from the following description of some representative embodiments taken in conjunction with the accompanying drawings, in which like reference numerals refer to like parts, and in which:
[21] Figure 1 is a block diagram illustrating a wireless device connected to a wireless carrier incorporating a concierge application according to an exemplary embodiment; [22] Figure 2 is a functional block diagram of the concierge application of Figure 1; [23] Figure 3 is a flowchart showing steps and processes of the concierge application; [24] Figure 4 is a flowchart illustrating a method of initially setting up the concierge application according to an embodiment; and
[25] Figure 5 is a block diagram illustrating multiple wireless devices connected to multiple carriers in a concierge method and system according to another embodiment.
Detailed Description
[26] Certain embodiments as disclosed herein provide a system and method for location-based concierge services, which utilizes network location-based services (LBS) applications, such as Internet/Web locators, available at various websites to provide information to end users communicating over network devices such as telephones and wireless devices. For example, one method as disclosed herein allows for providing an automated concierge service, comprising receiving a location-based service request from a mobile device, such as a request to find the nearest location of a particular merchant, or to locate the closest store or business of a particular type, querying and obtaining a coordinate location of the mobile device, such as a latitude and longitude of a cell phone or personal digital assistant ("PDA"), creating a query in the appropriate format for an Internet/Web locator based upon the request to obtain information, and providing the obtained information to the mobile device in a format appropriate for that device. [27] After reading this description it will become apparent to- one skilled in the art how to implement the inventive aspects in various alternative embodiments and alternative applications. However, although various embodiments will be described herein, it is understood that these embodiments are presented by way of example only, and not limitation. As such, this detailed description of various alternative embodiments should not be construed to limit the scope or breadth of the claims. [28] FIG. 1 is a block diagram illustrating a simplified example of a wireless device connected to a wireless carrier incorporating a concierge system according to one embodiment. In the illustrated embodiment, an end user wireless device 10 is connected to a wireless infrastructure 20, which in turn can communicate via the Internet 30 with websites identified as 40a, 40b through 4On, and generally referred to as 40. The websites contain location based service ("LBS") or network applications for locating various- types of merchants or services. The wireless infrastructure 20 comprises a wireless carrier 50, Mobile Positioning Center ("MPC") 60, one or more Interactive Voice Response ("IVR")/operator platforms 70, and a wireless concierge application or module 100. The wireless carrier 50 represents those aspects of a wireless network, such as a cellular telephone network, that are not explicitly depicted in the figure. While Figure 1 illustrates the concierge application 100 and TVR/operators 70 as part of infrastructure 20,. these modules may also be located outside infrastructure 20, for example on one or more servers connected to the wireless infrastructure 20 through the Internet 30 or separate network connections.
[29] As described below in more detail, the concierge application 100 facilitates access to a variety of different types of websites having location based service ("LBS") applications from the wireless device 10 without requiring the wireless device user to comply with the different locational input and query formats as required by the different websites or LBS applications 40. In one embodiment, the concierge application 100 is implemented as software running on a server on or in communication with the wireless carrier 50 network. As also discussed below in more detail, in other embodiments the concierge application 100 can be used in other network environments, for example when substituting a wire-line device such as a conventional telephone for the wireless device, in which case a different carrier such as a wire-line or VoIP telephony carrier may be substituted for the wireless carrier 50.
[30] Wireless device 10 may be a cell phone, personal digital assistant ("PDA"), laptop computer, or the like. There are a variety of types of end user wireless devices 10 and infrastructures 20, with prevalent examples today being personal communication services ("PCS"), global system for mobile communications ("GSM") and code division multiple access ("CDMA") cell phones and networks. As it pertains to the embodiments discussed above and below, the particular protocols of the end user device and carrier are immaterial so long as it is possible to obtain or determine the location of the wireless device 10, to exchange voice and/or data to and from the end user wireless device 10, and to interface with the concierge application 100, which in turn can interface with the web LBS applications 40.
[31] To provide for LBS functionality and to enable compliance with the emergency "911" requirements for mobile phones, the illustrated wireless infrastructure 20 includes the MPC 60, which is configured to obtain and store the location of wireless devices 10. Device locations can be obtained in a variety of ways depending on the particular wireless carrier 50 and/or the wireless device 10. In the case of a GPS-enabled device, the MPC 60 can receive a location reported directly from the wireless device 10. In other cases the infrastructure 20 can use network triangulation techniques to determine the location of the wireless device 10, although this can be less precise than when the device itself has a GPS receiver. There are other variations such as differential GPS and assisted GPS. However, the details as to the particular form of GPS technology are generally irrelevant because the key point is that it is possible to obtain an indication of the location of the wireless device 10 in some format, such as latitude and longitude coordinates of the location, for example. [32] The wireless infrastructure 20 provides access via the Internet 30 to websites having LBS applications 40, which today are available from a number of companies or merchants. Exemplary website LBS applications include store locators for many merchants, for example Domino's®, Pizza Hut®, other pizza delivery companies, restaurants of various types, a drop box locator for FedEx®, a Starbucks® website that provides a variety of Starbucks-related LBS applications, store websites, a generic Yellow Pages® website that provides LBS applications based on compiled Yellow Pages® business data, and a VISA® ATM locator website, among others.
[33] While the illustrated embodiments show web applications or websites 40 accessed over the Internet 30, the web applications or associated merchant information may be accessed over other types of networks and connections in alternative embodiments. Additionally, although the drawings illustrate user concierge requests received from a wireless device, such requests may alternatively be received from a wire-line telephone using a phone number which connects to the concierge application. [34] In one embodiment, the wireless infrastructure 20 of FIG. 1 includes the concierge application 100 which provides the wireless device 10 with access to the LBS applications at websites 40. In another embodiment, the concierge application 100 can be implemented in software running on a computer such as a network server or the like separate from wireless infrastructure 20. In another embodiment, the concierge application 100 can be implemented in a first software application running on the wireless device 10 and capable of communicating with another software application running on a network server or a server incorporated into the wireless infrastructure 20.
[35] Figure 2 is a functional block diagram of one embodiment of a concierge application 100. In the illustrated embodiment, the concierge application comprises an interface module 510, a processing module 520, a website set up or initialization module 525, and an output module 530. The interface module may comprise an IVR interface 511 for voice communications with a user, a text messaging interface 512 for communications using text messages, which is a popular form of communication for cell phones and PDAs, and a graphical user interface (GUI) or other command interface 513 for communications over a GUI or the like. A GUI is commonly used by personal digital assistants ("PDA"s) and other devices like cell phones with bit-mapped displays. It will be understood that other types of user interface may be provided in interface module 510. [36] The processing module 520 is responsible for analyzing user requests, generating auxiliary questions in response to user requests, identifying websites for use in responding to user requests, generating queries for websites for obtaining information, and preparing answers to user requests based on information received from websites. Processing module 520 comprises translators 521, database manager 522, and user location finder 524. [37] Translators 521 are configured to translate user communications into a format understood by the concierge application and to translate information retrieved by the concierge application from LBS websites into the format being utilized by a user's device. In other words, information or queries provided from the user are translated into a format compatible with the format which the concierge application uses to store information. [38] The data base manager 522 is linked to web page setup (initialization) module 525, and manages and maintains a list of concierge service categories with links to websites which may provide information appropriate for each of the service categories, as well as the contents of user input tables or scripts and concierge output tables or scripts. The database manager 522 maintains user request information stored in input tables, verifies whether the concierge has sufficient information to answer the user's question, selects additional questions for the user, updates concierge output tables with information obtained from one or more selected LBS websites, and manages the output tables containing the information obtained from the LBS websites.
[39] The list of service categories and associated- websites, along with the user input tables and concierge output tables, are initially set up by web page set up module 525, which is described in more detail below in connection with Figure 4. The service categories are linked to the Uniform Resource Locators (URLs) of identified LBS websites in the database manager. The list of categories and associated websites may, for example, link a particular merchant with the URL for that merchant's website, or may link a general type of merchant request with the URL or URLs of several merchants of that type, or to a more general search engine for locating different types of merchant. For example, a pizza restaurant service category may be linked to URLs of various different pizza restaurants. The initialization process also involves setting up scripts or tables of appropriate user inputs and concierge outputs linked to each service category and website, as will be described in more detail below in connection with Figure 4. The identified list of service categories and associated URLs, and the associated scripts or tables, are all stored by the data base manager 522.
[40] The user location finder module 524 is configured to find the location of a wireless device from which a user request originated. Device location may be found in various different ways in different embodiments. In one embodiment, the location finder module may query an MPC 60 to find the location of the user device. Device location may alternatively be obtained directly from the user's wireless device, if equipped with a Global Positioning System (GPS) sensor. Network triangulation techniques may be used to find the location when the communication device is not a GPS device. Various other location techniques may alternatively be used.
[41] The output module 530 of the concierge application comprises an LBS website selector 531 and an information retriever 533. The website selector 531 analyzes user request information contained in an input table or script, reviews the concierge's list of websites providing LBS services, and selects a website that can provide the information requested by the user. The information retriever 533 retrieves the information from the selected LBS website and stores it in output tables. Because collecting information requested by the user may require multiple accesses to the LBS website and/or access to multiple LBS websites, the concierge application may have to invoke the LBS website selector 531 and the information retriever 533 more than once.
[42] Figure 3 is a flowchart showing steps of an automated concierge method according to an embodiment, using the concierge application or system 100 of Figures 1 and 2. The steps can be performed in orders different than the one shown.
[43] In the illustrated embodiment, at a step 110, the concierge application receives a request for a location based service from a user of a communication device 10. This request may be any location based service request, such as "find a Vietnamese restaurant', or "find Starbucks®", for example. The request is received via interface module 510. [44] The user may communicate the LBS request to the concierge application by text messaging from a mobile phone or PDA, and communications will then proceed via the text messaging interface 512. To facilitate that type of communication, the text messaging interface 512 of the concierge application 100 establishes communication with the user and collects the messaging data stream. Alternatively, the user may access the concierge application using a graphical user interface (GUI) displayed on the wireless device, and communications then proceed via GUI interface 513. Such a graphical user interface on a communication device such as a cell phone or PDA may be provided with a menu for accessing the concierge application 100 and for clicking on certain frequently used types of requests, such as "Find the nearest Starbucks®" for example, as well as allowing the user to input specific or custom location based service requests. If the user contacts the concierge application 100 by launching a browser and contacting the URL for the concierge application, communications can proceed by displaying responses and receiving user input on the browser.
[45] In another embodiment, the user may contact the concierge application by dialing a dedicated telephone number (such as a 1-800 or 1-877 number or the like) provided for the concierge application and serviced by the wireless infrastructure 20. In the illustrated embodiment, device 10 is a mobile communication device or wireless device. However, it should be understood that the user may also request concierge service using a wire-line telephone via a POTS (Plain Old Telephone Service) network. If the user interacts with the concierge application via voice connection, the IVR interface 511 collects the voice input information from the user, plays additional questions to narrow down the search for the answer to the user's question, and accepts voice answers to such questions. If the user contacts the concierge application 100 via the telephone in step 110, the concierge application 100 collects the information from the user using, for example, an IVR system. rVR technology can allow the cell or wire-line phone user to use speech input and output to access the LBS website applications provided via the Internet. Thus, for example, a cell phone user may say "find the nearest Starbucks®" and the concierge application 100, using a method such as those disclosed below, interacts with an IVR platform 70 to enable the wireless infrastructure to speak back the location and directions to the nearest Starbucks®. The information collected by the IVR system is translated by the translators 521 to the format understood by the concierge application 100. Then, the translators 521 parse the information into elements that can be stored in the user input tables (or arrays) described below in connection with FIG. 4.
[46] In some embodiments, methods of providing concierge services include a live operator, who can interact with the caller on request to obtain the necessary information which the concierge application 100 then communicates to the network applications (e.g., LBS websites). A caller may request transfer to a live operator, or there is an automatic transfer to the live operator when there is a problem with the automated service, for example it is unable to obtain sufficiently precise instructions from the user in order to narrow down the search. When the query is made to a live operator, the operator obtains location information either automatically obtained from the network (e.g., lat/long, or a translated location such as an address, ZEP+4 code or a U.S. Postal Service Delivery Point Code ("DPC") or ZIP+6 code which is equivalent to an address) or provided by the caller (e.g., a spoken address or intersection or city and state, or address information such as a ZIP+4 or ZIP+6 code entered via a keypad or GUI).
[47] Additional questions may be necessary after the first request is made, regardless of the format in which the request is received and whether an automated service or a live operator is used. The additional questions may be needed in order to narrow down the search for an appropriate website to provide the information required by the user. These questions may be displayed on the screen of the wireless or other communication device when the original question is received via text messaging interface 512 or GUI interface 513, or may be provided as voice output via the IVR interface when the query was received via voice communication from the user device 10.
[48] After receiving the user request, the concierge application obtains the end user location of the communication device 10 from which the request originated (step 120). The end user location may be latitude and longitude coordinates, a street address obtained from such coordinates, an intersection, a postal code such as a zone improvement plan ("ZIP") code or more precise ZIP+4 or ZIP+6 (DPC) code as used by the United States Postal Service ("USPS"), or the like. Although the following description refers to ZIP, ZIP+4 and ZIP+6 or DPC codes of the USPS5 it will be understood that the system may alternatively produce location information based on other types of postal codes as used in other countries, and may convert coordinate locations of users in such countries to the respective country postal code. The initial location format may be converted to a different format depending on the requirements of the LBS website or sites being accessed to obtain the required information, as discussed in more detail below in connection with step 140. [49] The location of the communication device 10 may be obtained in various different ways depending on the network used by device 10. Where device 10 is a mobile device, the user location finder may contact a mobile positioning center of the network currently used by the device, such as MPC 60 as described above in connection with Figure I, or another device location provider, or may determine the location directly using various location finding techniques. An MPC 60 obtains and stores the locations of mobile subscribers for emergency 911 type services. Concierge application 100 can query the MPC about the location of the mobile or wireless device 10 which is requesting a location based service, and then receive and store the current latitude and longitude location coordinates of device 10. Alternatively, coordinate location may be obtained directly from the user device 10 if the device has a built-in GPS receiver. Device locations can be obtained in a variety of ways depending on the particular wireless carrier 50 and/or the wireless device 10. In a heterogeneous network environment with multiple network providers, the network device or wireless device location may be obtained, for example, using the method described in U.S. Patent Application Publication No. 20060106930 (co- pending Application Serial No. 11/281,952 filed November 15, 2005), the contents of which are incorporated herein by reference, hi this method, the type of network used by the mobile or other communication device is first identified, and location information is then obtained from a selected device location provider based on the network identification. [50] If the user request was received via a wire-line telephone, the location finder module 524 can obtain the precise location (address of the phone's location) or a general location (e.g. the address of a switch to which the phone is connected) from the telephone company or databases of wire-line location information. If the address information cannot be found directly using any of these techniques, the system may contact the user and ask for location information, using the appropriate communication format based on the manner in which the user first contacted the system (e.g. voice call, text messaging, using a GUI interface, or the like). In some cases, a coordinate location may not be available. In this case, the wireless infrastructure 20 may determine a general location of the mobile device which is sufficient to identify the city and state.
[51] In one embodiment, the location finding step may also involve obtaining a series of coordinate locations of the mobile device 10, for example when the device is in a moving vehicle. The direction of travel of the mobile device may be obtained from multiple samples of the current location over time. This will enable the concierge application to provide directions or select a location based on the direction or travel path. Alternatively, multiple samples can be averaged or otherwise manipulated to provide an improved estimate of the user location.
[52] At a step 130, the LBS website selector 531 of the concierge application 100 identifies at least one website 40 that corresponds to the request from step 110. This may be done by accessing the previously stored list or directory of websites and associated categories in the database manager module 522. If no appropriate previously stored category is found in the list, more specific information may be requested from the user, or one of many Web browsers or crawlers (e.g. Google®, Netscape®, Yahoo®, etc) may be used to narrow down the search. For example, to find a type of location that is not company specific, such as a Vietnamese restaurant, the concierge application 100 uses websites that provide access to compiled Yellow Pages® and/or business information for the city where the end user is located. In the case of a restaurant, the concierge application 100 may also use a specialty website such as www.restaurants.com. For a company specific request, such as finding the location of or directions to the nearest Starbucks®, the concierge application 100 uses the Starbucks® website. The concierge application 100 may identify one or more websites to be accessed in order to obtain the information requested by the user.
[53] At a step 140, the concierge application 100 translates or converts the initial location of the end user device found in step 120 into the appropriate input parameter or location format for the website(s) identified in the step 130. The required location format will depend on the requirements of the website or sites identified in step 130 as appropriate for obtaining the information requested by the user. The input parameter or translated location can contain a variety of information, such as a street address, intersection, ZIP code, city and state, and the like.
[54] In alternative embodiments, the concierge application 100 can convert a relatively precise coordinate location into a relatively imprecise website input, such as a name of the city and name of the state (which can be appropriate when knowing a precise location in a rural area). Conversely, when starting with a relatively imprecise location from step 120, the concierge application 100 can prompt the user to provide additional- information in order to create a more precise website input, such as a street intersection or a ZIP+4 or ZEP+6 code.
[55] hi one example, the location coordinates for a mobile device may be converted to a nearby street address or corresponding ZIP+4 or ZIP+6 (DPC) code. In other cases, a precise street location may not be possible due to interference from surrounding buildings and other objects. The concierge application may be configured to determine an estimated error associated with the determined location information, and to decide based on this error whether or not the location is sufficiently precise to convert to a street address or intersection or to a ZIP+4 or ZIP+6 code. If the location is not precise enough for use as an input to an LBS website in order to find the closest merchant location, the system may ask the user for more precise location information, as noted above, such as a street name or the like.
[56] For example, if an estimated error is of the order of less than fifty feet, the concierge application 100 determines that it is appropriate to convert the location to the nearest street address, and then uses that address as the input to the website store locator. If an estimated error is of the order of 100 feet, the concierge application 100 correlates the mobile device location to a ZIP+4 code, by choosing the ZEP+4 code that has its centroid closest to the coordinate location of the end user device. Alternatively, the detected location or street address may be converted to a DPC or ZIP+6 code for input to the website store locator. Conveniently, most company website store locators, such as the Domino's® website store locator, permit the use of a ZIP+4 or ZIP +6 code as an input to the Domino's® website store locator. In the case of an estimated error from MPC 60 of several hundred feet, the concierge application 100 can determine that it can only rely on the 5-digit ZIP code that has its centroid nearest to the mobile device location. Again, conveniently, the Domino's® website store locator permits a 5-digit ZIP code as an input, although in this case the store locator identifies nearby stores for carryout and not for delivery.
[57] As is apparent from the foregoing discussion, a website application 40 such as a merchant's website locator can allow for a variety of different inputs, such as a street address, a ZIP+4 code, a ZIP+6 code which is equivalent to an address, and a 5-digit ZIP code. Another input accepted by the Domino's® and other merchant's locator websites is a name of the city and/or the name of the state.
[58] In addition to the foregoing examples, there are many other types of inputs that can be determined from an end user device location, such as street intersections or landmarks (e.g., airports). In some cases a coordinate pair can be scaled for use as a direct input to an application or it can be converted into an index such as by interleaving the bits to form a quad-tree key, index or node, as disclosed in U.S. Patent Nos. 5,901,214 and 6,282,540, the disclosures of which are hereby incorporated by reference. [59] In one embodiment, in step 140, the user location finder 524 first translates the latitude and longitude coordinates obtained for a mobile device 10 into the street address that is nearest to the user's location. Those skilled in the art can implement various algorithms for translating a coordinate location to a street address, intersection, ZIP+4 code, ZIP+6 code or the like. For example, an exemplary embodiment may use street segment information as found in the TIGER files available from the U.S. Census Bureau, and/or information that provides lat/long centroids of ZIP+4 and ZIP+6 codes such as is available from Tele Atlas, and/or data available from the U.S. Postal Service (USPS). An illustrative algorithm which can be implemented by the location finder 524 to determine a representative address from latitude/longitude coordinates of a user location uses the following steps:
1. Build an indexed ZIP+4 file using a quad-tree as the index, derived from the lat/longs associated with the centroid of each ZIP+4 for street, high-rise and firm ZIP+4s, but excluding ZIP+4 codes for PO Boxes, Rural Routes or general delivery ZIP+4s. One source for the ZIP+4 code and lat/long information to do this is the GDT (Tele Atlas) file.
2. Build a quad-tree key, index or node for the mobile device lat/long.
3. Using the mobile device quad-tree, retrieve all matching ZIP+4 codes from the indexed ZIP+4 file, and then calculate the closest ZIP+4 code to the lat/long of the mobile device. The number of digits used in the quad-tree for matching can vary as necessary to achieve the desired results.
4. Using the ZIP+4 code closest to the mobile device and the USPS ZIP+4 file, look up the address range, street name, street type, and street pre and post directions.
5. Build the street address for the midpoint of the address range obtained in step 4.
6. Using the 5-digit ZIP code portion of the ZIP+4 code, retrieve the preferred last line city and state name that is associated with the address from the USPS City State file. [60] The location of the end user wireless device 10 relative to the locations of information available from network LBS applications affects the ability of the LBS web application to provide relevant information. For example, if an individual is on a boat ten miles from shore, or hiking on a mountain or in the middle of a desert, there is no street or intersection nearby, nor are there any nearby businesses. In such a case, while it is possible to identify the nearest Starbucks®, there likely is little value if it is 100 miles away from the end user. Thus, as with most web applications, there tends to be an increase in value when used, in urban over rural environments. Embodiments of the web concierge application 100 are configured to notify the user of the mobile device when there are no relevant merchant locations anywhere in the near vicinity of the user. [61] At step 150, the information retriever module 533 of the concierge application 100 queries the selected website(s) using the translated location from step 140- and, at a step 160, it receives the corresponding output data. While websites 40 are typically designed for human interaction, the concierge application 100 uses automated techniques commonly referred to as web bot technology to simulate the input normally obtained interactively from web users. TABLE 1 below provides an example of software source code to illustrate the usage of this type of technique for retrieving data from the store locator provided on the current Domino's® website.
TABLE 1 private string GetDoc( string URI, out string host )
{ char[] body - new char[ 1024 ] ;
StringBuilder strTotal = new StringBuilder( 8192 ) ; int count ;
ASCIIEncoding ASCIIEncoder = new ASCIIEncoding() ;
Encoding UTF8Encoder = System.Text.Encoding.GetEncoding("utf-8") ; host = "" ;
HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create( URI );
HttpWebResponse response ; try
{ response = (HttpWebResponse)webReq.GetResponse() ; host = response.ResponseUri.Host ;
} catch
{ return "" ;
} // Pipes the stream to a higher level stream reader with the required encoding format.
StreamReader s= new StreamReader( response.GetResponseStream(), UTFδEncoder ); // Now read response into a byte buffer. do
{ count = s.Read( body, 0, 1024 ) ; if( count > 0 )
{ strTotal.Append( body ) ;
} } while( count != 0 ) ; response.Close() ; return strTotal.ToString() ;
} string WebLocatorQuery( string address, string city, string state, string zip)
{ string URI ; string searchString = ">Store<" ; string hoursString = ">Hours<" ; string bodyBuffer ; string host ; string resultString = "" ; int searchStart = 0 ; int closeChevronlndex = 0 ; int openChevronlndex = 0 ;
URI = String.Format(
"htφ://www.dominos.corn/dominos_pizza/contact.nsf/USStoreLocator?openagent&street ={0}&cityStateZip={l}, {2} {3}", Address.Text, City.Text, State.Text, Zip.Text ) ; bodyBuffer = GetDoc( URI, out host ) ; // Address of store // Text we are parsing
// I Each store starts with this tag // v
// >Store</SP ANxBR t="t">12265 Scripps Poway Pkwy<BR t="t">Poway, CA 92064-6147<BR t="t">Phone: 858-549-4343<
// Λ Λ
// I I skip two closing chevrons, address is up to next open chevron, then
// we skip close, take to open again for city, state and again for phone searchStart = bodyBuffer.ϊndexOf( searchString, searchStart ) + 1 ; closeChevronlndex = bodyBuffer.IndexOf( ">", searchStart ) + 1 ; closeChevronlndex = bodyBuffer.IndexOf( ">", closeChevronlndex ) + 1 ; openChevronlndex =bodyBuffer.IndexOf( "<", closeChevronlndex ) ;
// Address resultString = "|" + bodyBuffer.Substring( closeChevronlndex, openChevronlndex - closeChevronlndex ) + "]" ;
// Check for a miss if( resultString = "|\r\n|" )
{ resultString = "|MISS|" ; return resultString ; } closeChevronlndex = bodyBuffer.IndexOf( ">", openChevronlndex ) + 1 ; openChevronlndex = bodyBuffer.IndexOf( "<", closeChevronlndex ) ;
// City, State resultString += bodyBuffer.Substring( closeChevronlndex, openChevronlndex - closeChevronlndex ) + "|" ; closeChevronlndex = bodyBuffer.IndexOf( ">", openChevronlndex ) + 1 ; openChevronlndex = bodyBuffer.IndexOf( "<", closeChevronlndex ) ;
// Phone resultString += bodyBuffer.Substring( closeChevronlndex, openChevronlndex - closeChevronlndex ) + "|" ;
// The store hours are in the next column
// >Hours</SP ANXBR t="t">Su-Th 11 AM-I IPM, Fr-Sa 11 AM-12AM< searchStart = bodyBuffer.IndexOf( hoursString, searchStart ) + 1 ; closeChevronlndex = bodyBuffer.IndexOf( ">", searchStart ) + 1 ; closeChevronlndex = bodyBuffer.IndexOf( ">", closeChevronlndex ) + 1 ; openChevronlndex = bodyBuffer.IndexOf( "<", closeChevronhidex ) ; resultString += bodyBuffer.Substring( closeChevronlndex, openChevronlndex - closeChevronlndex ) + "(" ; return resultString ;
}
[62] By using automated web bot techniques, the concierge application 100 can simultaneously query multiple websites to find the closest location of a requested merchant, and then parse the outputs to provide improved results. For example, if a user initiates a query for nearby pizza restaurants (using one of the methods described above), the concierge application 100 queries in parallel websites from Pizza Hut®, Domino's®, Papa John's®, California Pizza Kitchen®, and a wide variety of other known providers of pizza, in addition to other local search services such as those provided by Internet Yellow Pages® companies.
[63] The web bot techniques also allow for the concierge application 100 to continuously monitor the correct response of the various websites that it accesses, so that if a company changes the interface or other parameters of its LBS website applications, the concierge application 100 can relatively quickly adapt to the changed conditions. This enables a type of a "heartbeat" updating feature without having processed a request from an end user, whereby the concierge application 100 determines that its interface with one or more websites either is working correctly, requires correction, or has been automatically corrected, and updates its data base and provides appropriate notifications if appropriate.
[64] In some instances, the changes to a website cause an automatic update of the interface between the concierge and the website. Some changes to a website do not require any updating of the concierge application. For example, if the address of one of the stores listed in the Domino's® Pizza website was changed, then each time a user asks for that store, the new address is provided. Such changes to the contents of websites do not require modifications to the concierge application 100.
[65] However, if a website is modified in such a way that, for example, the website no longer provides addresses for the associated stores, then each time the concierge application 100 queries the website for the address, it receives no data. The "heartbeat" updating feature enables the concierge application to determine that its interface with the website is working incorrectly. In such a case, the concierge application receives appropriate notifications that the concierge's interface with the website needs to be modified to, for example, warn the user that addresses of the stores are no longer available. If the URL for a website is changed, the new URL will be stored by the database manager 522.
[66] Referring again to the step 160, the information retriever 533 of the concierge application 100 parses the data returned by a website 40 to obtain the desired information relevant to the particular LBS request from the step 120, such as store names, address, telephone numbers, hours open, directions, maps, and the like.
[67] In some cases, as noted above, the concierge application 100 uses multiple disparate websites. In one example, a store is located from one website and precise directions from the mobile device location to the located store are obtained from another website. Thus, after obtaining a company location from a company-specific website such as Pizza Hut® or Domino's®, the concierge application 100 then obtains maps and/or driving directions from websites such as MapQuest® and/or MapPoint®. In some embodiments, the concierge application 100 also links to other spatial and non-spatial data sources. Exemplary data linkage techniques are disclosed in U.S. Patent No. 5,901,214, mentioned above. In some cases, after identifying a restaurant or a doctor, the end user can also retrieve additional information, such as related customer ratings or health rating information.
[68] At a step 170, the concierge application 100 provides the appropriate information back to the end user. In some cases it is necessary for the concierge application to make multiple queries in order to obtain the desired information. It may be desirable or necessary in some cases for the concierge application 100 to communicate preliminary information back to the end user, such as a list of nearby locations, and then obtain additional input from the user, such as a selection from the list.
[69] Step 170 is performed after output module 530 finishes the web search for the information requested by the user and collects the requested information in output tables. In step 170, the processing module 520 processes the collected information and prepares an answer to the user. The processing is performed by translators 521, which parse and translate the information stored in the output tables into the format required by the user. The translated information is then sent to the user.
[70] As noted above, the user device may be communicating with the concierge application 100 using a variety of technologies, including IVR, text messaging, GUI, Internet browser, and other known communication technologies. The answer to the user is sent by an appropriate interface module, depending on the technique originally used to contact the concierge application 100.
[71] Where the user request was for the closest location of a merchant or driving directions to a merchant, the location information may be provided to the user with various degrees of geographic precision and may vary from low precision to fine precision. In some cases, low geographic precision of the desired merchant location is sufficient. For example, for a search which involves sparsely located specialty stores, a website application may provide information only at a "city level," i.e., it may only provide a name of the city compiled from Yellow Pages® data for identifying all entries of a type of business within a particular city. An example of a city level search is a search for specialty stores that are few and far between, such as a Maserati® dealer (or a Maserati® repair shop).
[72] In other cases, relatively fine location precision is provided. For example, a relatively fine precision may be required to discriminate the closest Starbucks® location from among a large number of candidate locations, which in an urban environment can be within a small distance of each other.
[73] In some cases the concierge application 100 needs to accommodate polygonal franchise boundaries, such as those used by Domino's® and Pizza Hut® franchises. In these cases, the closest location may be appropriate for carry-out but not be the appropriate location for delivery.
[74] In still other cases there can be multiple considerations, such as ATMs located on multiple floors of a high rise building and/or located where access may be limited to certain hours. Similarly, a FedEx® drop box location may be limited to certain types of packages and/or it may be self-service or full-service.
[75] As noted above, the output to the user device at step 170 will use the same interface that was used to make the original request, such as text messages, graphical user interface, Internet browser, or voice output via the IVR interface. In the latter case, the concierge application 100 can interact with IVR technology to receive spoken requests from and to speak results back to a telephony end user. The concierge application 100 can be implemented in various ways to allow for voice input and output, such as on the IVR platform or on a separate platform that communicates with the IVR platform. In all cases it is a matter of human interface design to reformat and wrap the website output from the step 160 as appropriate for providing the user output at step 170, e.g., building the appropriate dialogue and, in the case of the IVR, using text-to-speech or recorded voice for spoken output.
[76] One option which may be provided in the concierge application is communication via a live operator, as noted above. This maybe provided by specific user request or where other types of communication have failed to convey the information required. Where the user communicates a request to a live operator, the operator obtains desired results from the website(s) as appropriate for a caller's LBS request, and then speaks back information to the caller and/or causes information to be transmitted (e.g., display information sent back to a device) and/or provides some other service, such as enabling the caller to be connected to a located store's telephone number. Thus, in some embodiments, an operator utilizes a decision-making process. For example, if the caller requests information about a particular merchant or type of product or service, the operator has to decide which websites to query, such as an Internet Yellow Pages® site, Google®, Netscape®, Yahoo®, or other. In some cases the operator's task is effectively mechanical. For example, if the caller requests identification of the nearest location for a specific merchant or company, the operator mechanically facilitates queries to those company websites and facilitates the communication of the requested information back to the caller.
[77] One example of a specific user LBS request will now be described in detail. A user of communication device 10 may request the location of the closest outlet or store of a business, such as a restaurant, pizza delivery store such as Domino's® or Pizza Hut®, for example, Starbucks®, FedEx® office, UPS® office, ATM, bank, or the like. For the purpose of the following example, the user requests the location of the closest ABC pizza delivery store, where ABC could be any pizza delivery store or franchise such as Domino's®, Pizza Hut , or others. It will be understood that the same basic method can be used regardless of the type of business or merchant location which the user is seeking, whether it is a restaurant, coffee shop, bank, postal delivery service, car repair shop or any other type of merchant. Also, the user need not necessarily request the business or merchant by name, and could be simply looking for the closest garage, ATM, pizza delivery store, or the like, regardless of the company name, which can be found using a generic Yellow Pages® website, or other search engine, for example. [78] On receipt of a concierge request, the concierge application 100 first determines the location of the user using any of the techniques discussed above. The application then identifies the website or websites needed for locating the closed ABC pizza delivery store, for example the ABC website and possibly also a driving directions website where the user has requested such directions. The coordinate location of the end user device 10 is then translated into a street address that is nearest to the user's location, or into another location format if required by the ABC website. The application then launches the website of the requested merchant, such as ABC pizza delivery store, and queries the website with the user's street address, ZIP+4 or ZIP+6 to receive back information about the closest ABC pizza delivery store. In addition to identifying the address of the particular store, the company website can also provide the store's telephone number and hours of operation, as well as information about other nearby ABC pizza delivery locations that are available for carryout service. Concierge application 100 receives this information as output by the web application 40, and then selects and reformats information for communication back to the end user device 10. The reformatting can be done in a variety of ways. [79] The format of the answer provided to the user depends on the way the user contacted the concierge application 100. For example, if the user contacted the concierge application 100 over the phone, the concierge application 100 can provide to the user the phone number of the nearby ABC pizza delivery franchise and/or can offer to connect the user with the franchise. For example, the user can be automatically connected with the franchise and can place the pizza order right away over the phone. Alternatively, the user can be connected to a navigation-type system, which can provide the user with step-by- step directions to the nearby franchise. In one embodiment, the wireless infrastructure 20 provides access to the applications 40 via a telephone network. In this embodiment, the concierge application 100 connects the wireless device 10 with the selected LBS application 40. To connect with the LBS application, the concierge application 100 can use technology similar to the technology implemented in an "automated phone assistance," such as, e.g., "411" service. For example, once the concierge application 100 identifies a phone number of the requested LBS application, it can automatically connect the wireless device 10 with the phone number of the LBS application, in the same way that the "411" service can automatically connect a customer with the phone number of the requested party.
[80] The communication may be facilitated by a telephone connection, where a user of the wireless device 10 dials a dedicated phone number (e.g. l-800x, l-877x, etc.) provided and serviced by the wireless infrastructure 20. If the user interacts with the concierge application via a voice connection, the IVR interface 511 collects the voice input information from the user, translates communications between the concierge 100 and the wireless device 10, plays additional questions to narrow down the search for the answer to the user question, accepts user audio answers, and the like. The concierge application 100 accesses different telephone numbers associated with different LBS or groups of LBS with associated scripts stored by the data base manager and implemented by the IVR to obtain the information required by the caller. The concierge can then provide the information to the rVR interface 511 which translates and speaks the information to the caller. [81] If the user contacted the concierge application 100 using a graphical user interface ("GUI") application, the concierge application can display the response to the user on the display window of the wireless device 10. The concierge may display the phone number to the closest ABC pizza company franchise, take the order from the user by communicating with the user on the graphical user interface displayed on the wireless device 10, or provide the user with step-by-step directions to the nearby ABC company franchise, such as a Domino's® pizza delivery franchise, for example. After output module 530 finishes the web search of the information and collects the requested information in the output tables, the processing module 520 processes the information and prepares an answer to the user. The processing is performed by translators 521, which parse and translate the information stored in the output tables.
[82] If the user contacted the concierge application 100 by launching a browser, the browser can display the response to the user on the display window of the wireless device by communicating with the browser. For example, the concierge may display the phone number to the closest ABC company franchise in the browser window, take the order from the user by communicating via the browser, or display in the browser step-by-step directions to the nearby ABC company franchise.
[83] If the ABC pizza delivery store is to be instructed to deliver pizza to the current location of mobile device 10, a coordinate location for the user must be determined with sufficient precision to translate the coordinates accurately to a nearby street address. However, this may not be possible in all cases, for example if the results obtained using triangulation methods are imprecise due to the possible signal interference from the surrounding buildings and other objects. Thus, in exemplary embodiments, the concierge application 100 also determines an estimated error introduced by such devices as MPC 60 or other location finding techniques, and provides appropriate information to the user based on the estimated error, as discussed in more detail below.
[84] LBS websites 40 can return different types of output information depending on the type of the input parameter. For example, with a relatively precise location input (e.g., street address, ZIP+4 or ZIP+6 code), the Domino's® website returns information about both a delivery location and carryout locations, but with a relatively imprecise location input (e.g., 5 -digit ZIP code or city and state) it returns information only for carryout. Because the concierge application 100 controls the input type, it facilitates the ability to parse the output returned from a website. Concierge application 100 may be configured to translate the location available from the wireless infrastructure 20 into the most precise format compatible with the websites 40, as justified by the precision of the location. [85] Figure 4 is a flow chart illustrating the initial set up of the system to identify websites having LBS applications for use in the concierge application and to associate or link identified websites with a list of LBS service categories, and for building associated tables or scripts for user inputs and concierge outputs, using the web page setup module 525 of Figure 2. The same procedure is used both in initial set up of the concierge application and also when new websites are added to the list of stored URLs and associated service categories, or when websites are updated. There are a variety of reasons to expand the list of the LBS websites. For example, the list of LBS websites may be expanded because the concierge application 100 was unable to find an answer to a user question, or because list of service categories, list of associated websites, input tables, or output tables are outdated. The tables or scripts will be based on different user requests as well as possible responses received from the website or sites. The websites, user input script, and concierge output script may be added and updated as needed either automatically or manually by a system operator executing the steps in Figure 4. [86] The identified websites and associated service categories will be stored in data base module 525 along with the associated scripts or tables of user inputs and concierge outputs. It will be understood that the scripts may be in the form of trees with different branches based on different responses received from the user or from an LBS website. [87] In the first step 308, a list of service categories is identified and stored. These categories may include a list of specific merchants, such as restaurants, stores, theaters, subway stations, post offices, car repair shops, banks, or the like, general merchant categories, driving directions from one location to another, making reservations for hotels, theaters, airlines, trains, ferries, and the like, as well as other services suitable for a concierge application. In step 310, websites which can provide requested information are identified and the URL of each website is linked with at least one appropriate entry on the stored list of categories. In some cases, a URL will be linked with more than one entry on the category list, and each category may be linked to one or more URLs, as appropriate. The URL may be a home page for the website, or a URL directly linked to the LBS application at the website.
[88] In step 320, acceptable user inputs are identified and a table or script of the acceptable user inputs is built and stored (step 330). The table or script may include acceptable types of requests that the user can submit to the concierge application based on the type of service required, and the type of information required to query network resources in order to find an answer to the user request. One example would be a user request for the closest Domino's Pizza® restaurant, hi one embodiment, the acceptable types of user input for such a request include the name of the restaurant, user location (such as longitude and latitude coordinates of user location provided by a MPC, street address, ZIP+4 or ZIP+6 code), and the like. If the user wants to send a package, the acceptable types of user input may include the name of a carrier, the type of service sought, such as a self-service FedEx drop box or a full-service FedEx office location, and the like.
[89] At a step 330, a table (or an array, script, list of pointers, or the like) of acceptable types of user inputs is built. At this step, the initialization subroutine organizes the previously determined acceptable types of user inputs into a table or script that can be easily accessed by the concierge during answering of user requests. The organization of the table depends on the software configuration used in the implementation of the concierge application.
[90] At a step 340, the website set up module determines a list of acceptable types of concierge outputs. The list contains entries that define types of possible answers that the concierge application can provide to the user in response to the user request. For example, if a user asked for a location of the Domino's® Pizza restaurant, the possible types of responses from the concierge application may include an address of the restaurant, a ZIP+6 location code of the restaurant, a phone number to the restaurant, information that no restaurant in the area has been found, a prompt to provide some additional information, a list of similar restaurants in the area, and the like.
[91] At a step 350, an output table or script containing acceptable outputs from the concierge application is built. At this step, the previously identified outputs are organized into a table that can be easily accessed and filled with information by the concierge application when processing a user request. As with the user input tables, the organization and the format of the output table depends on the software configuration used in the implementation of the concierge application.
[92] At a step 360, a sequence of questions is generated in the form of a script for the concierge application. The script is a sequence of questions that the concierge application needs to ask the user before the concierge can start a search, and different scripts may be provided for different service requests. A set of user options will be associated with each question, and subsequent questions may depend on the option selected. The questions and user options are stored in the data storage module for use when the user interface format is text messaging, a graphical interface, or an Internet browser, and may also be pre-recorded and ported to an IVR system for use when spoken requests and spoken answers are used in communicating with the user.
[93] hi one embodiment, the questions and user options generated are organized in a form of a hierarchical tree. The tree comprises ordered sequences of questions used to collect information necessary to answer the user question. The questions are ordered in such a way that at each step of the sequence, the user has one or more options to select and at each step the concierge refines the search parameters. For example, to narrow down the search, the concierge might first ask the user whether the request pertains to finding a restaurant, and if so, whether the request pertains to delivery of pizza or other type of food. Then, if the request pertains to the delivery of pizza, the concierge might ask whether the request pertains to the delivery of pizza from Domino's® Pizza, Pizza Hut®, or other establishment.
[94] FIG. 5 is a block diagram illustrating multiple wireless devices 10 connected to multiple carriers 50. In one embodiment, the concierge application 100 is implemented using a web gateway 200. While the embodiment of FIG. 1 illustrates the concierge application 100 associated with carrier infrastructure 20 supporting a single carrier 50, the embodiment of FIG. 5 illustrates the concierge application 100 interfacing with multiple carriers 50 through web gateway 200. The carriers 50 in turn interface with multiple wireless devices 10. The concierge application 100 of Figure 5 may be identical to the application as illustrated in Figure 2, and the method of obtaining information and providing it to requesters using wireless devices .10 will be the same as described above in connection with Figures 1 to 4.
[95] The carriers 50 interface with web gateway 200 over network connections. The network connections can be connections within the infrastructure of the wireless networks, or they can be one or more of a variety of communications links such as the public Internet or dedicated Tl, T3, frame relay links, etc. Concierge application 100 within gateway 200 communicates with websites 40 via the Internet 30 in the same manner as shown and discussed for Figures 1 to 3.
[96] By providing a gateway for multiple carriers 50, the embodiment of Figure 5 facilitates an implementation of the concierge application 100 in a service provider model. Although not shown in Figure 5, the web gateway 200 interfaces with IVR platforms and operators in the same manner as shown and discussed above for the embodiments of Figures 1 to 4, or an IVR or operator platform can include the web gateway 200. In either of the above embodiments, the concierge application 100 can handle multiple requests from different users (or the same user) in the same way that the method and system of the first embodiment handled multiple requests from users using the same carrier. For example, the concierge application receives a first LBS request and identifies a first network application for that request, and receives a second LBS request for which a second network application is identified. The location of the LBS requested may be in different formats for the different network applications. For example, the first network application could be a web store and the input parameter to that application could be a ZIP+4 or ZEP+6 code. The second network application could be an LBS website and the input parameter to that application could be a street address identified for the LBS requester.
[97] In the embodiment of Figure 5, the location of a user device 10 can be obtained in various ways, as in the first embodiment, and may involve first determining the carrier network 50 over which the user is communicating, then querying an MPC of that carrier network to determine the current location of the wireless device. In this case, the location may be found using the method described in U.S. Patent Application Publication No. 20060106930 (co-pending Application Serial No. 11/281,952 filed November 15, 2005) as referenced above. Alternative location finding techniques may also be used, as discussed in detail above in connection with Figures 1 to 4.
[98] Implementations of the concierge application 100 can provide various benefits, such as the advantages of accessing specific company websites in lieu of Yellow Pages® data. There are various issues with Yellow Pages® data including: (1) there are many permutations for the same business name; (2) inconsistent categories across directories published in different parts of the country; (3) lack of currency (e.g. a business could buy a 3 year Yellow Pages® ad and go out of business after the first year), etc. In addition, many entries in the Yellow Pages® do not have addresses, and there are many entities that do not appear in the Yellow Pages® - entities such as ATMs, drop boxes and other self serve locations are not advertised in the Yellow Pages as they have no phone number to call. Most of these systems were based on an advertising business model, so they often were not designed to provide the consumer with what they really needed. A specific business website typically does not have these Yellow Pages® quality issues. [99] Aspects of embodiments also provide improvements over going directly to some dealer locator websites. For example many sites only provide ZIP code entry. Since ZIP codes usually cover a fairly large area, these sites cannot provide precise driving directions. However, since embodiments determine both the precise location of the end user device and the precise location of the desired business, precise driving directions can now be determined and returned to the end user. Concierge embodiments using inventive aspects disclosed herein can advantageously provide access to data that is both locational and current, such as the identity and times of movies currently showing at a nearby movie theatre. [100] Finally, as mentioned above, methods implementing aspects of the inventions can address privacy concerns. There is no need to pass an end user identity to a commercial service provider outside of a regulated network, rather, the commercial services receive only the LBS request and some form of locational input. Furthermore, if, for example, privacy-related rules or regulations preclude transmitting a latitude and longitude of a cell phone outside the cell phone network, an application can still provide a location-based service from outside the network by using a translated form of the device location such as ZIP+4 or ZIP+6 code. In other words, translation of the coordinate location inside the wireless network can permit use of the translated location outside the wireless network - the caller's telephone number can be kept inside the network.
[101] Those of skill will further appreciate that the various illustrative logical blocks, modules, and algorithm steps described in connection with the embodiments disclosed herein can often be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled persons can implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the inventions. In addition, the grouping of functions within a module, block or step is for ease of description. Specific functions or steps can be moved from one module, block or step without departing from the inventions.
[102] The various illustrative logical blocks and modules described in connection with the embodiments disclosed herein can be implemented or performed with a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general-purpose processor can be a microprocessor, but in the alternative, the processor can be any processor, controller, microcontroller, or state machine. A processor can also be implemented as a combination of computing devices, for example, a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration. [103] The steps of a method or algorithm described in connection with the embodiments disclosed herein can be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. A software module can reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, a CD-ROM, or any other form of storage medium. An exemplary storage medium can be coupled to the processor such that the processor can read information from, and write information to, the storage medium. Ih the alternative, the storage medium can be integral to the processor. The processor and the storage medium can reside in an ASIC.
[104] The above description of the disclosed embodiments is provided to enable any person skilled in the art to make or use the inventions. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles- defined herein can be applied to other embodiments without departing from the spirit or scope of the inventions. Thus, the inventions are not intended to be limited to the embodiments shown herein but are to be accorded the widest scope consistent with the principles and novel features disclosed herein.

Claims

1. A method of providing a location-based service comprising: receiving a location-based service request from a user of a communication device; obtaining a coordinate location of the communication device; identifying a network application related to the service request; translating the coordinate location of the communication device into an input parameter compatible with the network application; providing the input parameter to the network application; receiving an output from the network application; and providing a location-based service to the communication device based on the output.
2. The method of claim 1, wherein the communication device is a mobile device.
3. The method of claim 2, wherein the coordinate location is a latitude and longitude pair.
4. The method of claim 2, wherein obtaining the coordinate location comprises obtaining multiple coordinate locations of the mobile device over time.
5. The method of claim 4, wherein translating the coordinate location into an input parameter comprises translating multiple coordinate locations into multiple input parameters.
6. The method of claim 4, wherein translating the coordinate location into an input parameter comprises translating multiple coordinate locations into an input parameter.
7. The method of claim 1, wherein obtaining the coordinate location comprises obtaining the coordinate location from the communication device.
8. The method of claim 2, wherein obtaining the coordinate location comprises obtaining the coordinate location from a system external to the mobile device that determines the mobile device location.
9. The method of claim 2, further comprising obtaining an indication of the precision of the coordinate location of the mobile device.
10. The method of claim 1, wherein receiving a location-based service request comprises receiving spoken information.
11. The method of claim 1 , wherein receiving a location-based service request comprises receiving a request derived from spoken information.
12. The method of claim 1, wherein receiving a location-based service request comprises receiving a request derived from key entered data.
13. The method of claim 1 , wherein receiving a location-based service request comprises receiving a request derived from input through a graphical user interface
("GUI").
14. The method of claim 1, wherein receiving a location-based service request comprises receiving a request over a wireless voice network.
15. The method of claim 1, wherein receiving a location-based service request comprises receiving a request over a wireless data network.
16. The method of claim 1, wherein the communication device is a wireless device and receiving a location-based service request comprises receiving a text message from the wireless device user.
17. The method of claim 1, wherein the network application is a website.
18. The method of claim 1 , wherein the network application is a company-specific website location-based service ("LBS") application selected from multiple candidate company-specific website LBS applications.
19. The method of claim 1 , wherein the network application is a web location-based service ("LBS") application that provides information for multiple independent companies.
20. The method of claim 1 , wherein identifying a network application comprises prompting the communication device user to select an entity associated with a network application from multiple candidate entities.
21. The method of claim 1 , wherein identifying a network application comprises selecting an entity associated with a network application from multiple candidate entities based on speech input received from the communication device user.
22. The method of claim 1 , wherein identifying a network application comprises selecting a network application that provides information about multiple companies that provide a similar service.
23. The method of claim 1 , wherein identifying a network application comprises selecting multiple network applications to obtain information about multiple companies that provide a similar service.
24. The method of claim 1 , wherein identifying a network application comprises selecting an entity associated with a network application from multiple candidate entities based on a text message received from the communication device user.
25. The method of claim 1 , wherein providing the input parameter to the network application comprises determining a street address based on the coordinate location and providing the street address as an input to the network application.
26. The method of claim 1 , wherein providing the input parameter to the network application comprises determining a postal code based on the coordinate location and providing the postal code as an input to the network application.
27. The method of claim 1, wherein the postal code is a United States Postal Service ("USPS") zone improvement plan ("ZIP") code.
28. The method of claim 27, wherein the postal code is a ZIP+4 code.
29. The method of claim 27, wherein the postal code is a ZIP+6 code.
30. The method of claim 1, wherein providing the input parameter to the network application comprises providing an identification of a city as an input to the network application.
31. The method of claim 1 , wherein a first network application is identified based on a first location-based service request and a second network application is identified based on a second location-based service request, and the input parameter to the first network application is in a format different from the input parameter to the second network application.
32. The method of claim 31 , wherein the first network application is a web store locator, the input to the first network application is a postal code, the second network application is a web location based service ("LBS") application that provides directions, and the input to the second network application is a street address.
33. The method of claim 2, wherein receiving an output from the network application comprises receiving information about at least one location in the vicinity of the mobile device.
34. The method of claim 2, wherein receiving an output from the network application comprises receiving information about a plurality of locations in the vicinity of the mobile device.
35. The method of claim 2, wherein receiving an output from the network application comprises receiving directions from the communication device location to at least one location in the vicinity of the mobile device.
36. The method of claim 2, wherein providing a location-based service to the mobile device comprises providing output to the mobile device user through a GUI.
37. The method of claim 1, wherein providing a location-based service to the mobile device comprises providing spoken output to the communication device user.
38. The method of claim 2, wherein providing a location-based service to the mobile device comprises providing a text message output to the mobile device user.
39. The method of claim 2, wherein providing a location-based service to the mobile device comprises providing information about a location near to the mobile device.
40. The method of claim 2, wherein providing a location-based service to the mobile device comprises providing information about multiple locations near to the mobile device.
41. The method of claim 1 , wherein providing a location-based service to the communication device comprises providing directions from the mobile device location to at least one location near to the communication device.
42. The method of claim 1, wherein providing a location-based service to the communication device comprises establishing a communication session between the communication device and a particular location identified by the network application.
43. The method of claim 2, wherein providing a location-based service to the mobile device comprises establishing a voice communication link between the mobile device and a particular location identified by the network application.
44. The method of claim 1, wherein providing a location-based service to the communication device comprises enabling the communication device to place an order for a product or service from a particular location identified by the network application.
45. The method of claim 1, further comprising obtaining an estimated error associated with the coordinate location.
46. The method of claim 45, wherein the translating the coordinate location of the mobile device into an input parameter comprises determining the input parameter based on the estimated error associated with the coordinate location.
47. The method of claim I5 further comprising enabling a live operator to communicate with the communication device user prior to identifying the network application related to the service request.
48. The method of claim 47, wherein identifying a network application comprises obtaining information from a live operator that has communicated with the communication device user.
49. The method as claimed in claim 1, wherein the step of providing a location-based service to the communication device comprises translating the output from the network application into a location output in a format compatible with the user communication device and transmitting the location output to the communication device.
50. A method of providing a location-based service comprising: receiving a location-based service request from a user of a mobile device; obtaining a coordinate location of a mobile device; identifying a network application related to the service request; providing an input to the network application based on the coordinate location; receiving an output from the network application; and providing a location-based service ("LBS") to the mobile device based on the output.
51. The method of claim 50, wherein receiving a location-based service request comprises receiving a request derived from spoken information.
52. The method of claim 50, wherein identifying a network application comprises selecting a website associated with a web locator application from multiple candidate websites based on input received from the mobile device user.
53. The method of claim 50, wherein providing an input to the network application comprises providing a latitude and longitude pair as an input to the network application.
54. The method of claim 50, wherein providing an input to the network application comprises providing a parameter translated from the coordinate location as an input to the network application.
55. The method of claim 50, wherein a first network application is identified based on a first location-based service request and a second network application is identified based on a second location-based service request, and the input to the first network application is in a format different from the input to the second network application.
56. The method of claim 55, wherein the first network application is a web store locator, the input to the first network application is a postal code, the second network application is a web LBS that provides directions, and the input to the second network application is a street intersection.
57. The method of claim 50, wherein providing a location-based service to the mobile device comprises providing information about a location selected as the closest of multiple candidate locations.
58. The method of claim 50, wherein providing a location-based service to the mobile device comprises providing directions from the mobile device location to a nearby location.
59. The method of claim 50, wherein providing an input to the network application comprises translating the coordinate location into a format compatible with the network application and providing the translated location to the network application, and the step of providing an LBS to the mobile device comprises translating the output from the network application into a format compatible with the mobile device and providing the translated output to the mobile device.
60. A method of providing a location-based service comprising: receiving a request for location-based information from a user of a mobile device; identifying a company-specific location-based web application related to the service request; obtaining a latitude and longitude pair of the current location of the mobile device; translating the latitude and longitude pair to a location identifier for use as an input parameter to the web application; providing the location identifier to the web application; receiving an output from the web application; and providing information to the mobile device user based on the output.
61. The method of claim 60, wherein providing a location-based service to the mobile device is selected from the group consisting of: identification of the closest location from multiple candidate locations; directions from the mobile device location a nearby location; enabling an order of a product or service from a nearby location; and establishing a communication session between the mobile device and a nearby location.
62. A method of providing a location-based service comprising: receiving a location-based service request initiated by a user of a network communication device; identifying a network location-based service application related to the service request; receiving an input parameter translated from the coordinate location of the communication device; providing the input parameter to the network application; receiving an output from the network application; and providing selected information from the output for use in providing a . location-based service to the communication device.
63. A method of providing a location-based service comprising: receiving an input parameter representing a location associated with a user communicating over a network; receiving a location-based service ("LBS") request initiated by the user; selecting a web LBS application from multiple candidate web LBS applications based on the service request; providing the input parameter to the selected web LBS application; receiving an output from the web LBS application; and providing selected information from the output over the network for use in providing a location-based service to the user.
64. The method of claim 63, further comprising enabling a live operator to communicate with the user prior to selecting the web application.
65. The method of claim 63, wherein all steps are performed without interaction with a live operator.
66. A location-based concierge system, comprising: an interface module configured to receive a location-based service request from a user of a communication device; a processor module configured to find the location of the communication device, a network application identification module configured to identify a network application related to the service request; a translator module configured to translate the location of the communication device into an input parameter compatible with the network application; an output module configured to provide the input parameter to the network application, to receive a location output from the network application in response to the input parameter, and to provide the location output to the interface module; and the interface module being configured to provide the location output to the communication device in answer to the location-based service request.
67. The system as claimed in claim 66, further comprising a data base module for storing a list of service categories and a website list of LBS websites providing location-based services ("LBS"), and for linking each service category with at least one website from the list.
68. The system as claimed in claim 67, further comprising a website set up module configured to add LBS website pages to the website list and to update existing website page information on the list with updated information.
69. The system as claimed in claim 66, wherein the translator module is further configured to translate incoming location-based service requests to a format compatible with the processor module and to translate location outputs into a format compatible with the format of the service request from the user of the communication device before providing the location output to the communication device.
PCT/US2006/030550 2005-08-05 2006-08-04 Automated concierge system and method WO2007040807A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CA002618005A CA2618005A1 (en) 2005-08-05 2006-08-04 Automated concierge system and method
EP06789455A EP1913601A1 (en) 2005-08-05 2006-08-24 Automated concierge system and method

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US70555405P 2005-08-05 2005-08-05
US60/705,554 2005-08-05
US11/462,167 2006-08-03
US11/462,167 US8160614B2 (en) 2005-08-05 2006-08-03 Automated concierge system and method

Publications (1)

Publication Number Publication Date
WO2007040807A1 true WO2007040807A1 (en) 2007-04-12

Family

ID=37718259

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2006/030550 WO2007040807A1 (en) 2005-08-05 2006-08-04 Automated concierge system and method

Country Status (4)

Country Link
US (1) US8160614B2 (en)
EP (1) EP1913601A1 (en)
CA (1) CA2618005A1 (en)
WO (1) WO2007040807A1 (en)

Families Citing this family (206)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7072665B1 (en) 2000-02-29 2006-07-04 Blumberg Brad W Position-based information access device and method of searching
US8645137B2 (en) 2000-03-16 2014-02-04 Apple Inc. Fast, language-independent method for user authentication by voice
US20050192999A1 (en) * 2003-11-21 2005-09-01 Cook Scott J. System and method of virtualizing physical locations
US7890376B2 (en) * 2004-11-05 2011-02-15 Ebay Inc. System and method for location based content correlation
US9460094B1 (en) * 2005-01-10 2016-10-04 Novell, Inc. System and method for determining a nearest network resource using GPS coordinates
US8677377B2 (en) 2005-09-08 2014-03-18 Apple Inc. Method and apparatus for building an intelligent automated assistant
US7565157B1 (en) * 2005-11-18 2009-07-21 A9.Com, Inc. System and method for providing search results based on location
US8151322B2 (en) 2006-05-16 2012-04-03 A10 Networks, Inc. Systems and methods for user access authentication based on network access point
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US8036979B1 (en) 2006-10-05 2011-10-11 Experian Information Solutions, Inc. System and method for generating a finance attribute from tradeline data
US8312507B2 (en) 2006-10-17 2012-11-13 A10 Networks, Inc. System and method to apply network traffic policy to an application session
US7716378B2 (en) 2006-10-17 2010-05-11 A10 Networks, Inc. System and method to associate a private user identity with a public user identity
CA2620673C (en) 2006-10-23 2014-01-14 T-Mobile Usa, Inc. System and method for managing access point functionality and configuration
US7768395B2 (en) * 2007-01-19 2010-08-03 Gold Steven K Brand mapping
US8606626B1 (en) 2007-01-31 2013-12-10 Experian Information Solutions, Inc. Systems and methods for providing a direct marketing campaign planning environment
US8606666B1 (en) 2007-01-31 2013-12-10 Experian Information Solutions, Inc. System and method for providing an aggregation tool
US8249932B1 (en) 2007-02-02 2012-08-21 Resource Consortium Limited Targeted advertising in a situational network
US9185123B2 (en) * 2008-02-12 2015-11-10 Finsphere Corporation System and method for mobile identity protection for online user authentication
US8977255B2 (en) 2007-04-03 2015-03-10 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
CA2686971A1 (en) * 2007-04-03 2008-10-16 Ymax Communications Corp. Techniques for populating a contact list
KR100906109B1 (en) * 2007-06-20 2009-07-07 엔에이치엔(주) Ubiquitous Presence Method and System for Providing 3A Based Various Application Statuses
US9264483B2 (en) 2007-07-18 2016-02-16 Hammond Development International, Inc. Method and system for enabling a communication device to remotely execute an application
TWI400934B (en) * 2007-08-06 2013-07-01 Hsiu Ping Lin Location-based service method in a communication system
US7729953B2 (en) * 2007-10-11 2010-06-01 Ebay Inc. Acquisition of online auction items through a global positioning system
US9330720B2 (en) 2008-01-03 2016-05-03 Apple Inc. Methods and apparatus for altering audio output signals
US20090182630A1 (en) * 2008-01-11 2009-07-16 Jonathan Otto System and method for enabling point of sale functionality in a wireless communications device
US8745165B2 (en) * 2008-03-11 2014-06-03 Disney Enterprises, Inc. System and method for managing distribution of rich media content
US20090248548A1 (en) * 2008-03-26 2009-10-01 30 Second Software, Inc. Method for location based inventory lookup
US9426293B1 (en) * 2008-04-02 2016-08-23 United Services Automobile Association (Usaa) Systems and methods for location based call routing
US8996376B2 (en) 2008-04-05 2015-03-31 Apple Inc. Intelligent text-to-speech conversion
US10496753B2 (en) 2010-01-18 2019-12-03 Apple Inc. Automatically adapting user interfaces for hands-free interaction
US9646025B2 (en) 2008-05-27 2017-05-09 Qualcomm Incorporated Method and apparatus for aggregating and presenting data associated with geographic locations
US8885635B2 (en) 2008-07-17 2014-11-11 T-Mobile Usa, Inc. System and method for selectively provisioning telecommunications services between an access point and a telecommunications network using a subscriber identifier
US8619545B2 (en) * 2008-07-17 2013-12-31 T-Mobile Usa, Inc. System and method for selectively provisioning telecommunications services between an access point and a telecommunications network based on landline telephone detection
US20100030549A1 (en) 2008-07-31 2010-02-04 Lee Michael M Mobile device having human language translation capability with positional feedback
EP2311284B1 (en) * 2008-08-01 2017-11-15 Tekelec, Inc. Method, system and computer readable media for triggerless routing/screening based on a mobile subscriber's location
ES2336187B2 (en) * 2008-10-07 2010-10-27 Universitat Rovira I Virgili PROCEDURE FOR OBTAINING INFORMATION ASSOCIATED WITH A LOCATION.
US9959870B2 (en) 2008-12-11 2018-05-01 Apple Inc. Speech recognition involving a mobile device
US8320344B2 (en) 2009-02-27 2012-11-27 T-Mobile Usa, Inc. System and method for provisioning telecommunications services between an access point and a telecommunications network and providing a missing information notification
US8484457B2 (en) * 2009-03-10 2013-07-09 T-Mobile Usa, Inc. Method of securely pairing devices with an access point for an IP-based wireless network
US8731984B2 (en) * 2009-04-17 2014-05-20 Visa International Service Association Global concierge
US20130138635A1 (en) * 2009-05-15 2013-05-30 Hyundai Motor Company Search method using a plurality of space of interest objects
US10255566B2 (en) 2011-06-03 2019-04-09 Apple Inc. Generating and processing task items that represent tasks to perform
US10241644B2 (en) 2011-06-03 2019-03-26 Apple Inc. Actionable reminder entries
US9858925B2 (en) 2009-06-05 2018-01-02 Apple Inc. Using context information to facilitate processing of commands in a virtual assistant
US10241752B2 (en) 2011-09-30 2019-03-26 Apple Inc. Interface for a virtual digital assistant
US9431006B2 (en) 2009-07-02 2016-08-30 Apple Inc. Methods and apparatuses for automatic speech recognition
US8874784B2 (en) 2009-08-10 2014-10-28 Tekelec, Inc. Systems, methods, and computer readable media for controlling social networking service originated message traffic
US20110055247A1 (en) * 2009-09-01 2011-03-03 Blumberg Brad W Provider-specific branding of generic mobile real estate search application
US9155125B1 (en) * 2009-09-16 2015-10-06 Sprint Communications Company L.P. Location validation system and methods
US10679605B2 (en) 2010-01-18 2020-06-09 Apple Inc. Hands-free list-reading by intelligent automated assistant
US10276170B2 (en) 2010-01-18 2019-04-30 Apple Inc. Intelligent automated assistant
US10705794B2 (en) 2010-01-18 2020-07-07 Apple Inc. Automatically adapting user interfaces for hands-free interaction
US10553209B2 (en) 2010-01-18 2020-02-04 Apple Inc. Systems and methods for hands-free notification summaries
US8270954B1 (en) 2010-02-02 2012-09-18 Sprint Communications Company L.P. Concierge for portable electronic device
US8625756B1 (en) 2010-02-03 2014-01-07 Tal Lavian Systems and methods for visual presentation and selection of IVR menu
US8903073B2 (en) 2011-07-20 2014-12-02 Zvi Or-Bach Systems and methods for visual presentation and selection of IVR menu
US8572303B2 (en) 2010-02-03 2013-10-29 Tal Lavian Portable universal communication device
US8681951B1 (en) 2010-02-03 2014-03-25 Tal Lavian Systems and methods for visual presentation and selection of IVR menu
US8537989B1 (en) 2010-02-03 2013-09-17 Tal Lavian Device and method for providing enhanced telephony
US8594280B1 (en) 2010-02-03 2013-11-26 Zvi Or-Bach Systems and methods for visual presentation and selection of IVR menu
US8687777B1 (en) 2010-02-03 2014-04-01 Tal Lavian Systems and methods for visual presentation and selection of IVR menu
US8406388B2 (en) 2011-07-18 2013-03-26 Zvi Or-Bach Systems and methods for visual presentation and selection of IVR menu
US8548135B1 (en) 2010-02-03 2013-10-01 Tal Lavian Systems and methods for visual presentation and selection of IVR menu
US8553859B1 (en) 2010-02-03 2013-10-08 Tal Lavian Device and method for providing enhanced telephony
US9001819B1 (en) 2010-02-18 2015-04-07 Zvi Or-Bach Systems and methods for visual presentation and selection of IVR menu
US8879698B1 (en) 2010-02-03 2014-11-04 Tal Lavian Device and method for providing enhanced telephony
US8548131B1 (en) 2010-02-03 2013-10-01 Tal Lavian Systems and methods for communicating with an interactive voice response system
US8682667B2 (en) 2010-02-25 2014-03-25 Apple Inc. User profiling for selecting user specific voice input processing information
US8630283B1 (en) 2010-03-05 2014-01-14 Sprint Communications Company L.P. System and method for applications based on voice over internet protocol (VoIP) Communications
US8903800B2 (en) * 2010-06-02 2014-12-02 Yahoo!, Inc. System and method for indexing food providers and use of the index in search engines
US20120003964A1 (en) * 2010-06-30 2012-01-05 Armstrong Soo Method, System, and Computer Program Product for Providing Customized Information to Mobile Devices
US9235843B2 (en) * 2010-09-27 2016-01-12 T-Mobile Usa, Inc. Insertion of user information into headers to enable targeted responses
US10762293B2 (en) 2010-12-22 2020-09-01 Apple Inc. Using parts-of-speech tagging and named entity recognition for spelling correction
US9262612B2 (en) 2011-03-21 2016-02-16 Apple Inc. Device access using voice authentication
US10057736B2 (en) 2011-06-03 2018-08-21 Apple Inc. Active transport based notifications
US8478855B1 (en) 2011-06-29 2013-07-02 Amazon Technologies, Inc. Application control translation
US8572178B1 (en) 2011-07-01 2013-10-29 Amazon Technologies, Inc. Executing applications in remotely emulated computing devices
US8994660B2 (en) 2011-08-29 2015-03-31 Apple Inc. Text correction processing
CN103092857A (en) * 2011-11-01 2013-05-08 腾讯科技(深圳)有限公司 Method and device for sorting historical records
US20130148582A1 (en) * 2011-11-17 2013-06-13 Tip Solutions, Inc. Message injection system and method
WO2013091230A1 (en) * 2011-12-23 2013-06-27 Microsoft Corporation Life advisor application for task completion
US10460350B2 (en) * 2011-12-30 2019-10-29 Visa International Service Association Digital concierge application
US20130266925A1 (en) * 2012-01-30 2013-10-10 Arizona Board Of Regents On Behalf Of The University Of Arizona Embedded Conversational Agent-Based Kiosk for Automated Interviewing
US8731148B1 (en) 2012-03-02 2014-05-20 Tal Lavian Systems and methods for visual presentation and selection of IVR menu
US10134385B2 (en) 2012-03-02 2018-11-20 Apple Inc. Systems and methods for name pronunciation
US8867708B1 (en) 2012-03-02 2014-10-21 Tal Lavian Systems and methods for visual presentation and selection of IVR menu
US9483461B2 (en) 2012-03-06 2016-11-01 Apple Inc. Handling speech synthesis of content for multiple languages
US20130268232A1 (en) * 2012-04-10 2013-10-10 Qualcomm Incorporated Informative Display for Statistical Positioning System
KR101879857B1 (en) * 2012-05-04 2018-07-18 주식회사 케이티 Method and apparatus for providing of service using virtual tagging gesture
US9280610B2 (en) 2012-05-14 2016-03-08 Apple Inc. Crowd sourcing information to fulfill user requests
US10417037B2 (en) * 2012-05-15 2019-09-17 Apple Inc. Systems and methods for integrating third party services with a digital assistant
US9760895B2 (en) 2012-06-04 2017-09-12 American Express Travel Related Services Company, Inc. Systems and methods for delivering tailored content based upon a consumer profile
US9721563B2 (en) 2012-06-08 2017-08-01 Apple Inc. Name recognition system
US9578115B2 (en) 2012-06-15 2017-02-21 Qualcomm Incorporated Indoor location server provision and discovery
US11265673B2 (en) * 2012-06-15 2022-03-01 Qualcomm Incorporated Client access to mobile location services
US10419890B2 (en) 2012-06-15 2019-09-17 Qualcomm Incorporated Client access to mobile location services
US9495129B2 (en) 2012-06-29 2016-11-15 Apple Inc. Device, method, and user interface for voice-activated navigation and browsing of a document
US9576574B2 (en) 2012-09-10 2017-02-21 Apple Inc. Context-sensitive handling of interruptions by intelligent digital assistant
US9547647B2 (en) 2012-09-19 2017-01-17 Apple Inc. Voice-based media searching
US20140129453A1 (en) * 2012-11-02 2014-05-08 Robert Brazell Personal Concierge on Mobile Computing Device
EP2954514B1 (en) 2013-02-07 2021-03-31 Apple Inc. Voice trigger for a digital assistant
US9355378B2 (en) * 2013-03-14 2016-05-31 American Express Travel Related Services Company, Inc. Systems and methods for identifying and delivering tailored content based upon a service dialog
US9368114B2 (en) 2013-03-14 2016-06-14 Apple Inc. Context-sensitive handling of interruptions
AU2014233517B2 (en) 2013-03-15 2017-05-25 Apple Inc. Training an at least partial voice command system
US9436958B2 (en) 2013-03-15 2016-09-06 Monscierge, Inc. Receiving and queuing requests from hospitality customers
US8676663B1 (en) 2013-03-15 2014-03-18 Monscierge, Inc. Providing recommendations to hospitality customers
WO2014144579A1 (en) 2013-03-15 2014-09-18 Apple Inc. System and method for updating an adaptive speech recognition model
JP6522590B2 (en) * 2013-05-31 2019-05-29 クゥアルコム・インコーポレイテッドQualcomm Incorporated Client Access to Mobile Location Services
US10437658B2 (en) 2013-06-06 2019-10-08 Zebra Technologies Corporation Method, apparatus, and computer program product for collecting and displaying sporting event data based on real time data for proximity and movement of objects
WO2014197336A1 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for detecting errors in interactions with a voice-based digital assistant
WO2014197334A2 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for user-specified pronunciation of words for speech synthesis and recognition
US9582608B2 (en) 2013-06-07 2017-02-28 Apple Inc. Unified ranking with entropy-weighted information for phrase-based semantic auto-completion
WO2014197335A1 (en) 2013-06-08 2014-12-11 Apple Inc. Interpreting and acting upon commands that involve sharing information with remote devices
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
WO2014200728A1 (en) 2013-06-09 2014-12-18 Apple Inc. Device, method, and graphical user interface for enabling conversation persistence across two or more instances of a digital assistant
AU2014278595B2 (en) 2013-06-13 2017-04-06 Apple Inc. System and method for emergency calls initiated by voice command
US9122853B2 (en) 2013-06-24 2015-09-01 A10 Networks, Inc. Location determination for user authentication
KR101749009B1 (en) 2013-08-06 2017-06-19 애플 인크. Auto-activating smart responses based on activities from remote devices
US11165770B1 (en) 2013-12-06 2021-11-02 A10 Networks, Inc. Biometric verification of a human internet user
US10262362B1 (en) 2014-02-14 2019-04-16 Experian Information Solutions, Inc. Automatic generation of code for attributes
MX357764B (en) 2014-04-04 2018-07-24 Arguello Lacayo Adolfo Techniques for synchronized address coding and print sequencing.
US9620105B2 (en) 2014-05-15 2017-04-11 Apple Inc. Analyzing audio input for efficient speech and music recognition
US10592095B2 (en) 2014-05-23 2020-03-17 Apple Inc. Instantaneous speaking of content on touch devices
US9502031B2 (en) 2014-05-27 2016-11-22 Apple Inc. Method for supporting dynamic grammars in WFST-based ASR
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US9842101B2 (en) 2014-05-30 2017-12-12 Apple Inc. Predictive conversion of language input
US9760559B2 (en) 2014-05-30 2017-09-12 Apple Inc. Predictive text input
US9734193B2 (en) 2014-05-30 2017-08-15 Apple Inc. Determining domain salience ranking from ambiguous words in natural speech
US9633004B2 (en) 2014-05-30 2017-04-25 Apple Inc. Better resolution when referencing to concepts
US9785630B2 (en) 2014-05-30 2017-10-10 Apple Inc. Text prediction using combined word N-gram and unigram language models
US9966065B2 (en) 2014-05-30 2018-05-08 Apple Inc. Multi-command single utterance input method
US10289433B2 (en) 2014-05-30 2019-05-14 Apple Inc. Domain specific language for encoding assistant dialog
US10078631B2 (en) 2014-05-30 2018-09-18 Apple Inc. Entropy-guided text prediction using combined word and character n-gram language models
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US9430463B2 (en) 2014-05-30 2016-08-30 Apple Inc. Exemplar-based natural language processing
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US10659851B2 (en) 2014-06-30 2020-05-19 Apple Inc. Real-time digital assistant knowledge updates
US10068244B2 (en) * 2014-08-25 2018-09-04 Capital One Services, Llc Systems and methods for suggesting financial account cards stored on a wireless device
US10446141B2 (en) 2014-08-28 2019-10-15 Apple Inc. Automatic speech recognition based on user feedback
US9818400B2 (en) 2014-09-11 2017-11-14 Apple Inc. Method and apparatus for discovering trending terms in speech requests
US10789041B2 (en) 2014-09-12 2020-09-29 Apple Inc. Dynamic thresholds for always listening speech trigger
US10074360B2 (en) 2014-09-30 2018-09-11 Apple Inc. Providing an indication of the suitability of speech recognition
US9646609B2 (en) 2014-09-30 2017-05-09 Apple Inc. Caching apparatus for serving phonetic pronunciations
US9886432B2 (en) 2014-09-30 2018-02-06 Apple Inc. Parsimonious handling of word inflection via categorical stem + suffix N-gram language models
US9668121B2 (en) 2014-09-30 2017-05-30 Apple Inc. Social reminders
US10127911B2 (en) 2014-09-30 2018-11-13 Apple Inc. Speaker identification and unsupervised speaker adaptation techniques
US10552013B2 (en) 2014-12-02 2020-02-04 Apple Inc. Data detection
US9711141B2 (en) 2014-12-09 2017-07-18 Apple Inc. Disambiguating heteronyms in speech synthesis
US10028086B2 (en) * 2015-02-18 2018-07-17 Kii, Inc. Techniques for implementing location based device services
US9865280B2 (en) 2015-03-06 2018-01-09 Apple Inc. Structured dictation using intelligent automated assistants
US10567477B2 (en) 2015-03-08 2020-02-18 Apple Inc. Virtual assistant continuity
US9721566B2 (en) 2015-03-08 2017-08-01 Apple Inc. Competing devices responding to voice triggers
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US9899019B2 (en) 2015-03-18 2018-02-20 Apple Inc. Systems and methods for structured stem and suffix language models
US9842105B2 (en) 2015-04-16 2017-12-12 Apple Inc. Parsimonious continuous-space phrase representations for natural language processing
US10083688B2 (en) 2015-05-27 2018-09-25 Apple Inc. Device voice control for selecting a displayed affordance
US20170339542A1 (en) * 2015-05-29 2017-11-23 Alfredo Bocanegra Emergency or other service rapid location hub, request method and/or data sharing interface
US10127220B2 (en) 2015-06-04 2018-11-13 Apple Inc. Language identification from short strings
US9578173B2 (en) 2015-06-05 2017-02-21 Apple Inc. Virtual assistant aided communication with 3rd party service in a communication session
US10101822B2 (en) 2015-06-05 2018-10-16 Apple Inc. Language input correction
US10186254B2 (en) 2015-06-07 2019-01-22 Apple Inc. Context-based endpoint detection
US10255907B2 (en) 2015-06-07 2019-04-09 Apple Inc. Automatic accent detection using acoustic models
US11025565B2 (en) 2015-06-07 2021-06-01 Apple Inc. Personalized prediction of responses for instant messaging
CN106302613A (en) * 2015-06-10 2017-01-04 网宿科技股份有限公司 A kind of method of direct application flow based on Windows Phone 8 platform
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US10671428B2 (en) 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US9697820B2 (en) 2015-09-24 2017-07-04 Apple Inc. Unit-selection text-to-speech synthesis using concatenation-sensitive neural networks
US10366158B2 (en) 2015-09-29 2019-07-30 Apple Inc. Efficient word encoding for recurrent neural network language models
US11010550B2 (en) 2015-09-29 2021-05-18 Apple Inc. Unified language modeling framework for word prediction, auto-completion and auto-correction
US11587559B2 (en) 2015-09-30 2023-02-21 Apple Inc. Intelligent device identification
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US10049668B2 (en) 2015-12-02 2018-08-14 Apple Inc. Applying neural network language models to weighted finite state transducers for automatic speech recognition
US20170171344A1 (en) * 2015-12-15 2017-06-15 Le Holdings (Beijing) Co., Ltd. Scheduling method and server for content delivery network service node
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
US10446143B2 (en) 2016-03-14 2019-10-15 Apple Inc. Identification of voice inputs providing credentials
US9934775B2 (en) 2016-05-26 2018-04-03 Apple Inc. Unit-selection text-to-speech synthesis based on predicted concatenation parameters
US9972304B2 (en) 2016-06-03 2018-05-15 Apple Inc. Privacy preserving distributed evaluation framework for embedded personalized systems
US10249300B2 (en) 2016-06-06 2019-04-02 Apple Inc. Intelligent list reading
US10049663B2 (en) 2016-06-08 2018-08-14 Apple, Inc. Intelligent automated assistant for media exploration
DK179309B1 (en) 2016-06-09 2018-04-23 Apple Inc Intelligent automated assistant in a home environment
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
US10490187B2 (en) 2016-06-10 2019-11-26 Apple Inc. Digital assistant providing automated status report
US10192552B2 (en) 2016-06-10 2019-01-29 Apple Inc. Digital assistant providing whispered speech
US10067938B2 (en) 2016-06-10 2018-09-04 Apple Inc. Multilingual word prediction
US10509862B2 (en) 2016-06-10 2019-12-17 Apple Inc. Dynamic phrase expansion of language input
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
DK179343B1 (en) 2016-06-11 2018-05-14 Apple Inc Intelligent task discovery
DK179415B1 (en) 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
DK179049B1 (en) 2016-06-11 2017-09-18 Apple Inc Data driven natural language event detection and classification
US10043516B2 (en) 2016-09-23 2018-08-07 Apple Inc. Intelligent automated assistant
US11281993B2 (en) 2016-12-05 2022-03-22 Apple Inc. Model and ensemble compression for metric learning
CN106789567B (en) * 2016-12-13 2019-05-07 宁夏宁信信息科技有限公司 Follow-on customization service based on LBS provides mobile terminal and method
US10593346B2 (en) 2016-12-22 2020-03-17 Apple Inc. Rank-reduced token representation for automatic speech recognition
DK201770383A1 (en) 2017-05-09 2018-12-14 Apple Inc. User interface for correcting recognition errors
DK201770439A1 (en) 2017-05-11 2018-12-13 Apple Inc. Offline personal assistant
DK201770428A1 (en) 2017-05-12 2019-02-18 Apple Inc. Low-latency intelligent automated assistant
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
DK179745B1 (en) 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
DK201770431A1 (en) 2017-05-15 2018-12-20 Apple Inc. Optimizing dialogue policy decisions for digital assistants using implicit feedback
DK201770432A1 (en) 2017-05-15 2018-12-21 Apple Inc. Hierarchical belief states for digital assistants
DK179560B1 (en) 2017-05-16 2019-02-18 Apple Inc. Far-field extension for digital assistant services
US11587107B2 (en) * 2019-11-21 2023-02-21 Rockspoon, Inc. System and method for customer and business referrals with a smart device concierge system
US11303750B2 (en) 2020-06-30 2022-04-12 Avaya Management L.P. Intelligent interactive voice response (IVR) navigator
US11893522B2 (en) 2021-02-24 2024-02-06 Wipro Limited Method and system for providing just-in-time (JIT) service to automotive users
US20230306023A1 (en) * 2022-02-09 2023-09-28 Maplebear Inc. (Dba Instacart) Training a machine learned model to determine relevance of items to a query using different sets of training data from a common domain

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000003364A1 (en) * 1998-07-11 2000-01-20 Calcar Advertising, Inc. Personal communication and positioning system
WO2001090769A2 (en) * 2000-04-14 2001-11-29 Media Online Services, Inc. System for interconnection of audio program data transmitted to remote vehicle or individual with gps location
US6336072B1 (en) * 1998-11-20 2002-01-01 Fujitsu Limited Apparatus and method for presenting navigation information based on instructions described in a script
US6546337B2 (en) * 2001-08-22 2003-04-08 Matsushita Electric Industrial Co., Ltd. Method of integrating subscriber based traffic navigation and hospitality data with a global positioning system
WO2004060003A1 (en) * 2002-12-27 2004-07-15 Nokia Corporation Method for presenting location information on a mobile terminal

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7386318B2 (en) * 2002-03-19 2008-06-10 Pitney Bowes Mapinfo Corporation Location based service provider
US7200413B2 (en) * 2002-07-31 2007-04-03 Interchange Corporation Methods and system for enhanced directory assistance using wireless messaging protocols
US7123928B2 (en) * 2003-07-21 2006-10-17 Qualcomm Incorporated Method and apparatus for creating and using a base station almanac for position determination
US7089022B1 (en) * 2005-02-02 2006-08-08 Kyocera Wireless Corp. Systems and methods for obtaining location based information using a mobile communication device
US7336964B2 (en) * 2005-07-12 2008-02-26 Qwest Communications International Inc. Correlating activities with the location of a mobile communications device systems and methods

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000003364A1 (en) * 1998-07-11 2000-01-20 Calcar Advertising, Inc. Personal communication and positioning system
US6336072B1 (en) * 1998-11-20 2002-01-01 Fujitsu Limited Apparatus and method for presenting navigation information based on instructions described in a script
WO2001090769A2 (en) * 2000-04-14 2001-11-29 Media Online Services, Inc. System for interconnection of audio program data transmitted to remote vehicle or individual with gps location
US6546337B2 (en) * 2001-08-22 2003-04-08 Matsushita Electric Industrial Co., Ltd. Method of integrating subscriber based traffic navigation and hospitality data with a global positioning system
WO2004060003A1 (en) * 2002-12-27 2004-07-15 Nokia Corporation Method for presenting location information on a mobile terminal

Also Published As

Publication number Publication date
US20070032247A1 (en) 2007-02-08
EP1913601A1 (en) 2008-04-23
US8160614B2 (en) 2012-04-17
CA2618005A1 (en) 2007-04-12

Similar Documents

Publication Publication Date Title
US8160614B2 (en) Automated concierge system and method
US7412260B2 (en) Routing call failures in a location-based services system
US6757544B2 (en) System and method for determining a location relevant to a communication device and/or its associated user
US7386318B2 (en) Location based service provider
US6850766B2 (en) Voice activated wireless locator service
US6912545B1 (en) Location-code system for location-based services
US8626759B2 (en) Method and system for searching an information retrieval system according to user-specified location information
US7934224B2 (en) Method, interface and apparatus for discovering a location of a device
US7242949B2 (en) Multimedia information and information inquiry download service
EP1603318A2 (en) Full-featured and actionable access to directory assistence query results
US20100082241A1 (en) Method and system for providing navigational services
US9739634B2 (en) Multicomputer data transferring for transferring data between multiple computers that use the data after the transfer
US20140256361A1 (en) Method for passive mining of usage information in a location-based services system
CN101309441B (en) Information searching system based on subscriber location and calling center
EP2289231A1 (en) A system and method utilizing voice search to locate a procuct in stores from a phone
US10228261B2 (en) Interactive voice response with user designated delivery
US7433682B1 (en) Method and system for providing location based information to a mobile station
JP2008517372A (en) Apparatus and method for location database
US20120027190A1 (en) Phone Name Service
WO2002058426A1 (en) A system for facilitating delivery of location-dependent information to mobile devices
KR20020012062A (en) Method for searching area information by mobile phone using input of voice commands and automatic positioning
KR20050028480A (en) System and method for providing location information using phone number in location-based service
Smith et al. Location based services-the underlying technology
KR100844239B1 (en) A sysytem for location information service and a method therefor
Bychowski et al. OpenGIS® Location Services (OpenLS): Core Services

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2006789455

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2618005

Country of ref document: CA

NENP Non-entry into the national phase

Ref country code: DE