CN111666390B - 保存并获取对象的位置 - Google Patents

保存并获取对象的位置 Download PDF

Info

Publication number
CN111666390B
CN111666390B CN202010348783.8A CN202010348783A CN111666390B CN 111666390 B CN111666390 B CN 111666390B CN 202010348783 A CN202010348783 A CN 202010348783A CN 111666390 B CN111666390 B CN 111666390B
Authority
CN
China
Prior art keywords
physical object
location
voice query
query
user
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
CN202010348783.8A
Other languages
English (en)
Other versions
CN111666390A (zh
Inventor
阿杰伊·乔希
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Priority to CN202010348783.8A priority Critical patent/CN111666390B/zh
Publication of CN111666390A publication Critical patent/CN111666390A/zh
Application granted granted Critical
Publication of CN111666390B publication Critical patent/CN111666390B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3344Query execution using natural language analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9032Query formulation
    • G06F16/90332Natural language query formulation or dialogue systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本发明涉及保存并获取对象的位置。除其它之外,本文描述了一种计算机实施的用于存储并获取与对象的位置相关的信息的方法。该方法可以包括接收包括识别对象的一个或多个词项的第一查询。该第一查询能够被确定为包括存储该对象的位置信息的命令。该第一查询能够被解析以针对该对象确定识别信息,并且能够针对该对象确定位置。该方法进一步包括识别并未在该第一查询中被指定的该对象的一个或多个属性,并且使得表征该对象的识别信息、该对象的位置以及该对象的一个或多个属性的第一数据集合被存储。

Description

保存并获取对象的位置
分案说明
本申请属于申请日为2015年6月17日的中国发明专利申请No.201580035581.5的分案申请。
技术领域
本文总体上涉及信息存储和检索。
背景技术
在日常生活中,人们遇到许多不同的对象。必须按照例行方式对对象保持追踪而使得它们能够在一段时间未被使用之后被找到。一些对象被频繁且例行使用,从而用户通常能够回忆起该对象依据惯例而位于何处。例如,用户可能每晚都在床头柜上的对她的电话进行充电,从而能够预见到该电话第二天早上就在该床头柜上。类似地,用户可能每天下班回家时将车钥匙放在车库附近的托盘中,从而该钥匙在第二天早上能够轻易地在相同地方被定位。然而,有时惯例被打破并且对象被留在不同寻常的位置或者被借给他人一段时间。其它对象并不频繁使用但是在需要时必须能够轻易找到(并且一些甚至被刻意隐藏),诸如藏起来的备用房屋钥匙、出生证明或车辆证明。
发明内容
本文总体上描述了用于保存并获取有关对象位置的信息的技术。在一些实施方式中,用户能够指示计算设备上的应用或服务存储有关对象位置的信息,而使得该位置能够在后续请求时轻易地被调用。例如,用户能够提供指示George正在浏览她的岩石收藏的查询,响应于该查询,能够在数据结构中针对该用户创建条目,后者将该岩石收藏的位置捕捉为与George在一起。几个月后,该用户可能为她的收藏找到了新的石头,但是却无法想起她将该收藏借给了谁或者是何时借出的。为了帮助她回忆,她可以提交请求该岩石收藏的位置的另一个查询,该应用或服务基于数据结构中的条目而对该查询作出该岩石收藏与George在一起的响应。该用户还能够在对象位置已经发生变化时进行指示,从而使得对象的位置信息在数据结构中被更新。因此,当George将岩石收藏归还该用户时,该归还能够被记录在该数据结构中而使得该对象的当前位置不再被表示为与George在一起。通过在数据结构中维护各种对象的位置,能够响应于用户查询而执行复杂动作。例如,能够在对象从特定位置发生移动时触发通知。在一些实施方式中,对象位置条目以允许在一个或多个对象和位置之间定义关系的方式被存储在数据结构中。例如,在一系列查询中被提及的常用对象或位置能够被识别为之前所引用过的相同对象或位置,而使得有关该对象或位置的信息能够可靠地被访问或或更新。此外,数据结构中的对象或位置的表示能够自动与一个或多个属性相关联。即使该对象或位置未在查询中被直接提到,该对象或位置也能够因此由用户基于该属性进行识别。
这里所描述的技术可以提供以下的一种或多种优势。使用简单的自然语言查询,用户能够保存、更新并获取有关对象位置的信息,诸如指示对象最后被放在何处的信息,或者识别占有该对象的人、组织或其它实体的信息。在一些实施方式中,用户能够利用语音命令输入对象位置查询,该命令随后基于已经对样本对象位置查询进行过训练的特定语法集合而被处理。该语法能够在以概率方式确定查询与之相对应的语言命令的特定类型的模型中使用,而并不要求用户使用特定词项或特定语言结构讲出该命令。此外,通过将所存储的对象和位置与一个或多个属性关联(即,被确定为与对象和位置充分相关的概念),用户随后能够基于它们的属性间接地涉及到对象和位置而不是基于该对象或位置的名称直接地涉及到。因此,与要求原始地被用来存储对象信息的语言的严格引用的情形相比,能够以更大的灵活度来请求或更新有关对象或位置的信息。例如,对象位置信息可以首先响应于用户查询“The rock collection is with George”而被存储。随后,该用户可能想要知道岩石收藏在何处,但是仅使用了诸如“rocks”或“stones”之类的针对岩石收藏的简短引用。“rocks”的简短引用可以足以通过字符串比较而识别出对象“rock collection”,并且“stones”是与岩石收集相关联的同义词,其也被确认为与岩石收藏充分紧密相关。此外,能够确定有关岩石收藏和/或有关George的属性,诸如他的全名和地址。例如,使用这样的属性,用户可以在并不提到George自己的名字的情况下查询位于George的地址处的任何对象。同样,例如,图书可以以其作者被提及,DVD电影可以通过男主角或女主角被提及,并且音乐专辑可以通过其艺术家或流派而被提及。这些示例中的每一个都间接地涉及到对象而不是直接提到对象自身的名称。此外,可以通过保持在数据结构中维护对象和位置之间的关系而针对更为复杂的查询生成响应。例如,如果对象A在第一时间被留在位置X,并且对象B在第二时间被留在位置X,则位置X能够与这两个对象相关联,从而用户能够获得针对同时询问已经被留在特定位置的所有对象的查询的响应。
在一些实施方式中,一种计算机实施的方法包括接收包括识别对象的一个或多个词项的第一查询。该第一查询能够被确定为包括存储该对象的位置信息的命令。该第一查询能够被解析以针对该对象确定识别信息,并且能够针对该对象确定位置。该方法进一步包括识别并未在该第一查询中被指定的该对象的一个或多个属性,并且使得表征该对象的识别信息、该对象的位置以及该对象的一个或多个属性的第一数据集合被存储。
这些和其它实施方式可以包括以下一个或多个特征。该方法可以进一步包括确定该对象对应于多个实体的数据结构中的一个或多个实体,其中该数据结构包括多个实体的表示以及映射该多个实体中的特定多个之间的关系。识别未在该第一查询中被指定的该对象的一个或多个属性可以包括选择与该数据结构中该对象被确定与之相对应的一个或多个实体相关联的一个或多个事实或类别。
该方法可以进一步包括使得针对该对象的第一数据集合被存储在与特定用户账户相关联的个人对象数据结构中,其中该个人对象数据结构:(i)包括一个或多个对象和一个或多个位置的表示,并且(ii)映射该一个或多个对象和一个或多个位置中的特定多个之间的关系。
该数据结构能够对关系进行映射从而至少指示一个或多个对象中的特定多个的最后的已知位置。
该第一查询可以进一步包括识别该对象的位置的一个或多个词项。识别该对象的位置的一个或多个词项可以包括指定该对象的地理位置的一个或多个词项。
该第一查询可以进一步包括识别该对象被留给的人或组织的一个或多个词项。该方法可以进一步包括将该对象已经被留给的人或组织与来自用户账户的联系人进行关联;检测用户与和该对象已经被留给的人或组织关联的联系人的交互;并且响应于检测到用户与该联系人的交互而使得有关该对象的通知被呈现给该用户。
该方法可以进一步包括确定用户设备位于该对象的位置的阈值距离之内,并且作为响应而使得有关该对象的通知被呈现给该用户。
该第一查询可以不包括识别该第一查询的内容中的对象的位置的信息,并且该对象的位置可以基于该第一查询原始地被输入或讲出的计算设备的当前位置来确定。
该方法可以进一步包括接收包括识别该对象的一个或多个属性中的至少一个的一个或多个词项的第二查询。响应于接收到该第二查询,该方法可以进一步包括基于识别该对象的一个或多个属性中的至少一个的一个或多个词项而确定该第二查询引用了在该第一查询中所识别的对象;确定该第二查询包括执行与该对象相关联的动作的命令;并且执行与该对象相关联的动作。
该第二查询可以包括获取该对象的位置的命令。执行与该对象相关联的动作可以包括从该第一数据集合识别该对象的位置并且输出该对象的位置。
该第二查询能够包括更新有关该对象的信息的命令。执行与该对象相关联的动作可以包括使得经更新的信息被存储在该第一数据集合或其它数据中。
该更新有关该对象的信息的命令可以包括该对象位于新位置的指示。使得经更新的信息被存储在该第一数据集合或其它数据中可以包括更新针对该对象所存储的位置信息从而指定该对象的新位置。
该第一查询能够指定用户已经将该对象留在该对象的位置。该第二查询能够指定该对象已经被返回至用户。响应于接收到该第二查询而执行与该对象相关联的动作可以包括使得指示该对象不再位于该第一查询中所识别的该对象的位置的信息被存储。
该第二查询能够指示该对象不再位于该第一查询中所识别的该对象的位置。响应于接收到该第二查询而执行与该对象相关联的动作可以包括使得指示该对象不再位于该第一查询中所识别的该对象的位置的信息被存储。该方法可以进一步包括响应于确定该对象不再位于该第一查询中所识别的该对象的位置而使得包括有关与该对象相关联的一个或多个事件的提醒的通知被呈现给用户。
该第一查询中识别该对象的位置的一个或多个词项能够指示该对象已经被留给一个或多个第一人。该第二查询能够指示该对象已经从该一个或多个第一人被返回,并且有关与该对象相关联的一个或多个事件的提醒可以包括使得该对象能够被一个或多个人得到的提醒。
该方法可以进一步包括识别并未在该第一查询中被指定的该对象的位置的一个或多个属性。该第二查询可以包括执行与该对象相关联的命令的确定进一步基于该对象的位置的一个或多个属性。
该第二查询可以不包括该第一查询中识别该对象的任何一个或多个词项。
在一些实施方式中,提供了一个或多个具有存储于其上的指令的计算机可读设备。当被一个或多个处理器执行时,该指令能够使得操作被执行,包括:接收包括识别对象的一个或多个词项的查询;确定该查询包括存储该对象的位置信息的命令;对该查询进行解析以针对该对象确定识别信息,并且确定该对象的位置;识别并未在该查询中被指定的该对象的一个或多个属性,并且使得表征该对象的识别信息、该对象的位置以及该对象的一个或多个属性的第一数据集合被存储。
在一些实施方式中,一种计算机实施的方法可以包括:由计算设备接收第一查询,其包括存储指定对象位置的信息的命令;使得识别该对象以及该对象的位置的数据被存储;由该计算设备接收第二查询,其包括获取该对象的位置的命令,其中该第二查询通过指示并未在该第一查询中被指定的该对象的一个或多个属性的一个或多个词项来识别该对象;响应于接收到该第二查询:使用该对象的一个或多个属性从多个对象中识别该对象,并且从该数据集合中获取该对象的位置;以及输出识别该对象的位置的信息以便向用户进行呈现。
附图说明
图1是用于保存并获取有关对象位置的信息的示例过程的示意图;
图2A是其中特定多个实体进行互连的实体的数据结构的示例图形表示;
图2B描绘了互连实体的数据结构的示例部分;
图3示出了用于保存并获取有关对象位置的信息的示例过程的流程图;
图4示出了用于管理并报告有关对象的位置的信息的系统的示例;
图5示出了能够被用来实施这里所描述的技术的计算设备500和移动计算设备的示例。
各图中同样的附图标记指示同样的要素。
具体实施方式
图1是用于保存并获取有关对象位置的信息的示例过程100的示意图。在一些实施方式中,过程100能够由以下图4中所描绘的系统400来实施。通常,过程100允许用户使用非结构化的自然语言查询来存储指示一个或多个对象的位置的信息。过程100能够构建个人对象数据结构,其对对象和它们的位置之间的关系进行映射。该个人对象数据结构能够被用来对间接地或者在后续查询中另外以不同方式涉及到对象和位置的用户查询作出响应。例如,基于通过个人对象数据结构的特定路径,一个对象可以基于其与另一个对象的关系而在查询中被识别;对象能够与位置层级相关联(例如,鞋可以直接位于壁橱中,而壁橱可以位于Sue房屋的客房中);对象可以通过位置进行关联;并且对象位置历史能够被确定。此外,该个人对象数据结构中的对象和位置能够与表示有关相应对象和位置的概念的属性相关联。如以下进一步描述的,过程100允许用户沿一个或多个维度来识别对象或位置,诸如通过直接使用对象或位置的名称,针对对象或位置的名称的部分或简短引用,以及通过间接引用对象或位置的一个或多个所确定的属性。因此,并不要求用户记住原始地用来描述对象及其位置的特定词项,而是能够随后使用具有描述对象或位置的更为宽泛的词项基础的灵活词汇来识别之前所存储的对象或位置。
过程100在阶段A(108)开始,其中用户104提供包括对象-位置存储命令的查询106。查询106指出用户104已经“将钥匙放在双肩包的前侧口袋中(left the keys in thefront pouch of the backpack)”。这里,查询106被示为用户104所讲出的语音命令,但是查询106也可以通过其它手段进行输入,诸如通过在物理或虚拟键盘上敲出查询106的文本。查询106能够在用户计算设备上输入,诸如智能电话、平板电脑、笔记本电脑、可佩戴设备(例如,智能手表)或台式计算设备。查询106能够被提供至对象和位置引擎(O&L引擎),其对该查询进行处理,维护个人对象数据结构102(例如,数据库或另一数据库集),并且响应于查询而执行一种或多种操作。在该示例中,过程100使用已经针对不同类型的对象-位置命令而对各种类型的对象-位置查询进行过训练的模型来确定查询106是对象-位置存储命令。能够响应于不同的命令类型执行不同的操作。即使查询106并不包括特别对应于对象-位置存储命令的前缀或其它载体短语(例如,热词)(例如,“记住我将钥匙放在双肩包的前侧口袋中(Remember that I left the keys in the front pouch of the backpack)”),O&L引擎所使用的模型也能够从查询106的上下文确定其最可能是对象-位置存储命令,而不是例如对象信息检索命令。然而,在一些实施方式中,O&L引擎能够被配置为允许或要求查询中识别命令类型的命令前缀。
响应于接收到查询106,过程100向用户的个人对象数据结构102中增加条目以表示对象“钥匙(keys)”已经被放在位置“双肩包的前侧口袋(front pouch of thebackpack)”。图1中示出了个人对象数据结构102的示例表示。个人对象数据结构102在这里被图形表示为包括相应对象和位置的节点以及将节点进行链接并且在对象和位置之间建立关系的图形。在一些实施方式中,查询106中提到的位置可以以该位置在查询106中被识别的方式而被记录在个人对象数据结构中。例如,字符串“双肩包的前侧口袋(front pouchof the backpack)”可以被存储为钥匙的位置。在一些实施方式中,被提到名称的位置可以被划分为其分量部分并进行分割,但是在数据结构102中为每个部分创建相关位置。这里,查询106中的位置指定了位置层级。“双肩包(backpack)”是可以被一般识别的第一位置。然而,该双肩包还具有包括诸如“前侧口袋(front pouch)”的各种隔挡的子组件。该“前侧口袋”因此是数据结构中作为“双肩包”同层级的可单独识别的要素。因此,双肩包节点102a被连接至前侧口袋节点102b,后者进而连接至钥匙节点102c从而指示钥匙102c当前处于双肩包的前侧口袋中。如果该双肩包之前在数据结构102中有所表示,则针对该双肩包的表示形成附加或以其它方式有所更新的连接从而反映出钥匙被添加至双肩包。因此,新的查询能够使得O&L引擎在数据结构102事先存在的情况下对数据结构做出改变和构建。如果数据结构之前并不存在,则可以被创建。
在阶段B(112),用户104提供第二查询110。该第二查询指示用户的“PeytonManning运动衣在双肩包中(Peyton Manning jersey is in the backpack)”。能够针对该个人对象数据结构形成附加条目以反映附加的对象位于双肩包中。因此,运动衣节点102d被添加并且连接至双肩包节点102a。
在阶段C(114),过程100识别被确定为与查询110中所提到的运动衣对象102d相关的一个或多个属性。该属性与该对象相关联从而它们能够在随后被用来响应于以不同于查询110中描述该运动衣的方式对其进行描述的未来用户查询而识别出该对象。在一些实施方式中,过程100能够针对所确定的属性而对对象或位置标记以附加的关键词。例如,在查询110中所提到的运动衣被标记以关键词118“quarterback”、“NFL”、“Colts”、“Broncos”、“Indianapolis”和“Denver”。关键词118能够从一个或多个知识源116确定。在一些实施方式中,知识源116可以包括或指向电子资源,诸如其内容讨论该查询所涉及到的对象或位置的网页和其它电子文档。在一些实施方式中,知识源116可以包括辅助(curated)数据结构,其包括有关包括各种人、地方、东西和想法的真实实体。该实体的属性(例如,事实、主题、类别)能够在数据结构中进行组织,并且所识别实体的外部实体数据结构中的属性能够与查询中的对象或位置进行关联。例如,职业四分卫Peyton Manning能够被识别为在查询110中所提到的“Peyton Manning运动衣”对象的高度相关实体。关键词118是与Peyton Manning实体相关联的属性,并且因此也能够在个人对象数据结构102中与该运动衣对象进行关联。
在阶段D(120),用户104在查询120中提交了对象-位置检索命令,其询问“我把Colts运动衣放在了哪里?(Where did I leave my Colts jersey?)”。虽然用户104想要知道他的Peyton Manning运动衣的位置,因为该对象之前在查询110中进行过描述,但是后续提交的查询120使用了相同对象的不同描述“Colts运动衣(Colts jersey)”。然而,在阶段E(124),处理100正确地确定查询120最可能是涉及到之前在查询110中所提到并且在个人对象数据结构中被表示为节点102d的“Peyton Manning运动衣”。针对“Colts运动衣”和“Peyton Manning运动衣”的相应引用之间的关联基于在阶段C(114)所识别的该运动衣的属性的关键词而被确定。过程100识别出Peyton Manning与“Colts”具有强的关联,并且因此该词项被标记至运动衣102d的表示。因此能够在检索查询120和运动衣表示102d的属性之间确定匹配。
在阶段F(130),用户104提交第四查询128“我取回了我的钥匙(I have my keysback)”。该查询128构成指示钥匙已经被返回的对象-完成类型的命令。处理100能够从查询120的上下文(例如,结构和词项)识别出查询128是对象-完成类型的命令,并且作为响应而在阶段G(132)更新个人对象数据结构102从而反映出该钥匙不再位于双肩包的前侧口袋中。例如,虽然并未在图1中示出,但是数据结构102中的钥匙的表示可以被去除。在一些实施方式中,数据结构102中所表示对象的当前位置可以响应于完成类型的命令而不是该对象被删除而过期。以这种方式,能够对对象的位置历史进行分析。
在阶段G(132)响应于查询128所进行的变化在阶段H(136)和I(138)进行了图示。在阶段H(136),用户104在查询134中询问“我的双肩包中有什么?(What do I have in thebackpack?)”。由于个人对象数据结构102已经被更新以反映钥匙不再处于该双肩包中,所以在阶段I(138),过程100利用回答“Peyton Manning运动衣”对第五用户查询134作出响应,这是现在仍然在双肩包中的仅有对象。
如以上所提到的,在一个或多个能够被访问从而识别与查询中提到的对象或位置相关联的属性的知识源116之间具有实体数据结构。这样的数据结构的示例在图2A和2B中进行了描绘。
图2A是依据这里所描述技术的示例实施方式的实体数据结构的示例图形200。数据图形200可以表示互连实体的数据结构中的信息的存储和结构。这样的数据图形200存储有关节点(实体)和边(属性或关系)的信息,根据上述节点和边能够生成诸如图2A中所图示图形的图形。节点202可以被称作实体,并且边204可以被称作属性,其形成实体之间的连接。
图2B描绘了互连实体的数据结构220的示例部分。在一些实施方式中,数据结构220可以以三元组的形式存储有关数据结构中的实体的信息。例如,三元组标示出该三元组中的主体、特性和数值。Tom Hanks是数据结构220中的实体并且是该三元组的实体。第一个三元组222标示出特性“有职业(has profession)”,并且第二个三元组222标示出特性“有配偶(has spouse)”。该特性的数值是三元组中的第三个分量。Tom Hanks具有职业“演员(Actor)”并且具有配偶“Rita Wilson”。在第一个三元组222中,特性“属性”具有作为该数据结构中的事实的数值。例如,演员可以是或不是数据结构中的实体。在一些实施方式中,该三元组的数值分量可以引用命名实体识别引擎能够从其确定文本样本中命名实体的类别的实体(例如,演员)的分类。在第二个三元组222中,数值分量是数据结构220中的另一个实体,特别是Rita Wilson的实体。因此,三元组222指定了Tom Hanks的实体通过配偶关系而连接或涉及到Rita Wilson的实体。三元组224、226和226'中示出了另外的三元组以及它们的反向相关的三元组。
参考图3,示出了用于保存并获取有关对象位置的信息的示例过程300的流程图。在一些实施方式中,过程300能够由本文中所描述的任意系统所实施,诸如图4中描绘的系统400。过程300能够在一个或多个设备上执行。例如,过程300可以在用户设备(例如,智能电话、平板电脑、笔记本计算机)上本地执行,在一个或多个服务器上执行,或者可以部分在用户设备上本地执行而部分在一个或多个服务器上远程执行。
过程300在阶段302开始,其中接收用户查询。例如,该查询可以是结构化查询、句法查询或者自然语言查询。该查询可以由用户所键入或讲出。例如,该查询可以作为语音命令被发出,其由语音识别器所处理并且至少部分被转换为文本。在用户设备上,用户可以访问语音助理或者接受讲话输入并且对输入进行处理从而确定要作为响应所采取的一个或多个动作的其它语音应用。例如,该查询可以被发给语音助理,后者被配置为对各种所讲出的命令作出响应(例如,发送消息、启动应用、保存数据、设置诸如闹钟的应用参数,或者执行一般web搜索)。
在一个或多个命令中,该语音助理可以别配置为对其作出响应的是用于对象位置存储和检索的命令。在阶段304,过程300确定所接收到的查询是否对应于一个或多个对象位置命令。如果该查询是语音查询,则讲话能够使用自动语音识别器而被转录为文本。该语音识别器可以包括对应于不同对象位置命令的多种语法。在一些实施方式中,查询中的载体短语可以具体识别特定命令。例如,在查询“记住Jane拿着我的化学书(Remember thatJane has my chemistry book)”中,载体短语“记住(Remember that)”可以指示该查询是保存对象位置的命令。
在一些实施方式中,该语音识别器可以包括均对应于相应类型的对象位置命令的多种语法。例如,该语音识别器可以包括声明语法、完成语法、检索语法和触发动作语法。每种语法可以被用来确定该查询与之相对应的特定类型的对象位置命令。该语法可以对对应于用户以一种语言讲出对象位置命令的自然方式的文本样本(例如,自然语言查询)进行训练。以这种方式,例如,载体短语对于语音助理或其它应用确定查询是特定类型的对象位置命令而言并非是必要的。相反,即使查询中并不包括所要求的载体短语或其它关键词,自然使用的单词和查询结构也可能足以确定该查询对应于何种类型的对象位置命令。例如,查询“我的化学书与Jane在一起(My chemistry book is with Jane)”、“Jane拿着我的化学书(Jane has my chemistry book)”和“化学书在Jane那里(The chemistry book is atJane's)”全部都可以使用声明语法而被识别为存储有关对象位置的信息的命令。
声明语法能够被用来确定查询是存储有关对象位置的信息的命令。可以利用声明语法而被识别为存储对象位置信息的命令的一些查询模式包括[$X is at$Y]、[I lent$Xto$Y]、[I borrowed$X from$Y]、[$X is in$Y]、[$Y has$X]、[I left$X with$Y]、[Remember that$X is in the$Y]。另外或其它的查询模式也可以被声明语法理解为对象位置存储命令,它们例如可以通过对对象位置存储命令样本的统计训练而确定。
完成语法能够被用来确定查询是记录对象已经返回或者以其它方式不再处于之前所存储位置的命令。例如,如果用户已经作出了声明“我将‘James and the GiantPeach’借给了Fred(I lent'James and the Giant Peach'to Fred)”,从而使得系统存储有关图书‘James and the Giant Peach’与Fred在一起的信息,随后,可以从用户输入“Fred归还了‘James and the Giant Peach’”而接收到对象完成命令。该完成命令指示该图书已经被归回或者以其它方式不再处于之前所存储的位置,并且该完成语法能够被用来识别作为完成命令的查询。例如,完成语法可以识别诸如以下的完成命令的查询模式:[$Xreturned$Y]、[I got$X back]、[Clear location of$X]、[$X is no longer at$Y],等等。另外或其它的查询模式也可以被完成语法所理解,它们例如可以通过对对象完成命令样本的统计训练而确定。
检索语法能够被用来确定查询是识别一个或多个对象的相应位置的命令。一旦对象的位置已经响应于对象位置存储命令而被存储,则在随后,用户可以提交对象检索命令以确定回忆对象位于何处。例如,之前已经被记录为位于阁楼中的相册的位置能够响应于查询“相册在哪儿?(Where is the photo album?)”而使用户进行回忆。过程300随后能够识别出相册位于阁楼中,并且向用户呈现该相册位于阁楼中的指示。该响应可以立即以文本消息被呈现给用户,诸如电子邮件、SMS或应用文本。在一些实施方式中,该响应可以是诸如由语音合成所讲出的响应。该检索语法可以识别诸如以下的检索命令的查询模式:[Where is$X?]、[Where are$X,$Y,and$Z?]、[Where did I leave$X?]、[Who has$X?]、[Did I leave$X somewhere?]、[Is$Y borrowing$X?],以及例如可以通过对对象位置检索命令样本的统计训练所确定的其它查询模式。在一些实施方式中,该检索语法可以识别出一个或多个对象的请求识别被存储在一个或多个位置的检索命令。例如,用户可以询问“厨房抽屉中都有什么?(What are all of the items in the kitchen drawer?)”,过程300可以利用厨房抽屉中的一个或多个物品的名称对其作出响应。
触发动作语法能够被用来确定查询是在事件发生时执行指定动作的命令。该动作和作为该动作的条件的事件均可以由用户进行指定,或者可以在用户并未指定的情况下通过使用上下文或缺省设置来确定。在一些实施方式中,该事件可以是对象已经被留在给定位置或者从那里返回。在一些实施方式中,该动作可以是提醒用户对该对象做些什么。例如,在1月5日,用户可以记录他将他的'Harry Potter'全集借给了Sam。一周之后,Jill告诉该用户她想要在该用户的'Harry Potter'全集还回来后尽快借阅该全集。用户能够讲出语音查询,后者命令在'Harry Potter'全集还回来后提醒他将其借给Jill。该命令能够使用触发动作语法识别。例如,用户可以讲出“提醒我Jill想要在Sam看完后看'Harry Potter'全集(Remind me that Jill wants the'Harry Potter'collection when Sam is donewith it)”。可替换地,该命令可能并不包括条件,但是可以以其它方式有所暗示“提醒我Jill想看'Harry Potter'全集”。根据这样的命令,过程300能够生成有关将'HarryPotter'全集提供给Jill的提醒。提醒可以被定期呈现给用户,或者用户可以询问他设置了哪些提醒。在一种实施方式中,提醒在完成事件发生时被提供。例如,当Sam将对象归还用户时,用户可以讲出完成命令“我收回了'Harry Potter'全集(I got the'Harry Potter'collection back)”。响应于记录该完成命令,过程300可以向用户呈现有关该对象的任何相关提醒,诸如“提醒我Jill想要借你的'Harry Potter'全集(Reminder that Jill wouldlike to borrow your'Harry Potter'collection)”。在一些实施方式中,该提醒可以在声明(例如,对象位置存储命令)发生时被提供。例如,用户可以在五月设置其必须在8月1日前准备好他练习使用的足球护垫的第一提醒。在同一年的六月,该用户可以提交指示Bobby借了足球护垫的对象位置存储命令。在发出这样的命令时,过程300可以提醒用户为了及时练习该足球护垫必须在8月1日前归还。过程300还可以在8月1日截止日期之前的特定时间提醒用户Bobby需要在8月1日之前归还足球护垫。此外,如果用户作出了检索命令,例如“我的足球护垫在哪儿?(Where are my football pads?)”,则过程300能够利用该足球护垫(在Bobby那里)的位置的指示对用户作出响应,并且还带有在8月1日的练习中需要该足球护垫的提醒。在一些实施方式中,用户能够指定有关对象和/或其位置的提醒在特定时间或以循环方式被提供给该用户。
在一种实施方式中,该触发动作语法能够被用来设置在用户与特定位置的表示进行交互时提醒用户对象已经被留在该位置的通知事件。如果用户指示对象已经被留给特定的人(或者特定组织或其它一般地特定实体),则对应于该对象被借出的这个人的联系人能够被确定,而使得在用户与该联系人进行交互时(例如,针对该联系人发送电子邮件、SMS消息、视频呼叫、社交媒体通信、电话呼叫),能够呈现出该对象在对应于所确定联系人的那个人那里的提醒。例如,如果用户将她的雪铲借给了Paula,则该用户下一次呼叫Paula或者Paula呼叫该用户时,能够向该用户自动显示消息,其提醒该用户Paula拿着该雪铲。在一些实施方式中,能够针对来自查询的提到的对象的位置而确定地理位置,并且能够在用户(或用户的设备)确定其当前位置处于所确定位置的阈值距离之内时自动生成通知。例如,在用户驾车通过Paula邻居家时能够自动呈现有关雪铲的提醒信息,从而用户能够例如当该用户处于Paula的区域中时方便地取回该对象。
在一种实施方式中,查询能够包括一个或多个对象、一个或多个位置以及一个或多个命令的不同组合。例如,综合查询可以为[$A is at$X,and$B is at$Y]或者[Whereare$A and$B located?]的形式。在这样的情况下,过程300能够对查询进行解析并且以与本文中为了简明而一般讨论的在单一分量查询的情况下所进行的类似方式针对该查询的每个分量执行类似动作。例如,相应语法可以被用来识别综合查询中的每个分量,其中语法根据查询的个体分量是否指向不同命令而可以是相同或不同的。在一些实施方式中,可以发出单一命令,但是过程300可以识别出与该命令相关联的多个对象和/或多个位置。例如,对象位置存储命令“我的帽子和围巾在手套隔挡里(My hat and scarf are in the glovecompartment)”能够被划分为帽子在手套隔挡里以及围巾在手套隔挡里的单独声明,并且这样的信息可以就像已经针对帽子和围巾对象形成了单独声明的情况那样进行存储。
在阶段306,在确定查询包括特定类型的对象位置命令时,过程300对查询进行解析从而识别该查询中所提到的对象。可以从查询中识别出一个或多个对象。在一些实施方式中,对象的名称可以从查询中被提取出来并且基本上以该对象在查询中被提供的方式进行存储。例如,给定对象位置存储命令“Colts运动衣在洗衣房(The Colts jersey is inthe wash room)”,“Colts运动衣”字符串能够被提取并且在“洗衣房”位置被存储在个人对象数据结构中。在一些实施方式中,除了从查询所提取的原始对象字符串之外或者作为其替代,可以针对对象识别一个或多个能够被存储或使用的相关词项(例如,根据查询是存储、完成还是检索命令)。例如,可以针对对象识别同义词或者经发音纠正的词项。因此,可以基于如在自然语言查询中所使用的部分名称“Colts运动衣”而识别出具有完整球队名称的“Indianapolis Colts运动衣”。在一些实施方式中,所提取的对象字符串可以与之前已经被存储并且与个人对象数据结构中的多个位置相关联的其它对象进行比较。如果所提取的对象字符串或相关词项被确定为与现有(之前所存储的)对象相似或相关,则可以确定这两个对象是相同的。如果两个对象是相同的,则可以针对该对象的新实例在个人对象数据结构中创建附加条目,其可以被链接至之前所存储的对象。在一些实施方式中,如果两个对象被确定为可能是相同对象,则可以针对个人对象数据结构中所存储的该对象的现有表示生成附加或更新的参数。例如,如果扳手套装之前位于工具架中,但是新的查询指示该扳手套装现在位于车库中,则可以访问原始的扳手套装对象表示,并且其当前位置从工具架更新为车库。在一些实施方式中,可以从查询中提取出对象字符串并且针对该对象存储条目而并不在提取和存储时执行所提取对象字符串与其它对象的比较。在稍后的时间,当从用户接收到检索或完成命令时,例如,过程300可以识别匹配该检索或完成命令的所有实体,包括识别同样的对象。例如,用户在第一次可以声明他的“纸牌(cards)”在办公室中,并且随后声明他的“一副牌(deck of cards)”在地下室。可以在作出“一副牌”的声明时或者在用户后续询问“我最后放我的纸牌的两个地方是哪里?(Where are the last two placesthat I left my cards?)”时执行关于“纸牌”对象和“一副牌”对象是否相同的确定。如果过程300确定部分对象字符串“cards”标示出与“deck of cards”相同的对象,则过程300可以利用纸牌的最后两个位置是地下室和办公室的指示对最后的查询作出响应。
在阶段308,过程300从查询中识别出对象的位置。该位置可以使用与被用来从查询识别对象的那些相类似的技术进行识别。例如,查询可以被解析,并且提取出对应于对象的位置的一个或多个单词。对于对象位置存储命令而言,对应于位置的一个或多个单词可以被保存在个人对象数据结构中并且与对象进行关联。在一些实施方式中,在新查询中所指定的对象位置可以被确定为与个人对象数据结构中之前所记录的其它位置相同。在一些实施方式中,可以确定在特定查询中所识别的多个位置之间和/或查询中的位置与之前已经记录在个人对象数据结构中的位置之间的关系。例如,之前保存在数据结构中的位置可以是“办公室”。新的查询可以指示对象位于“办公室壁橱”中。可以在办公室和办公室壁橱之间建立层级关系而使得办公室壁橱中的对象也可以被识别为处于办公室中,虽然并非所有办公室的对象都处于办公室壁橱中。在一些实施方式中,与对象相关联的可以是地理位置信息而不是概念位置。例如,地理位置可以从并未明确引用位置的一些查询或者从引用能够针对其识别地理位置的位置的查询得到暗示。因此,查询“记住我将车停在这里(Remember that I left my car here)”可以使得过程300使用诸如GPS之类的定位工具来确定接收到查询的设备的地理坐标,并且这样的坐标能够被记录为汽车的当前位置。在另一个示例中,用户可能说“我将我的外套留在了Jerry's World Famous Deli(I left mycoat at Jerry's World Famous Deli)”。Jerry's World Famous Deli的地理位置可以被确定,并且可以除了该熟食店的名称之外或者作为其替代被存储在个人对象数据结构中。
在阶段310,过程300确定从查询所识别的对象对应于一个或多个实体。实体例如可以包括人、东西或想法。实体的示例是大范围的并且可以包括从总统和美国国会到JonBon Jovi,真人秀和袋鼠,电影、商业等的任何人和任何事物。一个或多个已知实体之前已经被识别,或者可以在接收到查询之后进行识别。在一些实施方式中,在实体之前已经被识别的情况下,实体可以在实体的数据结构中进行索引。在一些实施方式中,该数据结构可以包括一个或多个子数据结构并且可以被表示为图形(例如,参见图2A)。例如,每个实体可以由图形中的节点所表示,特定的多个实体可以在图形中利用一种或多种关系而互相连接(例如,表示J.K.Rowling的实体可以通过指示J.K.Rowling创作了图书'Harry Potter andthe Philosopher's Stone'的双向关系而被连接至表示该图书的实体),每个实体可以与相应的属性集合相关联,并且实体可以与一个或多个主题(类别)相关联。例如,表示J.K.Rowling的实体可以被连接至其它实体,诸如表示作为该作者出生地的英国Yate的实体。J.K.Rowling实体还可以具有与她相关联的属性,诸如出生日期、兴趣等。有关实体的信息可以由用户手工输入和/或可以从可公开获取的信息(例如,网页、博客以及其它电子文档)进行拼凑,并且在基于信息来源(例如,基于数据来源的可靠性,数据跨多个来源被重复的频率以及数据的陈旧性)确定了至少一个阈值置信度水平的情况下被视为有关实体的准确数据。在一些实施方式中,实体数据结构可以以类似于图2A和2B中所描绘的实体图形202的方式进行表示。在一些实施方式中,有关对应于查询中的对象或位置的实体的信息能够在接收到查询之后被识别,诸如通过基于该查询执行互联网搜索来执行以便识别出可公共获取的有关该查询的信息。
在阶段312,确定关于已经被确定为对应于查询中所指定的对象的实体的一个或多个属性。实体的属性通常能够被用来识别与该对象相关但是并未在查询中讲出的附加信息。所存储的对象随后能够被标记或者以其它方式与其相对应实体的属性进行关联,而使得用户随后能够通过引用该属性而识别出该对象。在一些实施方式中,附加关键词基于属性而与对象相关联。例如,响应于指示用户已经将她的“To Kill a Mockingbird”的拷贝留给Ryan的查询,使得表示被存储在表示对象“To Kill a Mockingbird”当前在“Ryan”的位置的数据被存储在个人对象数据结构中。对象“To Kill a Mockingbird”可以在阶段310被确定为对应于Harper Lee的经典小说(即,该小说是查询对象在该示例中与之相对应的实体)。由于在查询中被引用的对象被确定为可能对应于小说,所以与该小说相关的附加属性能够与该对象相关联。因此,作者姓名(Harper Lee)、最初出版年份(1960)、主题(种族歧视、法律)、流派(南方哥特、虚构小说)和主要角色(Atticus Finch)是描述这本书的所有属性。关键词能够从属性识别并且与所存储的对象进行关联,诸如“图书”、“Harper Lee”、“1960”、“种族歧视”、“法律”、“南方哥特”和“Atticus Finch”。因此,即使用户最初指示“ToKill a Mockingbird”在Ryan那里,但是能够使用不同词项在后续来引用该对象。例如,用户可以发出检索命令“谁有我的有关Atticus Finch的数”或者完成命令“Harper Lee的书已经归还”,并且过程300随后能够识别出这些后续命令中的对象是Ryan已经借走的图书“To Kill a Mockingbird”。类似地,能够随对象标记以同义词、简短对象名称、完整长度的对象名称、类别以及主题或类别信息而使得对象能够使用之前用来保存有关该对象的信息的词项的可替换词项进行引用。
在一些实施方式中,实体属性能够通过访问包括有关实体以及它们的关系的信息的实体数据结构而被识别。有时,多个实体可能被确定为对应于查询中的对象。例如,“ToKill a Mockingbird”可能并非是指那本书,而是涉及到1962年根据这本书所改变的电影,其由Gregory Peck主演。在查询中所指定的对象存在歧义并且可能对应于多个不同候选实体之一的情况下,来自一个或多个候选实体的属性可以与该对象相关联。
为了促成对候选实体的选择,能够针对候选实体确定置信度得分,其反映出每个候选实体与用户查询中所指示的对象相匹配的相应可能性。置信度得分能够被用来选择哪个实体的属性来与对象进行关联。在一些实施方式中,具有n个最高置信度得分的n个实体的属性能够与一个对象相关联。在一些实施方式中,仅其置信度得分达到(例如,超过)阈值置信度得分的实体可以使得其属性与对象相关联。实体的置信度得分可以基于一种或多种因素,包括提到该对象的查询的上下文,以及相应实体在电子资源的一个或多个语料库中被找到的频率。例如,图书“To Kill a Mockingbird”可能在包括短语“To Kill aMockingbird”的互联网页面或其它资源上比电影的讨论频繁十倍。因此,实体数据结构可以包括指示该图书与电影相比的相对流行度,并且这样的信息可以使得图书的置信度得分高于电影的置信度得分。类似地,如果该查询自身包括消除候选实体的歧义的上下文,则这样的上下文能够被用来影响候选实体的置信度得分。例如,从该查询能够清楚的是,“‘ToKill a Mockingbird’的DVD在Ryan那里(The DVDs for'To Kill a Mockingbird'are atRyan's place)”包括对电影而不是图书的引用。因此,在该示例中可以使得电影实体的置信度得分高于图书的置信度得分,并且能够与该查询中所指定的对象相关联的是电影的属性而不是图书的属性。
在阶段314,并未与相对应实体相关联的一个或多个附加属性能够与查询对象相关联。该附加属性能够包括涉及到该对象但是并非必然从针对该对象的实体被识别的词项、短语和其它信息。甚至在无法针对对象从实体数据结构识别出相对应实体的情况下,其它信息源也可能只是该对象的相关属性。例如,具有特定且可能私人含义的个人对象可能并不是在实体数据结构(其可能很大程度上基于可公开获得的信息而生成)中有所表示的实体。因此,“祖母的手工编织毛衣(Grandma's hand-knit sweater)”可能是在实体数据结构中没有实体的对象。同样,诸如“祖母”、“家庭”、“传家宝”、“缝纫”和“衬衣”之类的关键词属性可以与该对象相关联从而在该对象随后被用户在查询中引用时允许有所扩展的检索能力。该附加属性在一些实施方式中可以通过访问辞典而被识别,从而通过从实体数据结构识别出相关(但并非相对应的)实体和/或通过允许针对该对象的基于web的搜索并且从相关搜索结果识别关键词来确定关键词的同义词。
对象的附加属性还能够基于用户账户数据来确定。例如,对象可以在与用户相关联的账户中所存储的数据有所描述,该描述能够被解析从而识别出要与该对象相关联的关键词属性。这例如对于确定对象的属性信息是有利的,而无论对应于该对象的实体是否在现有实体数据结构中有所表示。因此,从来自用户的电子邮件、应用、社交媒体账户、简档信息或其它来源的对于对象的描述所得出的关键词或其它数据能够关联于对象而被存储在个人对象数据结构中。用户可以选择加入或退出使得用户账户数据出于这样的目的而被分析,并且可以限制什么样的数据被分析。
在阶段316,识别查询中所指定的对象、该对象的位置的信息以及与该对象相关联的任意属性被存储在个人对象数据结构中。该个人对象数据结构可以在一个或多个位置包括数据结构的集合,而使得数据虽然被关联也可以被存储在一起或者并不存储在一起。信息可以在该查询是存储有关对象位置的信息的命令时在过程300的阶段316进行存储。针对其它命令—诸如请求有关对象位置的信息的命令—的查询可能并不会使得有关对象或其位置的新的信息被存储。在存储对象位置信息的情况下,除了对象标识符、位置和对象属性之外还可以存储附加的信息。例如,位置的关键词或其它属性可以使用与用于对象属性的那些相类似的技术来识别(例如,通过确定对应于命令中所提到的位置的实体的属性)。位置属性信息因此能够利用对象-位置条目进行存储。标记对象被留在特定位置或者查询被接收的日期和时间的时间戳也能够利用对象-位置条目进行存储。该时间戳能够被用来执行复杂的对象-位置查找操作。例如,该时间戳能够被用来对询问对象何时被留在一个位置,对象已经处于一个位置多久,或者对象在特定时间段内所在的所有位置的用户查询作出响应。
在一些实施方式中,存储在个人对象库集中的信息能够被表示为图形。该图形可以包括表示存储在该库集中的各种对象和位置的节点(顶点)以及连接该节点的边,后者表示节点之间的关系。该图形可以以类似于图2中所示图形的方式进行表示。例如,一个或多个对象已经位于那里或已经位于那里的特定位置可以由节点所表示,其连接至一个或多个对象中的每一个的其它节点。已经位于一个或多个位置的对象可以具有分别连接至它们的相应位置的其它节点的多个节点。在一些实施方式中,对象或位置的属性也可以由图形中的节点所表示。例如,对象“To Kill a Mockingbird”可以对应于Harper Lee的书,这可以通过访问实体数据结构并且将该对象与在该数据结构中被表示为实体的图书进行匹配来确定。这本书的作者Harper Lee因此可以作为与该对象相关联的属性并且可以在个人对象图形中被表示为连接至“To Kill a Mockingbird”对象节点的节点。
在阶段318,接收到第二查询。该第二查询可以涉及到之前已经存储在个人对象库集中的对象。例如,在阶段302所接收的第一查询可能已经是对象-位置存储命令,并且该第二查询可以是检索命令,其请求过程300利用来自第一查询的对象的位置作出响应。该第二查询可以使用与第一查询相同、相似或者甚至非常不同的语言而涉及到相同的对象。例如,该第一查询可以通过其标题(例如,“To Kill a Mockingbird”)而涉及到一本小说,而第二查询则可以仅通过其标题的一部分(例如,“Mockingbird”)或者甚至通过完全不同的参数而涉及到这本小说,上述参数诸如这本小说的作者(例如,“Harper Lee”)或另一属性。类似地,在查询中所指定的特定位置可以以相同位置在之前查询中被指定的相同、相似或非常不同的方式被提及。例如,一个查询可以识别出对象位于“妈妈家”,而第二查询则可以将相同位置识别为妈妈家的街道地址,或者处于妈妈家的相对应地理坐标。
在阶段320,该第二查询被解析。过程300确定该查询是否为对象-位置命令的类型,并且如果是,则确定其是何种命令(例如,对象位置存储命令(声明)、完成命令、检索命令、触发动作命令)。例如,各种的声明、完成、检索、触发动作和其它语法都能够被用来解析所讲出的查询。该查询中的对象和/或位置字符串通过解析该查询而被识别。例如,查询“我将Harper的书放在了哪里?(Where did I leave the Harper Lee book?)”能够被解析并确定为是检索类型的命令,其具有对象字符串“Harper Lee book”并且没有指定的位置。
在阶段322,过程300确定第二查询中所指定的对象和/或位置与之前所接收的第一查询中所指定的对象和/或位置相同。如果从第二查询所识别的对象和/或位置字符串与之前所接收的来自第一查询的对象和/或位置字符串相匹配,则该对象和/或位置可以被确定为在查询之间是相同的。如果在第二查询中以不同于其在第一查询中被识别的方式识别出相同的对象或位置,则能够分别识别一个或多个匹配最为紧密的对象或位置。在一些实施方式中,在第二查询的多个部分和第一查询的多个部分之间执行字符串比较,诸如相同查询中的对象串与从第一查询所提取的对象串之间的比较。在一些实施方式中,第二查询中所提到的对象通过该对象的一个或多个属性而间接地引用第一查询中所提到的相同对象。例如,“Harper Lee book”是对“To Kill a Mockingbird”的间接引用。如果第二查询包括对象字符串“Harper Lee book”,则这样的字符串可以通过将对象字符串“Harper Leebook”与标题为“To Kill a Mockingbird”的图书的属性进行比较而被匹配至“To Kill aMockingbird”,并且能够从这本书的作者确定匹配。在一些实施方式中,属性是已经针对之前存储在个人对象数据结构中的“To Kill a Mockingbird”对象所标记的关键词,并且匹配通过执行第二查询中所指定的间接对象与之前所存储对象的关键词的比较而被确定。以这种方式,过程300能够识别出个人对象库集中可能对应于查询中间接引用的对象的一个或多个对象。在一些实施方式中,个人对象数据结构中的对象或位置的实体能够在相对应的对象或位置在一系列查询中被引用时进行更新,而无论针对该对象或位置的引用是否相同或不同。例如,能够响应于接收到指示第一对象位于Bill的公寓的第一查询而在数据结构中创建名为“Bill的公寓(Bill's Apartment)”的位置的条目。第二查询可以指示第二对象位于Bill的公寓,但是可以通过街道地址555Candy Cane Lane,Apartment No.3来识别出Bill的公寓。过程300能够确定在第二查询中所提到的地址对应于Bill的公寓,并且因此Bill的公寓的位置条目被更新从而指示该第二对象也位于Bill的公寓。例如,在个人数据结构的图形表示中,第二对象的节点可以是出自于表示“Bill的公寓”位置的节点的分支。
在阶段324,过程300响应于该第二查询而执行与该对象相关联的动作。例如,对象及其当前位置的识别信息能够被保存以便后续检索;有关对象或位置的信息能够被获取并提供给用户;能够执行完成动作;并且能够响应于第二查询而执行触发动作。
图4描绘了用于管理并报告对象的位置信息的示例系统400。系统400能够被配置为接收用户查询,后者用于存储有关用户已经将个人对象留在何处的信息而使得这样的信息能够在随后用户请求时被想起。系统400允许在查询中使用灵活的查询结构和自然语言从而命令系统400存储有关对象和对象位置的信息,对所存储的对象及其位置的表示执行操作,并且利用能够被用来向用户呈现所存储的有关对象和位置的信息的信息对查询作出响应。系统400能够包括一个或多个用户设备402、网络410、对象和位置引擎404、实体数据结构408和语音识别器406。虽然系统400的各个组件被图示为相互分离,但是在一些实施方式中,特定多个组件能够以各种组合与其它组件进行整合,并且一些组件能够被划分为另外的子组件。例如,语音识别器406可以在用户设备402或远离用户设备402的一个或多个服务器系统上实施。类似地,对象和位置引擎404能够在用户402上本地提供,在远离用户设备402的一个或多个服务器系统上提供,或者特定子组件可以在本地提供而其它则在远程服务器上提供。在一种实施方式中,系统400能够被配置为执行本文中所描述的特定处理,诸如图1中所描绘的过程100或者图3中所描绘的过程300。
用户设备402被配置为接收来自用户的查询并且向用户呈现信息。用户设备402可以是智能电话、平板计算设备、台式计算机、笔记本计算机,或者在一些实施方式中是智能手表。用户设备402可以被配置为基于来自用户的口头输入或者基于用户所键入的文本输入而接收查询。用户设备402还可以包括或者被操作地耦合至电子显示器,诸如触摸敏感显示器,其能够向用户呈现信息。用户设备402可以包括I/O接口412、语音处理引擎414、显示管理器416、时间和位置引擎418以及账户管理器420。I/O接口412被配置为从用户设备402发送和接收数据。例如,I/O接口412可以包括能够通过网络410发送和接收数据的一个或多个无线通信芯片,上述网络410诸如互联网或私人网络。语音处理引擎414能够对来自用户的口头输入执行语音识别。在一些实施方式中,语音处理引擎414可以具有仅识别有限语音命令集合的有限语法。复杂自然语言查询的口头输入的音频在一些实施方式中能够被传送至语音识别器406以便在服务器上远程处理,上述服务器具有比用户设备402上的那些更为复杂的语音识别能力和更大的语法。在一些实施方式中,所有语音处理都在用户设备402上执行。显示管理器416对要在与用户设备402上相关联的一个或多个电子显示器上显示什么进行管理。查询可以在该查询被设备402所接收时被呈现给用户,并且查询响应可以在电子显示器上被示出以便将该响应呈现给用户。
时间和位置引擎418被配置为对用户设备402的当前时间和位置进行追踪。使用来自时间和位置引擎418的信息,系统400能够将用户查询与时间和/或位置进行关联。时间戳能够与查询相关联从而例如指示对象被留在特定位置的日期和时间。因此,当用户作出诸如“今天下午我将篮球借给了Paige(I lent the basketball to Paige thisafternoon)”的对象-位置存储命令时,时间戳与该命令(查询)进行关联以便标记篮球被借给Paige的日期和时间。在一些实施方式中,用户能够明确指定对象何时被留在一个位置,并且这样的明确时间戳取代来自时间和位置引擎418的缺省的当前时间戳。例如,在6月5日所接收的指出“我4天前将篮球给了Paige(I gave the basketball to Paige 4daysago)”查询能够被标记以日期6月1日而不是6月5日,因为该查询的内容明确指示了日期。通过记录对象被留在特定位置的日期和时间,系统400随后就能够使用这样的信息来对有关对象和位置的基于时间的查询作出响应。例如,系统400可以使用与个人对象数据结构中的条目相关联的时间戳来对有关对象何时被留在一个或多个位置,对象已经被留在一个或多个位置多久,以及对象在特定时间段内被放置的所有位置都是哪里的查询作出响应。
用户设备402的账户管理器420对设备402上的一个或多个用户账户进行管理。例如,账户管理器420管理多个用户中的每一个的相应账户。每个用户账户可以包括用户简档信息以及有关用户关于对象-位置类型命令的偏好的信息。用户账户信息能够被存储在用户简档库集422中。相应用户账户的一个或多个个人对象数据结构能够被存储在对象数据库集424中。因此,不同用户能够具有其自己的独立于其它用户的个人数据结构。当第一用户以第一账户登入设备402时,他可以在其相应的个人对象数据结构中保存并获取有关对象位置的信息。当另一个用户以第二账户登入设备402时,该用户可以在其相应的个人对象数据结构中保存并获取有关对象位置的信息。该账户可以与用户设备402相关联(例如,由用户设备402的操作系统所维护),或者由处于设备402上或者能够以其它方式被设备402所访问的一个或多个服务或应用进行维护。例如,安装在设备上的对象-位置应用可以允许多个不同用户登入该应用,并且可以针对每个用户维护相应的账户。在一些实施方式中,用户简档库集422和对象数据库集424中的至少一个能够至少部分远离用户设备402进行维护,诸如在对象-位置服务器进行维护。在一些实施方式中,包括个人对象数据结构在内的用户数据可以同时在本地和远程进行维护。针对用户数据的改变—诸如针对个人对象数据结构的更新—能够在设备之一处进行改变时在一个或多个本地和远程设备之间自动传播。
对象和位置引擎404(O&L引擎)被配置为接收、处理查询并对其作出响应,上述查询包括一种或多种类型的对象-位置命令。O&L引擎404能够接收查询,对查询进行解析,并且基于查询的内容作出响应。例如,当用户在用户设备402发出语音查询时,用户设备402可以通过网络410将查询或查询的表征形式发送至O&L引擎404,后者可以被托管于一个或多个远程服务器上。O&L引擎404能够响应于该查询而执行一个或多个动作,诸如存储有关对象位于何处的信息,识别对象位于何处,更新有关对象位于何处的信息,确定触发动作的信息,并且生成指令以发送至用户设备402而使得动作响应于触发事件而执行。
O&L引擎404可以包括I/O接口426、查询解析器428、命名实体识别引擎430、O&L数据管理器432以及账户管理器434。此外,O&L引擎404能够与语音识别器406以及诸如实体数据结构408的一个或多个外部数据源进行通信。I/O接口426被配置为通过诸如私人网络或互联网的一个或多个网络410进行通信,并且能够与语音识别器406、实体数据结构408和其它外部源进行通信,并且与用户设备402进行通信。
查询解析器428被配置为对从用户设备402所接收的查询进行解析。查询解析器428能够对用户查询进行处理从而确定其是否是对象-位置命令,并且如果是,则确定对象-位置命令的特定类型(例如,对象位置存储命令、检索命令、完成命令、触发动作命令,或者另外的类型)。查询解析器能够识别查询所提到的每个对象,查询中所提到的每个位置,以及查询中所提到的对象和位置之间的对应性。例如,查询可以指示“毛巾在烘干机中并且床单在壁橱中(The towels are in the dryer and the sheets are in the closet)”。查询解析器428能够识别出该查询是对象-位置存储命令,其包括对两个对象(毛巾和床单)、两个位置(烘干机和壁橱)的引用,并且该毛巾和烘干机作为对象-位置配对进行对应,并且该床单和壁橱作为另一个对象-位置配对进行对应。
在一些实施方式中,查询解析器428使用一种或多种语法来处理并解析查询。例如,语音查询可以由语音识别器406进行转录。语音识别器406包括被配置为识别各种类型的自然语言的对象-位置命令的语法。声明语法440被配置为允许对象-位置存储命令(例如,“冰球在后座中(The hockey puck is in the backseat)”,“记住艺术收藏品在Bill那里(Remember that the art collection is at Bill's place)”)的识别。检索语法442被配置为允许对象检索命令(例如,“冰球在哪儿?(Where is the hockey puck?)”、“Bill有什么?(What does Bill have?)”)的识别。完成语法444被配置为允许对象完成命令(例如,“我已经归还了冰球(I've returned the hockey puck)”,“Bill不再有艺术收藏品了(Bill no longer has the art collection)”)的识别。事件触发语法446被配置为允许事件触发命令(“提醒我Sally想要冰球(Remind me that Sally wants the hockey puck)”,“提醒我Sally在Bill之后想要艺术收藏品(Remind me that Sally wants the artcollection after Bill)”)的识别。查询解析器428能够发送查询以便由语音识别器406利用语音识别器406的各种语法440-446进行转录。查询解析器428能够从语音查询的转录中提取出一个或多个字符串,其对应于该字符串中的对象和位置。在一些实施方式中,语法440-446能够被用来识别文本查询中的哪些词项对应于对象和位置,并且还确定该查询是何种特定类型的对象-位置命令。例如,每种语法可以被包括在已经对特定类型的大量训练查询进行了训练的一个或多个语言模型中。声明语法440能够基于声明类型查询(例如,对象-位置存储命令)的训练样本,检索语法442能够基于检索类型查询的训练样本,完成语法444能够基于完成类型查询的训练样本,并且事件触发语法446能够基于事件触发类型查询的训练样本。当接收到新的查询时,已经对各种类型的查询进行过统计训练的模型能够对已经作出的查询的特定类型(例如,声明、检索、完成、事件触发、其它)进行概率确定。
命名实体识别引擎430被配置为确定查询中所提及的对象或位置的一个或多个属性。命名实体识别引擎430可以针对查询中的对象或位置或者针对对象和位置二者确定属性。如果在查询中提供了多于一个的对象或位置,则引擎430能够针对所有或者仅一些对象或位置来确定属性。命名实体识别引擎430能够访问一个或多个数据源来识别对象或位置的属性。在一些实施方式中,数据源可以处于系统400外部。例如,命名实体识别引擎430可以基于查询或者基于感兴趣的对象或位置来执行一个或多个语料库的搜索。搜索结果的内容随后能够被用来确定与对象或位置相关联的一个或多个关键词。例如,命名实体识别引擎430可以通过针对单词相机执行搜索来识别对象“相机”的关键词属性,并且从一个或多个排名最高的搜索结果确定与相机相关联的最为相关的关键词。这些关键词属性随后能够与相机对象进行关联,而使得除了在查询中识别出相机的原始方式之外或者作为其替代,随后能够基于其属性(例如,照片、镜头、取景器、D-SLR)等识别出相机。
在一些实施方式中,命名实体识别引擎430通过识别对象或位置在真实世界中与之相对应的一个或多个实体,并且将那些实体的属性与查询中所提到的对象或位置进行关联来确定对象或位置的属性。在一个示例中,实体及其属性参考实体数据结构408而被识别。实体数据结构408通常包括实体(例如,人、地方、东西、想法)、实体间的关系以及这样的实体的属性的结构化表示。实体数据结构408可以被表示为图形,其具有表示实体的节点以及连接表示实体间的关系和有关实体的各种属性(例如,事实)的节点的边。这样的图形的一个示例在图2A和2B中示出。实体数据库集448包括数据结构408中所表示的实体的数据,并且属性数据库集450包括有关实体属性的数据。实体数据结构448可以以人工方式、自动方式或者二者的组合而获得。例如,实体可以通过抓取互联网上可公开获取的资源,分析可公开获取的资源的内容,并且基于对资源的分析作出有关实体存在和属性的确定而被确定。例如,大量资源的主题可以是特定对象(或对象系列),诸如Arthur Conan Doyle所著的Sherlock Holmes系列图书。可以确定该系列中的每本书是一个实体的高置信度,就如同其作者Arthur Conan Doyle爵士。此外,可以针对图书确定各种属性,诸如流派(推理),以及它们被书写并首次出版的时间和地点。这样的信息可以被存储在实体数据结构448中。
在一些实施方式中,命名实体识别引擎430可以将查询中的对象或位置与实体数据结构448中的实体进行关联,诸如通过引用相关联实体的指针。以这种方式,如果有关实体的信息被增加或以其它方式被更新,则这样的信息也能够针对来自查询的相对应的对象和位置进行更新。
O&L数据管理器432管理有关对象和位置的信息。例如,随账户管理器434一起工作并且响应于用户查询,O&L数据管理器432能够针对用户存储并访问有关对象和对象存储位置的信息。一旦查询已经被解析并且对象或位置属性被确定,O&L数据管理器432就能够使得这样的信息分别被查询解析器428和命名实体识别引擎430所存储,有关对象、其位置以及对象和位置的属性的信息则能够被存储在个人对象数据结构438中,后者由账户管理器434进行维护。例如,如用户账户库集436中的数据所指示的,相应的个人对象数据结构438能够针对多个用户账户中的每一个进行维护。因此,例如,Fred能够保存并获取有关其自己的个人对象位于何处的信息,而Emma则无法这样做。例如,O&L数据管理器432还能够从个人对象数据结构438拉取数据从而对诸如对象检索查找的查询作出响应。
图5示出了可以被用来实施这里所描述的技术的计算设备500和移动计算设备的示例。计算设备500意在表示各种形式的数字计算机,诸如膝上计算机、台式机、工作站、个人数字助理、服务器、刀片服务器、主机和其它适当计算机,计算设备550意在表示各种形式的移动设备,诸如个人数字助理、移动电话、智能电话和其它类似的计算设备。这里所示出的组件、其连接和关系以及其功能仅意在进行示例,而并非意在对本文中所描述和/或要求保护的发明的实施方式进行限制。
计算设备500包括处理器502、存储器504、存储设备506、连接到存储器504和高速扩展端口510的高速接口508,以及连接到低速总线514和存储设备506的低速接口512。每个组件502、504、506、508、510和512使用各种总线进行互连,并且可以安装在共用主板上,或者以其它适宜方式进行安装。处理器502能够处理指令以便在计算设备500内执行以在诸如耦合到高速接口508的显示器516的外部输入/输出设备上显示用于GUI的图形信息,所述指令包括存储在存储器504中或者存储设备506中的指令。在其它实施方式中,如果适宜,可使用多个处理器和/或多个总线,以及多个存储器和存储器类型。而且,多个计算设备500可以与提供各部分必要操作的每个设备进行连接(例如,作为服务器组、刀片服务器分组或多处理器系统)。在一些示例中,处理器502可以是一个或多个微处理器。
存储器504存储计算设备500内的信息。在一种实施方式中,存储器504是一个或多个易失性存储单元。在另一实施方式中,存储器504是一个或多个非易失性存储单元。存储器504还可以是其它形式的计算机可读介质,诸如磁盘或光盘。
存储设备506能够为计算设备500提供大型存储。在一种实施方式中,存储设备506可以是或者可包含计算机可读介质,诸如软盘设备、硬盘设备、光盘设备、磁带设备、闪存或其它类似固态存储设备、或者设备阵列,包括存储域网络或其它配置中的设备。计算机程序产品可切实实现在信息载体中。所述计算机程序产品还可包含指令,当被执行时,所述指令执行诸如以上所描述的一个或多个方法。所述信息载体是计算机或机器可读介质,诸如存储器504、存储设备506、处理器502上的存储器。
高速控制器508管理用于计算设备500的带宽密集操作,而低速控制器512管理较低带宽密集的操作。这样的功能分配仅是示例性的。在一种实施方式中,高速控制器508耦合到存储器504、显示器516(例如,通过图形处理器或加速器),并且耦合到可接受各种扩展卡(未示出)的高速扩展端口510。在所述实施方式中,低速控制器512耦合到存储设备506和低速扩展端口514。可以包括各种通信端口(例如,USB、蓝牙、以太网、无线以太网)的低速控制端口514可耦合到一个或多个输入/输出设备,诸如键盘、指示设备、扫描仪,或者例如通过网络适配器耦合到诸如交换机和路由器之类的联网设备。
如图所示,计算设备500能够以各种不同形式来实现。例如,其可以实现为标准服务器520,或者这种服务器分组中的多个服务器。其还可以被实现为机架式服务器系统524的一部分。此外,其还可以在诸如膝上计算机522的个人计算机中实施。作为选择,来自计算设备500的组件可以与诸如设备550的移动设备(未示出)中的其它组件相结合。每个这样的设备可包含一个或多个计算设备500和移动计算设备550,并且整个系统可由多个彼此通信的计算设备所构成。
除其它组件之外,移动计算设备550包括处理器552、存储器564、诸如显示器554的输入/输出设备、通信接口566和收发器568。移动计算设备550还可提供以诸如微驱动器或其它设备的存储设备以提供附加存储。处理器552、存储器564、显示器554、通信接口566和收发器568使用各种总线进行互连,并且若干组件可安装在共用主板上或者以其它适宜方式进行安装。
处理器552能够执行移动计算设备550内的指令,包括存储在存储器564中的指令。所述处理器可被实现为包括单独且多个的模拟和数字处理器的芯片的芯片组。例如,所述处理器可提供移动计算设备550的其它组件的协同,诸如控制用户接口、移动计算设备550所运行的应用程序以及移动计算设备550所进行的无线通信。
处理器552可以通过耦合到显示器554的控制接口558和显示接口与用户进行通信。显示器554例如可以是TFT LCD(薄膜晶体管液晶显示器)显示器或OLED(有机发光二极管)显示器,或者其它适当的显示技术。显示接口556可以包括用于驱动显示器554向用户显示图形和其它信息的适当电路。控制接口558可以从用户接收命令并且对其进行转换以便向处理器552进行提交。此外,可提供与处理器552进行通信的外部接口562,从而使得移动计算设备550能够与其它设备进行近域通信。例如,外部接口562在一些实施方式中可提供有线通信,或者在其它实施方式中提供无线通信,并且也可使用多个接口。
存储器564存储移动计算设备550内的信息。存储器564可以被实施为一个或多个计算机可读介质或媒体、一个或多个易失性存储器单元或者一个或多个非易失性存储器单元。也以提供扩展存储器574并通过扩展接口572连接到设备550,例如,所述扩展接口572可以包括SIMM(单列存储组模)卡接口。这样的扩展存储器574可为设备550提供额外的存储空间,或者还可以为设备550存储应用程序或其它信息。特别地,扩展存储器574可以包括指令以执行或补充以上所描述的处理,并且还可以包括安全信息。例如,扩展存储器574由此可被提供作为设备550的安全模块,并且可利用允许对设备550进行安全使用的指令进行编程。此外,可经由SIMM卡提供安全应用程序以及附加信息,诸如以不可破坏的方式在SIMM卡上设置识别信息。
例如,如以下所描述的,所述存储器可以包括闪存和/或NVRAM存储器(非易失性随机存取存储器)。所述计算机程序产品还可包含指令,当被执行时,所述指令执行诸如以上所描述的一个或多个方法。所述计算机程序产品是计算机或机器可读介质,诸如存储器564、扩展存储器574、处理器552上的存储器。在一些实施的方式中,例如能够通过收发器568或外部接口562在传播的信号中接收计算机程序产品。
移动计算设备550可通过通信接口566进行无线通信,在必要情况下,所述通信接口566包括数字信号处理电路。通信接口566可在各种模式或协议下提供通信,除其它之外,所述模式或协议诸如GSM语音呼叫(全球移动通信系统)、SMS(短消息服务)、EMS(增强消息服务)或MMS消息发送(多媒体消息服务)、CDMA(码分多址)、TDMA(时分多址)、PDC(个人数字蜂窝)、WCDMA(宽带码分多址)、CDMA2000或GPRS(通用分组无线电服务)。例如,这样通信可使用无线电频率通过射频收发器568进行。此外,诸如可使用蓝牙、WiFi或其它这样的收发器(未示出)进行短距离通信。此外,GPS(全球定位系统)接收器模块570可为移动计算设备550提供附加的导航和位置相关的无线数据,其可由设备550上运行的应用程序适当使用。
移动计算设备550还使用音频编解码器560进行可听通信,所述音频编解码器560接收来自用户的语音信息并且将其转换为可用的数字信息。音频编解码器560同样可以诸如通过扬声器为用户生成可听声音,例如在移动计算设备550的听筒中。这样的声音可以包括来自语音电话呼叫的声音,可以包括录制的声音(例如,语音消息、音乐文件等),并且还可以包括移动计算设备550上运行的应用程序所生成的声音。
如图所示,移动计算设备550可以以多种不同方式来实现。例如,其可以实现为蜂窝电话580。其还可以实现为智能电话582、个人数字助理或其它类似移动设备的一部分。
因此,这里所描述的系统和技术的各种实施方式可以以数字电路、集成电路、专门设计的ASIC(专用集成电路)、计算机硬件、固件、软件和/或其组合来实现。这些各种实施方式可以包括一个或多个计算机程序中的实施方式,所述计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,所述可编程系统可以为专用或通用,其耦合以从存储设备、至少一个输入设备以及至少一个输出设备接收数据和指令并且向其传送数据和指令。
这些计算机程序(也称作程序、软件、软件应用程序或代码)包括用于可编程处理器的机器指令,并且能够以高级程序和/或面向对象编程语言来实施,和/或以汇编/机器语言来实施。如这里所使用的,术语机器可读介质、计算机可读介质是指用来向可编程处理器提供机器指令和/或数据的任意计算机程序产品、装置和/或设备(例如,磁碟、光盘、存储器、可编程逻辑器件PLD),其包括接收机器指令作为机器可读信号的机器可读介质。术语机器可读信号是指被用来为可编程处理器提供机器指令和/或数据的任意信号。
为了提供与用户的交互,这里所描述的系统和技术可在具有用于向用户显示信息的显示设备(例如,CRT(阴极射线管)或LCD(液晶显示器)监视器)和用户能够通过其为计算机提供输入的键盘和指示设备(例如,鼠标或轨迹球)的计算机上实施。也可以使用其它类型的设备来提供与用户的交互;例如,提供给用户的反馈可以为任意形式的传感器反馈(例如,视觉反馈、听觉反馈或触觉反馈);并且来自用户的输入可以以任意形式接收,包括声音、语音或触觉输入。
这里所描述的系统和技术可在计算系统中实现,所述计算系统包括后端组件(例如,数据服务器),或者其包括中间件组件(例如,应用服务器),或者其包括前端组件(例如,具有用户能够通过其与这里所描述的系统和技术的实施方式进行交互的图形用户界面或web浏览器的客户端计算机),或者这些后端、中间件或前端组件的任意组合。所述系统的组件可通过任意形式的介质或数字数据通信(例如,通信网络)进行互连。通信网络的示例包括局域网(LAN)、广域网(WAN)和互联网。
计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离并且典型地通过通信网络进行交互。客户端和服务器的关系通过在各自计算机上运行的计算机程序建立并且彼此具有客户端-服务器关系。
虽然上文中已经详细描述了一些实施方式,但是其它修改也是可能的。此外,在图中所描绘的逻辑流程并不要求所示出的特定顺序或连续顺序来实现所期望的结果。此外,可以提供其它动作,或者可以从所描述的流程中消除动作,并且可以向所描述的系统增加组件或者从中去除组件。因此,其它实施方式处于以下权利要求的范围之内。

Claims (20)

1.一种计算机实施的方法,包括:
由计算设备在第一时间接收识别物理对象和用户为了存储而将所述物理对象留在的位置的第一语音查询,其中所述物理对象能够由所述用户便携或移动;
将所述第一语音查询从所述计算设备传送到远程计算系统以使所述远程计算系统存储所述物理对象为了存储而被留在所述第一语音查询中识别的位置处的指示;
由所述计算设备在第二时间接收识别所述物理对象的属性的第二语音查询,所述第二时间在使所述远程计算系统存储所述物理对象为了存储而被留在所述第一语音查询中识别的位置处的指示之后,其中所述物理对象的属性未被识别在所述第一语音查询中;
将所述第二语音查询传送到所述远程计算系统;
由所述计算设备接收指示所述物理对象为了存储而被留在所述第一语音查询中识别的位置处的信息作为对所述第二语音查询的响应;以及
提供指示所述物理对象为了存储而被留在所述第一语音查询中识别的位置处的信息以向用户呈现。
2.根据权利要求1所述的计算机实施的方法,其中,所述第二语音查询包括所述第一语音查询未包括的识别所述物理对象的一个或多个词项。
3.根据权利要求1所述的计算机实施的方法,进一步包括确定所述计算设备位于所述用户为了存储而将所述物理对象留在的位置的阈值距离内,并且作为响应,使所述计算设备呈现指示所述物理对象位于所述计算设备附近的信息。
4.根据权利要求1所述的计算机实施的方法,进一步包括响应于将所述第一语音查询从所述计算设备传送到所述远程计算系统以使所述远程计算系统存储所述物理对象为了存储而被留在所述第一语音查询中识别的位置处的指示,使得所述远程计算系统:
在数据结构中生成表示所述物理对象的第一节点;
在所述数据结构中生成表示所述用户为了存储而将所述物理对象留在的位置的第二节点;以及
在所述数据结构中链接所述第一节点和所述第二节点以表示所述物理对象为了存储而被留在所述第一语音查询中识别的位置的指示。
5.根据权利要求1所述的计算机实施的方法,其中,由所述计算设备接收指示所述物理对象为了存储而被留在所述第一语音查询中识别的位置处的信息作为对所述第二语音查询的响应进一步包括:
响应于所述远程计算系统将所述第二语音查询中的所述物理对象的属性匹配到由所述远程计算系统识别但是在所述第一语音查询中未识别的所述物理对象的一个或多个属性,接收指示所述物理对象为了存储而被留在所述第一语音查询中识别的位置的信息。
6.根据权利要求1所述的计算机实施的方法,进一步包括:
使所述远程计算系统将用于所述物理对象的数据存储在与所述用户的特定账户相对应的数据结构中,其中所述数据:
(i)包括一个或多个物理对象和所述用户为了存储而将所述一个或多个物理对象留在的一个或多个对应位置的表示;以及
(ii)映射在所述一个或多个物理对象和所述用户将所述一个或多个物理对象留在的一个或多个对应位置中的特定物理对象和特定位置之间的关系。
7.根据权利要求1所述的计算机实施的方法,其中,所述第一语音查询不包括识别所述用户将所述物理对象留在的位置的信息,并且其中,基于原始讲出所述第一语音查询的所述计算设备的当前位置来确定所述用户将所述物理对象留在的位置。
8.根据权利要求1所述的计算机实施的方法,其中,识别所述物理对象的属性的所述第二语音查询进一步包括请求所述第一语音查询中识别的所述物理对象的位置的检索命令。
9.根据权利要求1所述的计算机实施的方法,其中,所述物理对象的属性包括所述物理对象与另一对象的关系。
10.一种用于保存并获取对象的位置的系统,所述系统包括:
一个或多个计算机和存储指令的一个或多个存储设备,所述指令在被所述一个或多个计算机执行时可操作为使得所述一个或多个计算机执行操作,所述操作包括:
由计算设备在第一时间接收识别物理对象和用户为了存储而将所述物理对象留在的位置的第一语音查询,其中所述物理对象能够由所述用户便携或移动;
将所述第一语音查询从所述计算设备传送到远程计算系统以使所述远程计算系统存储所述物理对象为了存储而被留在所述第一语音查询中识别的位置处的指示;
由所述计算设备在第二时间接收识别所述物理对象的属性的第二语音查询,所述第二时间在使所述远程计算系统存储所述物理对象为了存储而被留在所述第一语音查询中识别的位置处的指示之后,其中所述物理对象的属性未被识别在所述第一语音查询中;
将所述第二语音查询传送到所述远程计算系统;
由所述计算设备接收指示所述物理对象为了存储而被留在所述第一语音查询中识别的位置处的信息作为对所述第二语音查询的响应;以及
提供指示所述物理对象为了存储而被留在所述第一语音查询中识别的位置处的信息以向用户呈现。
11.根据权利要求10所述的系统,其中,所述操作进一步包括确定所述计算设备位于所述用户为了存储而将所述物理对象留在的位置的阈值距离内,并且作为响应,使所述计算设备呈现指示所述物理对象位于所述计算设备附近的信息。
12.根据权利要求10所述的系统,其中,所述操作进一步包括响应于将所述第一语音查询从所述计算设备传送到远程计算系统以使所述远程计算系统存储所述物理对象为了存储而被留在所述第一语音查询中识别的位置处的指示,使得所述远程计算系统:
在数据结构中生成表示所述物理对象的第一节点;
在所述数据结构中生成表示所述用户为了存储而将所述物理对象留在的位置的第二节点;以及
在所述数据结构中链接所述第一节点和所述第二节点以表示所述物理对象为了存储而被留在所述第一语音查询中识别的位置的指示。
13.根据权利要求10所述的系统,其中,由所述计算设备接收指示所述物理对象为了存储而被留在所述第一语音查询中识别的位置处的信息作为对所述第二语音查询的响应进一步包括:
响应于所述远程计算系统将所述第二语音查询中的物理对象的属性匹配到由所述远程计算系统识别但是在所述第一语音查询中未识别的所述物理对象的一个或多个属性,接收指示所述物理对象为了存储而被留在所述第一语音查询中识别的位置的信息。
14.根据权利要求10所述的系统,其中,所述操作进一步包括:
使所述远程计算系统将用于所述物理对象的数据存储在与所述用户的特定账户相对应的数据结构中,其中所述数据:
(i)包括一个或多个物理对象和所述用户为了存储而将所述一个或多个物理对象留在的一个或多个对应位置的表示;以及
(ii)映射在所述一个或多个物理对象和所述用户将所述一个或多个物理对象留在的一个或多个对应位置中的特定物理对象和特定位置之间的关系。
15.根据权利要求10所述的系统,其中,所述第一语音查询不包括识别所述用户将所述物理对象留在的位置的信息,并且其中,基于原始讲出所述第一语音查询的所述计算设备的当前位置来确定所述用户将所述物理对象留在的位置。
16.根据权利要求10所述的系统,其中,识别所述物理对象的属性的所述第二语音查询进一步包括请求所述第一语音查询中识别的所述物理对象的位置的检索命令。
17.一种存储包括指令的软件的非暂时性计算机可读介质,所述指令能够由一个或多个计算机执行,并且在这样的执行时使得所述一个或多个计算机执行操作,所述操作包括:
由计算设备在第一时间接收识别物理对象和用户为了存储而将所述物理对象留在的位置的第一语音查询,其中所述物理对象能够由所述用户便携或移动;
将所述第一语音查询从所述计算设备传送到远程计算系统以使所述远程计算系统存储所述物理对象为了存储而被留在所述第一语音查询中识别的位置处的指示;
由所述计算设备在第二时间接收识别所述物理对象的属性的第二语音查询,所述第二时间在使所述远程计算系统存储所述物理对象为了存储而被留在所述第一语音查询中识别的位置处的指示之后,其中所述物理对象的属性未被识别在所述第一语音查询中;
将所述第二语音查询传送到所述远程计算系统;
由所述计算设备接收指示所述物理对象为了存储而被留在所述第一语音查询中识别的位置处的信息作为对所述第二语音查询的响应;以及
提供指示所述物理对象为了存储而被留在所述第一语音查询中识别的位置处的信息以向用户呈现。
18.根据权利要求17所述的计算机可读介质,其中,所述第二语音查询包括所述第一语音查询未包括的识别所述物理对象的一个或多个词项。
19.根据权利要求17所述的计算机可读介质,其中,所述操作进一步包括确定所述计算设备位于所述用户为了存储而将所述物理对象留在的位置的阈值距离内,并且作为响应,使所述计算设备呈现指示所述物理对象位于所述计算设备附近的信息。
20.根据权利要求17所述的计算机可读介质,其中,所述操作进一步包括响应于将所述第一语音查询从所述计算设备传送到远程计算系统以使所述远程计算系统存储所述物理对象为了存储而被留在所述第一语音查询中识别的位置处的指示,使得所述远程计算系统:
在数据结构中生成表示所述物理对象的第一节点;
在所述数据结构中生成表示所述用户为了存储而将所述物理对象留在的位置的第二节点;以及
在所述数据结构中链接所述第一节点和所述第二节点以表示所述物理对象为了存储而被留在所述第一语音查询中识别的位置的指示。
CN202010348783.8A 2014-07-31 2015-06-17 保存并获取对象的位置 Active CN111666390B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010348783.8A CN111666390B (zh) 2014-07-31 2015-06-17 保存并获取对象的位置

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201462031186P 2014-07-31 2014-07-31
US62/031,186 2014-07-31
US14/620,246 2015-02-12
US14/620,246 US9875322B2 (en) 2014-07-31 2015-02-12 Saving and retrieving locations of objects
CN202010348783.8A CN111666390B (zh) 2014-07-31 2015-06-17 保存并获取对象的位置
CN201580035581.5A CN106663113B (zh) 2014-07-31 2015-06-17 保存并获取对象的位置
PCT/US2015/036165 WO2016018521A1 (en) 2014-07-31 2015-06-17 Saving and retrieving locations of objects

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201580035581.5A Division CN106663113B (zh) 2014-07-31 2015-06-17 保存并获取对象的位置

Publications (2)

Publication Number Publication Date
CN111666390A CN111666390A (zh) 2020-09-15
CN111666390B true CN111666390B (zh) 2024-04-23

Family

ID=55180282

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201580035581.5A Active CN106663113B (zh) 2014-07-31 2015-06-17 保存并获取对象的位置
CN202010348783.8A Active CN111666390B (zh) 2014-07-31 2015-06-17 保存并获取对象的位置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201580035581.5A Active CN106663113B (zh) 2014-07-31 2015-06-17 保存并获取对象的位置

Country Status (5)

Country Link
US (2) US9875322B2 (zh)
CN (2) CN106663113B (zh)
DE (1) DE112015003523T5 (zh)
GB (2) GB2545108B (zh)
WO (1) WO2016018521A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10304444B2 (en) * 2016-03-23 2019-05-28 Amazon Technologies, Inc. Fine-grained natural language understanding
US11562035B2 (en) * 2017-03-16 2023-01-24 Driftwood Capital, Llc Enhancement of electronic communications and documents with links to contextually relevant information
WO2018189031A1 (en) * 2017-04-14 2018-10-18 Philips Lighting Holding B.V. A positioning system for determining a location of an object
DE102018214552A1 (de) * 2018-08-28 2020-03-05 Bayerische Motoren Werke Aktiengesellschaft Akustische Rückmeldung bei Annäherung an Steck-/ Ablagestellen
US11914561B2 (en) 2020-03-03 2024-02-27 Rovi Guides, Inc. Systems and methods for interpreting natural language search queries using training data
US11594213B2 (en) 2020-03-03 2023-02-28 Rovi Guides, Inc. Systems and methods for interpreting natural language search queries
US11507572B2 (en) * 2020-09-30 2022-11-22 Rovi Guides, Inc. Systems and methods for interpreting natural language search queries

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6505191B1 (en) * 1998-07-24 2003-01-07 Jarg Corporation Distributed computer database system and method employing hypertext linkage analysis
CN102253945A (zh) * 2010-05-20 2011-11-23 盛乐信息技术(上海)有限公司 掌上物品管理器
CN103425658A (zh) * 2012-05-15 2013-12-04 阿里巴巴集团控股有限公司 商品信息的存储、搜索方法与移动终端和服务器

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6377296B1 (en) * 1999-01-28 2002-04-23 International Business Machines Corporation Virtual map system and method for tracking objects
US6317718B1 (en) * 1999-02-26 2001-11-13 Accenture Properties (2) B.V. System, method and article of manufacture for location-based filtering for shopping agent in the physical world
US7872669B2 (en) * 2004-01-22 2011-01-18 Massachusetts Institute Of Technology Photo-based mobile deixis system and related techniques
IL174107A0 (en) * 2006-02-01 2006-08-01 Grois Dan Method and system for advertising by means of a search engine over a data network
CN101136028B (zh) * 2006-07-10 2012-07-04 日电(中国)有限公司 基于自然语言的位置查询系统以及基于关键词的位置查询系统
US9318108B2 (en) * 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US8190643B2 (en) * 2008-05-23 2012-05-29 Nokia Corporation Apparatus, method and computer program product for processing resource description framework statements
US8255225B2 (en) 2008-08-07 2012-08-28 Vocollect Healthcare Systems, Inc. Voice assistant system
KR101545582B1 (ko) * 2008-10-29 2015-08-19 엘지전자 주식회사 단말기 및 그 제어 방법
KR20110136843A (ko) * 2009-03-13 2011-12-21 인벤션 머신 코포레이션 지식 검색을 위한 시스템 및 방법
WO2011047041A1 (en) * 2009-10-13 2011-04-21 Phone Through, Inc. Apparatuses, methods, and computer program products enabling association of related product data and execution of transaction
US9218530B2 (en) * 2010-11-04 2015-12-22 Digimarc Corporation Smartphone-based methods and systems
US8396888B2 (en) * 2009-12-04 2013-03-12 Google Inc. Location-based searching using a search area that corresponds to a geographical location of a computing device
JP5781353B2 (ja) * 2011-03-31 2015-09-24 株式会社ソニー・コンピュータエンタテインメント 情報処理装置、情報処理方法、および位置情報のデータ構造
US9286182B2 (en) * 2011-06-17 2016-03-15 Microsoft Technology Licensing, Llc Virtual machine snapshotting and analysis
US9059802B2 (en) * 2011-11-09 2015-06-16 At&T Mobility Ii Llc Received signal strength indicator snapshot analysis
US8687104B2 (en) * 2012-03-27 2014-04-01 Amazon Technologies, Inc. User-guided object identification
US9374359B2 (en) * 2012-05-23 2016-06-21 Red Hat, Inc. Generating a data display in view of user activities
US8914393B2 (en) * 2012-11-26 2014-12-16 Facebook, Inc. Search results using density-based map tiles
US9367625B2 (en) * 2013-05-03 2016-06-14 Facebook, Inc. Search query interactions on online social networks
US9367880B2 (en) * 2013-05-03 2016-06-14 Facebook, Inc. Search intent for queries on online social networks
US9513778B1 (en) * 2013-06-27 2016-12-06 Ca, Inc. Defining objects using an object-relationship map
US9317614B2 (en) * 2013-07-30 2016-04-19 Facebook, Inc. Static rankings for search queries on online social networks
US9514230B2 (en) * 2013-07-30 2016-12-06 Facebook, Inc. Rewriting search queries on online social networks
US9269012B2 (en) * 2013-08-22 2016-02-23 Amazon Technologies, Inc. Multi-tracker object tracking
US9465811B2 (en) * 2014-03-20 2016-10-11 Facebook, Inc. Polygon-based indexing of places
US9646055B2 (en) * 2014-04-03 2017-05-09 Facebook, Inc. Blending search results on online social networks
US9740895B1 (en) * 2014-05-30 2017-08-22 Google Inc. Method and system for identifying and tracking tagged, physical objects

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6505191B1 (en) * 1998-07-24 2003-01-07 Jarg Corporation Distributed computer database system and method employing hypertext linkage analysis
CN102253945A (zh) * 2010-05-20 2011-11-23 盛乐信息技术(上海)有限公司 掌上物品管理器
CN103425658A (zh) * 2012-05-15 2013-12-04 阿里巴巴集团控股有限公司 商品信息的存储、搜索方法与移动终端和服务器

Also Published As

Publication number Publication date
US10783189B2 (en) 2020-09-22
US9875322B2 (en) 2018-01-23
WO2016018521A1 (en) 2016-02-04
CN106663113B (zh) 2020-05-08
GB2545108A (en) 2017-06-07
GB202112426D0 (en) 2021-10-13
GB2595799B (en) 2022-03-30
CN111666390A (zh) 2020-09-15
GB2545108B (en) 2021-10-13
US20160034600A1 (en) 2016-02-04
CN106663113A (zh) 2017-05-10
GB2595799A (en) 2021-12-08
GB201621651D0 (en) 2017-02-01
DE112015003523T5 (de) 2017-06-22
US20180113953A1 (en) 2018-04-26

Similar Documents

Publication Publication Date Title
CN111666390B (zh) 保存并获取对象的位置
US20190034040A1 (en) Method for extracting salient dialog usage from live data
US11630955B2 (en) Contextual document recall
US8886589B2 (en) Providing knowledge content to users
CN107103016B (zh) 基于关键词表示使图像与内容匹配的方法
EP2570974B1 (en) Automatic crowd sourcing for machine learning in information extraction
US9946757B2 (en) Method and system for capturing and exploiting user intent in a conversational interaction based information retrieval system
US9928296B2 (en) Search lexicon expansion
US20100312782A1 (en) Presenting search results according to query domains
US20140201229A1 (en) Providing display suggestions
CN110325987B (zh) 语境语音驱动深度书签
CN106462640A (zh) 对多媒体内容进行的场境搜索
US20230169134A1 (en) Annotation and retrieval of personal bookmarks
US20160299911A1 (en) Processing search queries and generating a search result page including search object related information
US8538946B1 (en) Creating model or list to identify queries
WO2022051000A1 (en) Generating structured data for rich experiences from unstructured data streams
US20160335358A1 (en) Processing search queries and generating a search result page including search object related information
CN116888661A (zh) 用于辅助系统的包括非拉丁或不可解析内容项的通信内容的读出
US10691702B1 (en) Generating ranked lists of entities
US20160335365A1 (en) Processing search queries and generating a search result page including search object information
CN110399468A (zh) 一种数据处理方法、装置和用于数据处理的装置
US10726024B2 (en) Search of NAS data through association of errors
US20160335314A1 (en) Method of and a system for determining linked objects
TW202240461A (zh) 使用輔助系統的語音和手勢輸入之文字編輯
CN116897353A (zh) 用于辅助系统的使用语音和手势输入的文本编辑

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant