基于模糊位置来提供线路信息的制作方法

文档序号:5831956阅读:109来源:国知局
专利名称:基于模糊位置来提供线路信息的制作方法
技术领域
本发明一般涉及计算机化映射,并且特别涉及用于提供在指定位置之间的方向或其他线路信息的系统。

背景技术
使用因特网上的网站来获取诸如驾驶方向、列车时刻表等等之类的线路信息已经变得非常常见。在大多数网站上,搜索方向的终端用户提供出发位置和终止位置,并且网站返回两个位置之间的线路信息。网站还可以返回另外的信息,诸如地图和估计的行进时间。
在计算线路信息时的一个共同问题是位置的模糊性。时常,终端用户将仅仅提供针对一个或两个位置的部分地址。部分地址分辨起来比较困难,因为常常存在多个地方具有相同的名称。例如,在印第安纳州的Salem与伊利诺伊州的Chicago之间搜索驾驶方向的终端用户可能向网站提供了标识出发位置为“Salem”和/或终止位置为“Chicago”的线路请求。在美国存在至少10个城市具有名称“Salem”,并且同样存在至少两个命名为“Chicago”的城市。结果,网站需要请终端用户细化线路信息以分辨模糊的位置。
通常,网站将向终端用户提供与模糊位置匹配的可能位置的列表,并且请终端用户从它们之间进行选择。例如,网站可以请终端用户在伊利诺伊州的Chicago与威斯康星州的Chicago之间进行选择。终端用户与网站之间的这些交互是麻烦的并且消耗时间。当终端用户经由低速通信链路与网站进行通信和/或使用小显示屏或受限用户界面的移动设备时,这些问题尤其突出。
因此,在现有技术中需要更为有效的方式来分辨指定模糊位置的线路信息请求。


发明内容
可以通过一种用于在接收对线路信息的请求后提供线路信息的方法、系统和计算机程序产品来满足上面的需要,其中所述请求指定至少一个模糊位置。所述方法、系统和计算机程序产品识别可能匹配模糊位置的位置,并且基于度量来对可能匹配的位置进行排名。接着,所述方法、系统和计算机程序产品提供针对排名最高的可能匹配的位置的线路信息。



图1是根据本发明的一个实施例的计算环境的高层框图。
图2是根据一个实施例说明用作像在图1的环境示出的客户端或服务器的典型计算机的功能视图的高层框图。
图3是根据一个实施例说明线路信息模块内的模块的高层框图。
图4是根据一个实施例说明由线路信息模块和/或线路服务器所执行的步骤的流程图。
这些图仅仅出于说明的目的来描绘本发明的实施例。本领域的普通技术人员将容易从以下描述中认识到,在不偏离此处所描述的本发明的原则的条件下,可以具体实现此处所说明的结构和方法的替代性实施例。

具体实施例方式 图1是根据本发明的一个实施例的计算环境100的高层框图。图1示出通过网络114连接的三个客户端110和线路服务器112。图1和其他附图使用相同的参考号来标识相似的元件。在参考标号(诸如“110A”)后面的字母指示该文字特指具有该特定参考标号的元件。在文字中不带后续字母的参考标号(诸如“110”)是指各图中带有该参考标号的任何或全部元件(例如,文字“110”是指附图中的参考标号“110A”、“110B”和/或“110C”)。尽管图1仅仅示出三个客户端110,本发明的实施例可以具有与服务器12进行交互的成千上万个客户端。仅仅示出三个客户端110,是为了简化并阐明本说明。同样,在图1中未示出可能连接到网络114的其他服务器。
客户端110表示由终端用户用来经由网络114与服务器112进行交互,以提供线路请求并在响应中获取线路信息的设备。在一个实施例中,客户端110是具有标准联网功能的计算机。在某些实施例中,客户端110是移动设备,诸如笔记本计算机、移动电话、个人数字助理(PDA)、便携式电子邮件设备、手持式游戏设备、汽车导航系统或者具有等同功能的其他类型的设备。客户端110使用标准联网技术与服务器112进行通信,这些技术包括通过使用计算机和/或移动电话通信协议的有线和/或无线网络链接。
客户端110包括用于发送线路请求给服务器112的功能以及用于将接收到的线路信息提供给终端用户的功能。在某些实施例中,客户端110包括用于输入请求的键盘、以及用于浏览线路信息的显示设备。许多移动电话和其他移动设备具有使用困难的小键盘。在其他实施例中,客户端110包括用于执行这些任务的另外的和/或不同的功能,诸如基于触摸屏的输入设备和/或音频输出设备。
在一个实施例中,客户端110包括web浏览功能,其允许使用标准因特网通信技术来与服务器112交换消息。例如,客户端110可以执行诸如MICROSOFT INTERNET

的web浏览器、诸如OPERAMOBILETM和OPERA MINITM之类的针对移动设备进行优化的浏览器、和/或允许终端用户从web服务器和网络114上的其他计算机系统检索内容并显示内容的其他浏览器。
线路服务器112从客户端110接收线路请求并在反馈中提供线路信息。在一个实施例中,线路服务器112包括充当web服务器的计算机,其被用于提供网页给客户端110以及接收由客户端作为响应发送的数据。线路服务器112包括线路信息模块300,其用于接收线路请求并生成线路信息。
时常,从客户端110接收到的线路请求包括出发位置和终止位置,并且线路服务器112生成线路信息,其解释如何从出发位置行进到终止位置。线路信息可以例如包括驾驶方向和地图、列车时刻表和方向、飞机时刻表,等等。尽管本描述频繁地提到具有两个位置的线路请求,但是应当理解,线路服务器112可以对具有任意数目的位置的请求做出响应。例如,线路服务器112可以提供针对单个位置的线路信息,其描述经过该位置的公共汽车、列车和/或飞机的时刻表。同样,线路服务器112可以提供针对三个或更多位置的线路信息,其描述经过所有这些位置的线路。
在一个实施例中,线路服务器112通过计算在可能匹配的位置对之间的距离以及返回针对最靠近的位置对(也即,在它们之间具有最小距离的位置)的线路信息,来分辨模糊位置(例如像“Salem”和“Chicago”这样的地点名称)。因此,接收针对在“Salem”与“Chicago”之间的驾驶方向的请求的线路服务器112的实施例,将自动提供在印第安纳州的Salem与伊利诺伊州的Chicago之间的驾驶方向,因为这两个位置比具有该名称的任何其他两个城市要彼此靠近得多。另外,线路服务器112提供用户界面(UI),其允许终端用户在线路服务器112所选择的位置对不是终端用户所要的位置对的情况下指定不同的位置对。
网络114表示客户端与线路服务器112之间的通信路径。在一个实施例中,网络114是因特网。网络114还可以使用专用或私有的通信链路,所述专用或私有的通信链路不一定是因特网的一部分。在一个实施例中,网络114使用标准通信技术和/或协议。因此,网络114可以包括使用诸如以太网802.11、综合业务数字网络(ISDN)、数字用户线(DSL)、异步传送模式(ATM)等等之类技术的链路,以及使用移动电话通信技术的链路。类似地,在网络114上所使用的联网协议可以包括多协议标记交换(MPLS)、传输控制协议/因特网协议(TCP/IP)、超文本传送协议(HTTP)、简单邮件传送协议(SMTP)、文件传送协议(FTP)、短消息服务(SMS)协议等等。网络114上所互换的数据可以使用包括超文本标记语言(HTML)、可扩展标记语言(XML)、可扩展超文本标记语言(XHTML)、压缩HTML(cHTML)等等的技术和/或格式来进行表示。另外,所有链路或部分链路可以使用诸如安全套接层(SSL)、SSL上的HTTP(HTTPS)和/或虚拟专用网络(VPN)之类的常规加密技术来进行加密。在其他实施例中,客户端110和线路服务器112使用常规的和/或专用的数据通信技术来替代或补充上述的技术。
系统结构 图2是根据一个实施例说明用作像在图1的环境100中示出的客户端和服务器那样的客户端110或服务器112的典型计算机200的功能视图的高层框图。示出了耦合到总线204的至少一个处理器202。耦合到总线204的还有存储器206、存储设备208、键盘210、图形适配器212、指示设备214以及网络适配器216。显示器218耦合到图形适配器212。
处理器202可以是任何通用处理器,诸如与INTEL x86相兼容的CPU。在一个实施例中,存储设备208是硬盘驱动器,但是还可以是能够存储数据的任何其他设备,诸如可写压缩盘(CD)或DVD、或者固态存储器设备。存储器206可以例如是固件、只读存储器(ROM)、非易失性随机访问存储器(NVRAM)和/或RAM,并且保存处理器202所使用的指令和数据。指示设备214可以是鼠标、轨迹球或其他类型的指示设备,并且与键盘210组合起来使用以输入数据到计算机系统200。图形适配器212显示图像和其他信息在显示器218上。网络适配器216将计算机200耦合到网络114。
如在现有技术中所公知的,计算机200适于执行计算机程序模块。如此处所使用的,术语“模块”是指用于提供指定功能的计算机程序逻辑和/或数据。模块可以用硬件、固件和/或软件来实现。在一个实施例中,模块可以被存储在存储设备208上、被装载进存储器206中以及由处理器202来执行。
图1中的实体所使用的计算机200的类型可以取决于实施方式并根据该实体所使用的处理能力而变化。例如,客户端110通常比线路服务器112需要的处理能力少。因此,客户端110可以是标准个人计算机系统或手持式电子设备。相反,线路服务器112可以包括功能更强大的计算机和/或一起工作的多个计算机以提供这里所描述的功能。同样,计算机200可能缺少上面描述的元件中的某些元件。例如,充当客户端110的移动电话可能没有指示设备,而充当线路服务器112的计算机可能没有键盘和显示器。
图3是根据一个实施例说明线路信息模块300内的模块的高层框图。其他实施例具有与图3中所示出的模块不同的和/或附加的模块。而且,其他实施例以不同的方式在这些模块间分布功能。
请求接收模块310从客户端110和/或其他源接收线路请求。在一个实施例中,线路请求指定所请求的线路信息所针对的两个或多个位置。另外,线路请求可以包括其他数据,诸如描述所请求的线路信息(例如,驾驶方向或列车时刻表)的类型的参数、线路信息被请求的时间/日期、在路线中是否使用高速公路、快速列车或飞机,等等。
请求解析模块312解析线路请求并提取指定的位置。通常,位置是由名称和/或地址来指定的,并且还可以通过诸如地理坐标之类的其他方式来指定。在一个实施例中,位置具体地是由线路请求来标识。例如线路服务器112提供给客户端110的网页可以具有将源地址信息和目的地信息分隔成名称、街道地址、城市、州/省/辖区以及邮政编码的形式。在另一实施例中,某些或所有位置被隐式地标识。例如,线路请求可以被包括在诸如“在东京与镰仓之间的驾驶方向”之类的自由形式的文本串中。当接收到自由形式的请求时,请求解析模块312使用正则表达式和/或其他技术来解析询问以提取关于其中所提到的位置的信息。
有时,所解析的位置可能使用不精确的和/或不完整的信息来指定。这种信息缺少的发生可能是因为终端用户没有在请求中提供信息,和/或因为难以解析。例如,线路请求可能用街道地址和城市名称指定了一个位置,但是缺少城市所在的州或辖区的名称。类似地,请求可能用名称(例如,“Ebisu Station”)指定了一个位置,但是缺少该Ebisu Station所处城市的名称。
位置查找模块314在位置数据库316中查找从线路请求中所提取的位置。在一个实施例中,位置数据库316包括描述了可由线路信息指定的可能位置的信息。此外,位置数据库316包括描述这些位置之间的线路的数据。例如,位置数据库316可以包括描述一个或多个国家的街道地图的数据。另外,位置数据库可以包括描述列车、飞机、公共汽车、渡船以及其他运输线的数据。另外,位置数据库316的一个实施例包括相关信息,诸如实时或历史的街道交通信息、运输时刻表和运费等等。在一个实施例中,位置数据库316包括多个单独的数据库。这些单独的数据库中的一个或多个可以在路线服务器112的外部。
在一个实施例中,位置数据库316包括度量模块318,其保存允许对数据库中的位置进行排名和/或比较的数据。在一个实施例中,度量是距离,并且度量模块318保存描述数据库中的位置的地理地点的数据。此外,度量模块318(或另一模块)计算两个或多个指定位置之间的距离。在一个实施例中,度量模块318将位置数据库316中的位置地理编码成纬度/经度坐标,并且接着计算这些坐标之间的距离。在另一实施例中,度量是人口数和/或表面积,并且度量模块318保存描述在位置数据库318中所标识的各个位置和/或区域(例如城市)的人口数和表面积的数据。在又一实施例中,度量是普及程度(popularity),并且度量模块318保存描述位置数据库316中的各个位置的普及程度的数据。普及程度是基于位置出现在线路请求中的频率、终端用户的排名、穿过位置的交通流量(例如通过列车站的乘客的数量)和/或其他标准。
位置查找模块314访问位置数据库316,以便获得从请求中解析出的位置之间的线路信息。取决于请求,指定的位置可能是模糊的、明确的或未知的。模糊的位置是这样的位置,其中位置查找模块314在位置数据库316中识别出两个或多个可能的匹配。例如,如果线路请求标识位置为“Chicago”,则该位置是模糊的,因为不清楚该请求是指伊利诺伊州的Chicago或威斯康星州的Chicago。在另一例子中,如果线路请求标识位置为“Ebisu Station”,则它是模糊的,因为不清楚该位置是指东京的Ebisu Station或兵库的Ebisu Station。在第三个例子中,位置可能是模糊的,因为线路请求包含打字错误(例如,“Chicagp”)。因为打字错误的原因,位置查找模块314可以识别一组可能的匹配位置,但是可能不能够识别单个匹配。
相反,明确的位置是这样的位置,其中位置查找模块314在位置数据库316中识别出单个匹配的位置。未知的位置是这样的位置,其中位置查找模块314不能在位置数据库316中找到任何匹配的位置。在一个实施例中,位置查找模块314通过拒绝线路请求以及请终端用户提供更多信息来对未知位置作出响应。
模糊位置排名模块320基于度量模块318所提供的度量对请求中的模糊位置进行排名。在线路请求指定两个位置的实施例中,模糊位置排名模块320计算请求中的可能匹配的位置对,并且使用来自度量模块318的度量来对它们进行排名。例如,假设线路请求明确地指定出发位置为印第安纳州(IN)的Salem,并且模糊地标识终止位置为“Chicago”。模糊位置排名模块320计算可能匹配的位置对如下 出发 终止 Salem,INChicago,IL Salem,INChicago,WI 给定这些位置对,模糊位置排名模块320使用来自度量模块318的一个或多个度量来对它们进行排名。例如,假设度量是距离并且这些位置之间的距离如下 开始 终止 距离 Salem,INChicago,IL329英里 Salem,INChicago,WI347.5英里 基于距离,模糊位置排名模块320将“Salem,IN/Chicago,IL”位置对排名在第一,而将“Salem,IN/Chicago,WI”位置对排名在第二。基于诸如人口数和普及程度等其他度量的排名,同样可能产生相同的结果,因为伊利诺斯州的Chicago是比威斯康星州的Chicago大得多的城市。
报告模块322报告所请求的线路信息。在线路请求不具有任何模糊位置的情况下,报告模块322的实施例仅提供所请求的线路信息。例如,线路信息可以包括驾驶方向、列车方向和时刻表等等。在线路请求包含至少一个模糊位置的情况下,报告模块322的实施例提供针对顶级排名的位置对的线路信息,并且提供UI以允许终端用户在想要的条件下选择不同的位置对。因此,在上述Salem/Chicago的例子中,报告模块322提供从Salem,IN到Chicago,IL的线路信息,并且提供UI以允许终端用户在想要的条件下选择从Salem,IN到Chicago,IL的线路信息。
图4是根据一个实施例说明由线路信息模块300和/或线路服务器112所执行的步骤的流程图。其他实施例执行图中所描述的步骤之外的和/或与之不同的步骤。另外,其他实施例以不同顺序执行步骤。在一个实施例中,线路信息模块300同时给成千上万个线路请求提供服务,并且因此同时执行这些步骤的许多实例。
最开始,线路信息模块300从客户端110或另一源接收410线路请求。例如,线路服务器112或另一服务器给客户端110提供网页,其允许客户端的终端用户生成线路请求并将它提交给线路服务器。线路信息模块300解析412该请求以提取其中所指定的位置。
线路信息模块300在位置数据库316中查找414解析得到的位置以搜索可能的匹配。仅具有单个匹配的位置是被明确地标识。具有两个或多个匹配的位置被模糊地识别。具有零匹配的位置是没被识别的,并且线路信息模块300的一个实施例终止对线路请求的处理,直到请求者提供更多的信息为止(这个动作在图4中未示出)。
如果存在416至少一个模糊位置,则线路信息模块300生成可能匹配的位置对。线路信息模块300计算418针对每个位置对的度量。在一个实施例中,该度量是该位置对中的位置之间的距离。在其他实施例中,度量是基于一个或多个其他因素,诸如人口数或普及程度。
线路信息模块300基于所计算的度量来对可能匹配的位置对进行排名420。例如,如果度量是距离,则线路信息模块300按基于每个位置对中的位置之间的距离的次序对位置对进行排名。线路信息模块300接着报告422结果。排名最高的位置对(例如,具有位置间最小距离的位置对)被视为终端用户的想要的线路请求,并且线路信息模块300提供针对该位置对的线路信息作为报告的一部分。另外,线路信息模块300提供UI,其列出其他可能匹配的位置对(或者至少排名靠前的位置对)并且使得终端用户在想要时能够选择不同的位置对。
因此,即使在请求中所指定的位置是模糊的条件下,线路信息模块300也提供针对终端用户或许想要的位置的线路信息。如果线路信息模块300提供针对不正确位置的线路信息,则包括正确位置的位置对很有可能被列在UI中,从而它可以被终端用户容易地选择。这种技术使终端用户与线路服务器112的交互达到最小,并且减少了使用诸如移动电话的小键盘之类的麻烦的输入设备来请求线路信息的烦恼。
上文的描述是为了说明优选实施例的操作,并且不是意在限制本发明的范围。本发明的范围仅由以下权利要求书来限制。根据上面的讨论中,许多变体对于本领域的普通技术人员而言是显而易见的,它们也被包括在本发明的精神和范围中。
权利要求
1.一种提供线路信息的计算机实现的方法,包括
接收对线路信息的请求,所述请求指定至少一个模糊位置;
识别可能匹配所述模糊位置的位置;
基于度量来对所述可能匹配的位置进行排名;以及
提供针对排名最高的可能匹配的位置的线路信息。
2.根据权利要求1所述的方法,其中所述度量是距离,并且其中所述排名包括
计算可能匹配所述模糊位置的每个位置与另一位置之间的距离;以及
基于从所述可能匹配的位置到所述另一位置之间的距离,来对所述可能匹配的位置进行排名。
3.根据权利要求2所述的方法,其中所述排名最高的可能匹配的位置具有到所述另一位置的最短距离。
4.根据权利要求1所述的方法,其中所述度量是所述可能匹配的位置的人口数量。
5.根据权利要求1所述的方法,其中所述度量是所述可能匹配的位置在线路请求中出现的频率。
6.根据权利要求1所述的方法,其中所述排名包括
基于所述请求中所指定的位置来生成位置对,每个位置对包括至少一个可能匹配所述模糊位置的位置;
计算所述对中的位置之间的距离;以及
基于所述计算的距离来对所述对进行排名。
7.根据权利要求1所述的方法,其中所述线路信息包括来自以下组的一种或多种类型的信息,所述组包括
驾驶方向、列车时刻表、公交时刻表以及航班时刻表。
8.一种用于提供线路信息的系统,包括
请求接收模块,其用于接收对线路信息的请求,所述请求指定至少一个模糊位置;
位置查找模块,其用于识别可能匹配所述模糊位置的位置;
模糊位置排名模块,其用于基于度量来对所述可能匹配的位置进行排名;以及
报告模块,其用于提供针对排名最高的可能匹配的位置的线路信息。
9.根据权利要求8所述的系统,其中所述度量是距离,并且其中所述模糊位置排名模块还适用于
计算可能匹配所述模糊位置的每个位置与另一位置之间的距离;以及
基于从所述可能匹配的位置到所述另一位置之间的距离,来对所述可能匹配的位置进行排名。
10.根据权利要求9所述的系统,其中所述排名最高的可能匹配的位置具有到所述另一位置的最短距离。
11.根据权利要求8所述的系统,其中所述度量是所述可能匹配的位置的人口数量。
12.根据权利要求8所述的系统,其中所述度量是所述可能匹配的位置在线路请求中出现的频率。
13.根据权利要求8所述的系统,其中所述模糊位置排名模块还适用于
基于所述请求中所指定的位置来生成位置对,每个对包括至少一个可能匹配所述模糊位置的位置;
计算所述对中的位置之间的距离;以及
基于所述计算的距离来对所述对进行排名。
14.根据权利要求8所述的系统,其中所述线路信息包括来自以下组的一种或多种类型的信息,所述组包括
驾驶方向、列车时刻表、公交时刻表以及航班时刻表。
15.一种具有计算机可读介质的计算机程序产品,所述计算机可读介质中包括用于提供线路信息的计算机程序代码,所述计算机程序产品包括
请求接收模块,其用于接收对线路信息的请求,所述请求指定至少一个模糊位置;
位置查找模块,其用于识别可能匹配所述模糊位置的位置;
模糊位置排名模块,其用于基于度量来对所述可能匹配的位置进行排名;以及
报告模块,其用于提供针对排名最高的可能匹配的位置的线路信息。
16.根据权利要求15所述的计算机程序产品,其中所述度量是距离,并且其中所述模糊位置排名模块还适用于
计算可能匹配所述模糊位置的每个位置与另一位置之间的距离;以及
基于从所述可能匹配的位置到所述另一位置之间的距离,来对所述可能匹配的位置进行排名。
17.根据权利要求16所述的计算机程序产品,其中所述排名最高的可能匹配的位置具有到所述另一位置的最短距离。
18.根据权利要求15所述的计算机程序产品,其中所述度量是所述可能匹配的位置的人口数量。
19.根据权利要求15所述的计算机程序产品,其中所述度量是所述可能匹配的位置在线路请求中出现的频率。
20.根据权利要求15所述的计算机程序产品,其中所述模糊位置排名模块还适用于
基于所述请求中所指定的位置来生成位置对,每个对包括至少一个可能匹配所述模糊位置的位置;
计算所述对中的位置之间的距离;以及
基于所述计算的距离来对所述对进行排名。
21.根据权利要求15所述的计算机程序产品,其中所述线路信息包括来自以下组的一种或多种类型的信息,所述组包括
驾驶方向、列车时刻表、公交时刻表以及航班时刻表。
全文摘要
一种线路服务器接收对线路信息的请求。该请求指定一个或多个位置。所指定的位置可以是模糊的。对于模糊的位置,线路服务器识别一组可能匹配的位置,并根据某种度量来对这些位置进行排名。线路服务器返回针对可能匹配模糊位置的排名最高的位置的线路信息。如果对线路信息的请求指定两个位置,并且至少一个位置是模糊的,则线路服务器基于询问来配对可能匹配的位置的组合并计算每对的度量。在一种情况下,该度量是位置对中的位置之间的距离。线路服务器基于该度量来对位置对进行排名,并且返回排名最高的位置对的线路信息。
文档编号G01C21/26GK101517363SQ200780035644
公开日2009年8月26日 申请日期2007年8月17日 优先权日2006年8月18日
发明者小松弘幸 申请人:谷歌公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1