结构化搜索查询的自然语言渲染的制作方法

文档序号:15666018发布日期:2018-10-16 17:03阅读:220来源:国知局
结构化搜索查询的自然语言渲染的制作方法

本公开整体涉及社交图谱以及对社交网络环境中的对象执行搜索。



背景技术:

可包括社交网络网站的社交网络系统可以使其用户(诸如,个人或者组织)能够与其交互并且通过社交网络系统彼此交互。社交网络系统可利用来自用户的输入创建与该用户相关联的用户简档并且将用户简档存储在社交网络系统中。用户简档可包括用户的人口统计信息、通信信道信息、以及个人兴趣信息。社交网络系统还可利用来自用户的输入创建并且存储用户与社交网络系统中的其他用户的关系记录以及提供便于两个用户或者多个用户之间的社交交互的服务(例如,留言板、照片分享、事件组织、消息、游戏或者广告)。

社交网络系统可通过一个或者多个网络将与其服务有关的内容或者消息发送至用户的移动或者其他计算设备。用户还可将软件应用安装在用户的移动或者其他计算设备上,以用于访问该用户的用户简档和社交网络系统内的其他数据。社交网络系统可生成显示给用户的一组个性化内容对象,诸如连接至该用户的其他用户的累积故事的新鲜事。

社交图谱分析在由节点和边构成的网络理论方面考察社交关系。节点表示网络中的各个动作者,并且边表示动作者之间的关系。通常,所生成的基于图谱的结构非常复杂。可能存在多种类型的节点和用于连接节点的多种类型的边。就其最简单的形式而言,社交图谱是所研究的所有节点之间的所有相关边的布局图。



技术实现要素:

在具体实施方式中,响应于接收自用户的文本查询,社交网络系统可生成包括对应于所识别的社交图谱元的查询令牌的结构化查询。通过响应于用户的文本查询而提供建议的结构化查询,社交网络系统可基于其社交图谱属性及其与各个社交图谱元的关系为在线社交网络中的用户提供搜索社交图谱中所表示的元的有力方式。

在具体实施方式中,社交网络系统可从用户接收非结构化的文本查询。作为响应,社交网络系统可访问社交图谱然后对文本查询进行解析,以识别对应于来自文本查询中的n元语法的社交图谱元。然后,社交网络系统可访问语法模型,诸如与上下文无关的语法模型。所识别的社交图谱元可被用作语法模型的语法中的终端令牌(“查询令牌”)。可以选择可利用所有所识别的查询令牌的任何语法。通过首先生成对应于文本查询的语义树、随后分析语法森林从而找到与语义树匹配的子树来识别这些语法。所选择的语法随后可被用于生成包括引用所识别的社交图谱元的查询令牌的自然语言结构化查询。该结构化查询随后可被发送和显示给用户,其中,用户随后可选择适当的查询以搜索希望的内容。

在具体实施方式中,响应于结构化查询,社交网络系统可以生成对应于结构化查询的一个或多个搜索结果。这些搜索结果可以作为搜索结果页面的一部分发送至查询用户。每个搜索结果可以包括一个或多个代码片段,在此,代码片段可以是关于对应于搜索结果的社交图谱实体的情境信息。例如,代码片段可以是来自与节点相关联的简档页面的信息。每个搜索结果也可以包括提供针对搜索结果的社交图谱信息的至少一个代码片段。这些代码片段可以包含对来自用于生成搜索结果的结构化查询的查询令牌的引用。

在具体实施方式中,响应于结构化查询,社交网络系统可以生成针对结构化查询的一个或多个查询变形。每个查询变形可以包括对来自社交图谱的修改的节点或修改的边的引用,该引用可以用于增加或替换结构化查询中的查询令牌。查询变形可以显示在搜索结果页面上,允许用户观看搜索结果然后选择一个或多个查询变形从而细化结构化查询或以结构化查询为中心并且生成新搜索结果。在利用具体查询变形修改结构化查询之后,可以使用合适的语法生成包括对用于查询变形的社交图谱元的引用的新自然语言结构化查询。社交网络系统还可以生成可以显示在搜索结果页面上的替代的结构化查询。这些替代的结构化查询包括建议的查询、加宽的查询和消歧查询。

根据本发明的实施方式被具体公开在涉及方法、存储介质和系统的所附权利要求中,其中,在一个权利要求类型(例如,方法)中提到的任何特征也可在另一个权利要求类型(例如,系统)中要求保护。

在根据本发明的实施方式中,一种方法包括,有计算设备:

访问包括多个节点和连接节点的多条边的社交图谱,两个节点之间的每条边表示两个节点之间的单一隔离度,该节点包括:

第一节点,对应于与在线社交网络相关联的第一用户;以及

多个第二节点,各自对应于与在线社交网络相关联的概念或者第二用户;

从第一用户接收非结构化文本查询;

识别一条或多条边或者一个或多个第二节点,每条所识别的边或者每个所识别的第二节点对应于非结构化文本查询的至少一部分;

访问包括多种语法的与上下文无关的语法模型,每种语法包括一个或者多个非终端令牌和一个或者多个查询令牌;

识别多种语法中的一个或者多个查询令牌,每个所识别的查询令牌对应于所识别的第二节点或者所识别的边中的一个;

选择一种或多种语法,每种所选择的语法包括对应于每一个所识别的边和所识别的第二节点的至少一个查询令牌;以及

生成一项或者多项结构化查询,每项结构化查询对应于所选择的语法,其中,每项结构化查询基于通过对应的所选择的语法生成的串,每项结构化查询包括对应于每一个所识别的边和所识别的第二节点的至少一个查询令牌。

具体地,多种语法是被组织为可包括多个非终端令牌和多个查询令牌的有序树的语法森林,每种语法是经由非终端令牌与一种或多种其他语法邻接的有序子树。

具体地,选择一种或多种语法可包括:

对于每个所识别的查询令牌,遍历语法森林以识别与一个或多个其他所识别的查询令牌的遍历相交的一个或多个非终端令牌;以及

选择与所识别的非终端令牌邻接的语义树中的一种或多种语法。

具体地,选择一种或多种语法可包括:

生成对应于非结构化文本查询的语义树,语义树包括相交令牌和一个或多个查询令牌,每个查询令牌通过零个或多个非终端令牌连接至相交;

分析语法森林以识别基本上与语义树匹配的一组或多组非终端令牌和查询令牌,每组具有对应于相交令牌的非终端令牌;以及

选择语法森林中的与对应于相交令牌的非终端令牌邻接的一种或多种语法。

基于非结构化文本查询可生成查询命令。

具体地,生成一项或多项结构化查询可包括:

对于每种选择的语法,基于所选择的语法生成自然语言串,其中,自然语言串包括一个或多个所识别的查询令牌;以及

对于每个自然语言串,基于自然语言串渲染结构化查询,其中,结构化查询包括对每一个所识别的与识别的查询令牌对应的第二节点或的边的引用。

非结构化文本查询可包括一种或者多种n元语法,并且其中,每一个所识别的边或者所识别的节点对应于n元语法中的至少一种。

每种n元语法可包括由第一用户输入的一个或者多个文本字符,或

来自文本查询的n项连续序列。

识别一条或多条边或一个或多个第二节点可包括:

针对每种n元语法确定n元语法对应于边或者第二节点的分数;

选择具有比边阈值分数更大的分数的一条或者多条边,每条所识别的边对应于n元语法的至少一种;以及

选择具有比节点阈值分数更大的分数的一个或者多个第二节点,每个所识别的第二节点连接到至少一条所识别的边,每个所识别的第二节点对应于n元语法的至少一种。

针对每种n元语法的分数可以是n元语法对应于边或者第二节点的概率。

在一个实施方式中,该方法进一步包括:

确定针对每种所选择的语法的分数;并且

其中,生成一项或多项结构化查询包括生成对应于具有比语法阈值分数更大的分数的每种所选择的语法的一项或多项结构化查询。

具体地,基于第一节点与对应于语法的查询令牌的所识别的第二节点之间的隔离度确定针对每种语法的分数。

具体地,基于对应于语法的查询令牌的所识别的边确定针对每种语法的分数。

具体地,基于连接至对应于语法的查询令牌的所识别的第二节点的所识别的边的数量确定针对每种语法的分数。

具体地,基于与第一用户相关联的搜索历史确定针对每种语法的分数。

在一个实施方式中,该方法进一步包括:将一项或多项结构化查询发送至第一用户。

在也可要求保护的本发明的另一实施方式中,一个或多个计算机可读非易失性存储介质实施软件,当软件被执行时用以执行:

访问包括多个节点和连接节点的多条边的社交图谱,两个节点之间的每条边表示两个节点之间的单一隔离度,节点包括:

第一节点,对应于与在线社交网络相关联的第一用户;以及

多个第二节点,各自对应于与在线社交网络相关联的概念或者第二用户;

从第一用户接收非结构化文本查询;

识别一条或多条边或者一个或多个第二节点,每条所识别的边或者每个所识别的第二节点对应于非结构化文本查询的至少一部分;

访问包括多种语法的与上下文无关的语法模型,每种语法包括一个或者多个非终端令牌和一个或者多个查询令牌;

识别多种语法中的一个或者多个查询令牌,每个所识别的查询令牌对应于所识别的第二节点或者所识别的边中的一个;

选择一种或多种语法,每种所选择的语法包括对应于所识别的边和所识别的第二节点中的每一个的至少一个查询令牌;以及

生成一项或者多项结构化查询,每项结构化查询对应于所选择的语法,其中,每项结构化查询基于通过对应的所选择的语法生成的串,每项结构化查询包括对应于所识别的边和所识别的第二节点中的每一个的至少一个查询令牌。

在也可要求保护的本发明的另一实施方式中,一种系统包括:一个或多个处理器;和耦接至处理器的存储器,存储器包括由处理器可执行的指令,当执行指令时处理器可操作为:

访问包括多个节点和连接节点的多条边的社交图谱,两个节点之间的每条边表示两个节点之间的单一隔离度,节点包括:

第一节点,对应于与在线社交网络相关联的第一用户;以及

多个第二节点,各自对应于与在线社交网络相关联的概念或者第二用户;

从第一用户接收非结构化文本查询;

识别一条或多条边或者一个或多个第二节点,每条所识别的边或者每个所识别的第二节点对应于非结构化文本查询的至少一部分;

访问包括多种语法的与上下文无关的语法模型,每种语法包括一个或者多个非终端令牌和一个或者多个查询令牌;

识别多种语法中的一个或者多个查询令牌,每个所识别的查询令牌对应于所识别的第二节点或者所识别的边中的一个;

选择一种或多种语法,每种所选择的语法包括对应于所识别的边和所识别的第二节点中的每一个的至少一个查询令牌;以及

生成一项或者多项结构化查询,每项结构化查询对应于所选择的语法,其中,每项结构化查询基于通过对应的所选择的语法生成的串,每项结构化查询包括对应于所识别的边和所识别的第二节点中的每一个的至少一个查询令牌。

在本发明的另一实施方式中,一个或多个计算机可读非易失性存储介质实施软件,当软件被执行时用以执行根据本发明或以上提及的实施方式的任一个所述的方法。

在本发明的另一实施方式中,一种系统包括:一个或多个处理器;和耦接至处理器的存储器,存储器包括由处理器可执行的指令,当执行指令时处理器可操作为执行根据本发明或上述实施方式的任一个所述的方法。

附图说明

图1示出与社交网络系统相关联的示例性网络环境。

图2示出示例性社交图谱。

图3示出在线社交网络的示例性网页。

图4A至图4B示出社交网络的示例性查询。

图5A示出示例性语义树。

图5B示出示例性语法森林。

图6示出用于使用与上下文无关的语法模型生成自然语言结构化搜索查询的示例性方法。

图7A至图7G示出了示例性搜索结果页面。

图8示出用于生成搜索结果和代码片段的示例性方法。

图9示出用于修改结构化搜索查询的示例性方法。

图10示出示例性计算机系统。

具体实施方式

系统概述

图1示出了与社交网络系统相关联的示例性网络环境100。网络环境100包括通过网络110连接至彼此的客户端系统130、社交网络系统160以及第三方系统170。尽管图1示出了客户端系统130、社交网络系统160、第三方系统170以及网络110的具体布置,然而本公开考虑客户端系统130、社交网络系统160、第三方系统170以及网络110的任意合适布置。作为实施例但并不作为限制,客户端系统130、社交网络系统160以及第三方系统170中的两者或者更多者可旁路过网络110而彼此直接连接。作为另一实施例,客户端系统130、社交网络系统160以及第三方系统170中的两者或者更多者可以物理方式或者逻辑方式全部或者局部地彼此共置。而且,尽管图1示出了具体数目的客户端系统130、社交网络系统160、第三方系统170以及网络110,然而本公开也考虑任意合适数目的客户端系统130、社交网络系统160、第三方系统170以及网络110。作为实施例但并不作为限制,网络环境100可包括多个客户端系统130、多个社交网络系统160、多个第三方系统170以及多个网络110。

本公开考虑任意合适的网络110。作为实施例但并不作为限制,网络110的一个或者多个部分可包括自组网、内联网、外联网、虚拟专用网(VPN)、局域网(LAN)、无线LAN(WLAN)、广域网(WAN)、无线WAN(WWAN)、城域网(MAN)、因特网的一部分、公共交换电话网(PSTN)的一部分、蜂窝电话网或者这些中的两种或者更多种的组合。网络110可包括一个或者多个网络110。

链路150可将客户端系统130、社交网络系统160以及第三方系统170连接至通信网络110或者彼此连接。本公开考虑任意合适的链路150。在具体实施方式中,一条或者多条链路150包括一条或者多条有线(诸如,数字用户线路(DSL)或者有线电缆数据服务发送规范(DOCSIS)等)、无线(诸如,Wi-Fi或者微波存取全球互通(WiMAX)等)、或者光纤(诸如,同步光学网络(SONET)或者同步数字体系(SDH)等)链路。在具体实施方式中,一条或者多条链路150各自包括自组网、内联网、外联网、VPN、LAN、WLAN、WAN、WWAN、MAN、因特网的一部分、PSTN的一部分、基于蜂窝技术的网络、基于卫星通信技术的网络、另一链路150或者链路150中的两条或者更多条的组合。网络环境100中的链路150不需要必须相同。就一个或者多个方面而言,一条或者多条第一链路150可以不同于一条或者多条第二链路150。

在具体实施方式中,客户端系统130可以是包括硬件、软件或者嵌入式逻辑部件、或者该等部件的两种或者更多种的组合并且能够完成由客户端系统130实现或者支持的合适功能的电子设备。作为实施例但并不作为限制,客户端系统130可包括诸如桌面型计算机、笔记本或者膝上型计算机、笔记本、平板电脑等计算机系统、电子书阅读器、GPS设备、照相机、个人数字助理(PDA)、手持式电子设备、蜂窝电话、智能手机、其他合适的电子设备或者其任意合适组合。本公开考虑任意合适的客户端系统130。客户端系统130能够使客户端系统130处的网络用户访问网络110。客户端系统130能够使其用户与其他客户端系统130处的其他用户通信。

在具体实施方式中,客户端系统130可包括诸如微软IE浏览器(MICROSOFT INTERNET EXPLORER)、谷歌浏览器(GOOGLE CHROME)或者火狐浏览器(MOZILLA FIREFOX)等网络浏览器132,并且可具有一个或者多个附加件、插件或者诸如工具栏或雅虎工具栏等其他扩展。客户端系统130处的用户可输入统一资源定位符(URL)或者将网络浏览器132导向至具体服务器(诸如,服务器162或者与第三方系统170相关联的服务器)的其他地址,并且网络浏览器132可生成超文本发送协议(HTTP)请求并且将HTTP请求通信至服务器。服务器可接受HTTP请求并且响应HTTP请求而将一个或者多个超文本记号语言(HTML)文件通信至客户端系统130。客户端系统130可基于来自服务器的HTML文件对用于呈现给用户的网页进行渲染。本公开考虑任意合适的网页文件。作为实施例但并不作为限制,可根据具体需要从HTML文件、可扩展超文本记号语言(XHTML)文件或者可扩展记号语言(XML)文件渲染网页。例如但并不限于,这些页面还可执行诸如以JAVASCRIPT、JAVA、MICROSOFT SILVERLIGHT、记号语言的组合编写的脚本以及诸如AJAX(异步JAVASCRIPT和XML)等脚本。此处,所引用的网页包括一个或者多个对应的网页文件(浏览器可使用网页文件对网页进行渲染),且反之亦然,视情况而定。

在具体实施方式中,社交网络系统160可以是托管在线社交网络的网络可寻址计算系统。例如,社交网络系统160可生成、存储、接收并且发送诸如用户简档数据、概念简档数据、社交图谱信息等社交网络数据或者与在线社交网络有关的其他合适数据。网络环境100中的其他部件可直接或者经由网络110访问社交网络系统160。在具体实施方式中,社交网络系统160可包括一个或者多个服务器162。每个服务器162可以是单式服务器或者跨多台计算机或多个数据中心的分布式服务器。例如但不限于,服务器162可以为多种类型,诸如,网络服务器、新闻服务器、邮件服务器、消息服务器、广告服务器、文件服务器、应用服务器、交换服务器、数据库服务器、代理服务器、适用于执行此处所描述的功能或者过程的另一服务器、或者其任意组合等。在具体实施方式中,每个服务器162可包括硬件、软件或者嵌入式逻辑部件、或者该等部件中的两种或者更多种的组合,以用于完成由服务器162实现或者支持的适当功能。在具体实施方式中,社交网络系统164可包括一个或者多个数据存储器164。可以使用数据存储器164存储各种类型的信息。在具体实施方式中,可以根据特定数据结构组织存储在数据存储器164中的信息。在具体实施方式中,每个数据存储器164可以是相关数据库。具体实施方式可提供能够使客户端系统130、社交网络系统160或者第三方系统170管理、检索、修改、添加或者删除存储在数据存储器164中的信息的接口。

在具体实施方式中,社交网络系统160可将一个或者多个社交图谱存储在一个或者多个数据存储器164中。在具体实施方式中,社交图谱可包括多个节点(可包括多个用户节点(每个对应于具体用户))或者多个概念节点(每个对应于具体概念)和连接节点的多条边。社交网络系统160可为在线社交网络中的用户提供与其他用户通信和交互的能力。在具体实施方式中,用户可经由社交网络系统160加入在线社交网络,且然后添加社交网络系统160中用户希望与其连接的多个其他用户的连接(即,关系)。此处,术语“朋友”可指社交网络系统160中用户已经由社交网络系统160与其形成连接、关联或关系的任何其他用户。

在具体实施方式中,社交网络系统160可为用户提供对由社交网络系统160支持的各种类型的项或者对象施加动作的能力。作为实施例但并不作为限制,项和对象可包括社交网络系统160中的用户所属的群或者社交网络、用户可能感兴趣的事件或者日历条目、用户可以使用的计算机类应用、允许用户经由服务购买或者出售物品的交易、用户可执行的广告交互或者其他合适的项或者对象。用户可与社交网络系统160中能够表示的任何事物交互或者通过第三方系统170的外部系统与任何事物交互,第三方系统170的外部系统与社交网络系统160分离并且经由网络110耦接至社交网络系统160。

在具体实施方式中,社交网络系统160能够链接各个实体。作为实施例但并不作为限制,社交网络系统160可以使用户能够彼此交互以及从第三方系统170或者其他实体接收内容,或者允许用户通过应用程序编程接口(API)或者其他通信信道与这些实体交互。

在具体实施方式中,第三方系统170可包括一种或者多种类型的服务器、一个或者多个数据存储器、一个或者多个接口,其中包括但不限于API、一个或者多个网络服务、一种或者多种内容源、一个或者多个网络或者(例如,服务器可与其通信的)任何其他合适部件。可由与操作社交网络系统160的实体不同的实体操作第三方系统170。然而,在具体实施方式中,社交网络系统160和第三方系统170可彼此结合运行,以将社交网络服务提供给社交网络系统160或者第三方系统170中的用户。就这种意义而言,社交网络系统160可提供用于使诸如第三方系统170等其他系统将社交网络服务和功能提供给因特网上的用户的平台或者骨干。

在具体实施方式中,第三方系统170可包括第三方内容对象提供商。第三方内容对象提供商可包括可被通信至客户端系统130的内容对象的一个或者多个源。作为实施例但并不作为限制,内容对象可包括关于用户感兴趣的事物或者活动的信息,诸如,电影放映时间、电影评论、餐馆评论、餐馆菜单、产品信息及评论或者其他合适的信息等。作为另一实施例但并不作为限制,内容对象可包括诸如优待券、打折票、礼品券或者其他合适的激励型对象等的激励型内容对象。

在具体实施方式中,社交网络系统160还包括用户生成内容对象,该用户生成内容对象可增强用户与社交网络系统160的交互。用户生成内容可包括用户可添加、上传、发送或者“发布”到社交网络系统160上的任何事物。作为实施例但并不作为限制,用户从客户端系统130将帖子通信至社交网络系统160。帖子可包括诸如状态更新或者其他文本数据、位置信息、照片、视频、链接、音乐或者其他类似数据或者媒体等的数据。第三方还可通过诸如新鲜事或者流等“通信信道”将内容添加到社交网络系统160中。

在具体实施方式中,社交网络系统160可包括各种服务器、子系统、程序、模块、日志以及数据存储器。在具体实施方式中,社交网络系统160可包括下列中的一种或者多种:网络服务器、动作记录器、API请求服务器、相关性及排序引擎、内容对象分类器、通知控制器、动作日志、第三方内容对象曝光日志、推理模块、授权/隐私服务器、搜索模块、广告目标模块、用户界面模块、用户简档存储器、连接存储器、第三方内容存储器或者位置存储器。社交网络系统160还可包括诸如网络接口、安全机制、负载平衡器、失效转移服务器、管理和网络操作控制台、其他合适的部件或者其任何合适的组合等的合适的部件。在具体实施方式中,社交网络系统160可包括用于存储用户简档的一个或者多个用户简档存储器。例如,用户简档可包括传记信息、人口统计信息、行为信息、社交信息或者其他类型的描述性信息,诸如工作经历、教育背景、嗜好或者喜好、兴趣、亲缘关系、或者位置等。兴趣信息可包括与一个或者多个类别有关的兴趣。类别可以为一般类别或者特殊类别。作为实施例但并不作为限制,如果用户“喜欢”关于鞋子品牌的物品,则该类别可以是该品牌,或者是“鞋”或“服装”的一般类别。连接存储器可用于存储关于用户的连接信息。连接信息可指示具有相似或者共同工作经历、群成员关系、嗜好、教育背景或者以任何方式与共同属性有关或者享有共同属性的用户。连接信息还可包括不同用户与内容(内部和外部)之间的用户定义连接。网络服务器可用于经由网络110将社交网络系统160链接至一个或多个客户端系统130或者一个或多个第三方系统170。网络服务器可包括用于接收消息并且在社交网络系统160与一个或者多个客户端系统130之间路由消息的邮件服务器或者其他消息功能。API请求服务器可允许第三方系统170通过调用一个或者多个API访问社交网络系统160中的信息。动作记录器可用于从网络服务器接收关于用户在社交网络系统160内或者外的动作的通信。第三方内容对象日志可结合动作日志保持用户暴露于第三方内容对象。通知控制器可将关于内容对象的信息提供给客户端系统130。信息可作为通知被推送至客户端系统130,或者响应于从客户端系统130接收的请求从客户端系统130拉拽信息。授权服务器可用于强制实施社交网络系统160中的用户的一个或者多个隐私设置。用户的隐私设置确定分享与用户相关联的具体信息的程度。例如,授权服务器可允许用户诸如通过设置适当的隐私设置选择加入或者选择退出其通过社交网络系统160记录的动作或者其与其他系统(例如,第三方系统170)分享的动作。第三方内容对象存储器可用于存储从诸如第三方系统170等第三方接收的内容对象。位置存储器可用于存储从与用户相关联的客户端系统130接收的位置信息。广告定价模块可将社交信息、当前时间、位置信息或者其他合适的信息组合,从而以通知形式将相关广告提供给用户。

社交图谱

图2示出了示例性社交图谱200。在具体实施方式中,社交网络系统160可将一个或者多个社交图谱200存储在一个或者多个数据存储器中。在具体实施方式中,社交图谱200可包括多个节点(可包括多个用户节点202或者多个概念节点204)和连接节点的多条边206。出于教导之目的,以二维可视图表示法示出了图2中所示的示例性社交图谱200。在具体实施方式中,社交网络系统160、客户端系统130或者第三方系统170可访问社交图谱200和相关社交图谱信息用于适当应用。例如,社交图谱200中的节点和边可作为数据对象存储在数据存储器(诸如,社交图谱数据库)中。该数据存储器可包括社交图谱200中的节点或者边的一个或者多个可搜索或者可查询的索引。

在具体实施方式中,用户节点202可对应于社交网络系统160中的用户。作为实施例但并不作为限制,用户可以是与社交网络系统160交互或通信或者通过社交网络系统160交互或通信的个体(人类用户)、实体(例如,企业、公司或者第三方应用)或者(例如,个体或者实体)群。在具体实施方式中,当用户向社交网络系统160注册账户时,社交网络系统160可创建对应于用户的用户节点202并且将用户节点202存储在一个或者多个数据存储器中。此处所描述的用户和用户节点202可指注册用户和与注册用户相关联的用户节点202,视情况而定。此外或者可替代地,此处所描述的用户和用户节点202可指未注册至社交网络系统160的用户,视情况而定。在具体实施方式中,用户节点202可以与由用户提供的信息或者通过包括社交网络系统160的各个系统收集的信息相关联。作为实施例但并不作为限制,用户可提供其姓名、简档图片、联系人信息、出生日期、性别、婚姻状况、家庭状况、职业、教育背景、喜好、兴趣或者其他人口统计信息。在具体实施方式中,用户节点202可以与对应于与用户相关联的信息的一个或者多个数据对象相关联。在具体实施方式中,用户节点202可对应于一个或者多个网页。

在具体实施方式中,概念节点204可对应于概念。作为实施例但并不作为限制,概念可对应于地点(诸如,电影院、餐馆、地标或城市);网站(诸如,与社交网络系统160相关联的网站或者与网络应用服务器相关联的第三方网站);实体(诸如,人、公司、群、体育团、或者名人等);位于社交网络系统160内或者位于诸如网络应用服务器等外部服务器上的资源(诸如,音频文件、视频文件、数码照片、文本文件、结构化文档或者应用等);不动产或者知识产权(诸如,雕刻、绘画、电影、游戏、歌曲、理念、照片或者书写作品等);游戏;活动、理念或理论;另一合适的概念;或者该等概念中的两种或者更多种。概念节点204可以与由用户提供的概念信息相关联或者与通过包括社交网络系统160的各个系统收集的信息相关联。作为实施例但并不作为限制,概念信息可包括名称或者标题;一个或者多个图像(例如,书籍封面页图像);位置(例如,地址或者地理位置);网站(可与URL相关联);联系人信息(例如,电话号码或者电子邮件地址);其他合适的概念信息;或者这种信息的任何合适组合。在具体实施方式中,概念节点204可以与对应于与概念节点204相关联的信息的一个或者多个数据对象相关联。在具体实施方式中,概念节点204可对应于一个或者多个网页。

在具体实施方式中,社交图谱200中的节点可表示网页(可被称之为“简档页面”)或者网页可表示社交图谱200中的节点。简档页面可被托管在社交网络系统160中或者社交网络系统160可访问简档页面。简档页面还可托管在与第三方服务器170相关联的第三方网站中。作为实施例但并不作为限制,对应于具体外部网页的简档页面可以是该具体的外部网页,并且简档页面可对应于具体的概念节点204。其他用户的所有或者选择子集可查看简档页面。作为实施例但并不作为限制,用户节点202可具有对应的用户简档页面,其中,对应用户可添加内容、发布声明或者以其他方式表达其自身。作为另一实施例但并不作为限制,概念节点204可具有对应的概念简档页面,其中,一个或者多个用户可具体针对对应于概念节点204的概念添加内容、发布声明或者表达其自身。

在具体实施方式中,概念节点204可表示由第三方系统170托管的第三方网页或者资源。第三方网页或者资源除了其他元素还可包括内容、可选择图标或者其他图标、或者表示动作或行动的其他可相互作用对象(例如,以JavaScript、AJAX、或者PHP码实现)。作为实施例但并不作为限制,第三方网页可包括诸如“赞”、“签到”、“吃”、“推荐”或者另一合适的动作或行动的可选择图标。查看第三方网页的用户可通过选择图标中的一个(例如,“吃”)执行动作,使客户端系统130将指示用户动作的消息发送至社交网络系统160。响应于该消息,社交网络系统160可在对应于用户的用户节点202与对应于第三方网页或者资源的概念节点204之间创建边(例如,“吃”边)并且将边206存储在一个或者多个数据存储器中。

在具体实施方式中,社交图谱200中的一对节点可以通过一条或者多条边206彼此连接。连接一对节点的边206可表示该对节点之间的关系。在具体实施方式中,边206可包括或者表示一个或者多个数据对象或者对应于一对节点之间的关系的属性。作为实施例但并不作为限制,第一用户可指示第二用户为第一用户的“朋友”。响应于该指示,社交网络系统160可向第二用户发送“朋友请求”。如果第二用户确认“朋友请求”,则社交网络系统160可在社交图谱200中创建将第一用户的用户节点202连接至第二用户的用户节点202的边206,并且将边206作为社交图谱信息存储在一个或者多个数据存储器24中。在图2的实施例中,社交图谱200包括指示用户“A”与用户“B”的用户节点202之间的朋友关系的边206以及指示用户“C”与用户“B”的用户节点202之间的朋友关系的边。尽管本公开描述或者示出了具有连接具体用户节点202的具体属性的具体边206,然而本公开考虑具有连接用户节点202的任何合适属性的任何合适的边206。作为实施例但并不作为限制,边206可表示朋友关系、家庭关系、业务或者雇佣关系、粉丝关系、伙伴关系、访问者关系、订阅用户关系、上级/下级关系、互惠关系、非互惠关系、另一合适类型的关系、或者该等关系中的两种或者更多种。而且,尽管本公开整体描述了连接的节点,然而本公开还描述了连接的用户或者概念。此处,对于连接的用户或者概念的引用可指对应于社交图谱200中通过一条或者多条边206连接的那些用户或者概念的节点,视情况而定。

在具体实施方式中,用户节点202与概念节点204之间的边206可表示由与用户节点202相关联的用户对与概念节点204相关联的概念执行的具体动作或者行动。作为实施例但并不作为限制,如图2所示,用户可“赞”、“参与”、“播放”、“收听”、“烹饪”、“就职于”或者“观看”概念,其中每个对应于边类型或者子类型。例如,对应于概念节点204的概念简档页面可包括可选择的“签到”图标(诸如,可点击的“签到”图标等)或者可选择的“添加到收藏夹”图标。同样,在用户点击这些图标之后,可响应于对应于相应动作的用户动作,社交网络系统160创建“收藏”边或者“签到”边。作为另一实施例但并不作为限制,用户(用户“C”)可使用具体应用(SPOTIFY,其是在线音乐应用)收听具体歌曲(“Imagine”)。在这种情况下,社交网络系统160可在对应于用户的用户节点202与对应于歌曲的概念节点204之间创建“收听”边206并且在对应于用户的用户节点202与对应于应用的概念节点204之间创建“使用”边(如图2所示),以指示用户收听该歌曲并且使用该应用。而且,社交网络系统160可在对应于歌曲与应用的概念节点204之间创建“播放”边206(如图2所示),以指示通过该具体应用播放该具体歌曲。在这种情况下,“播放”边206对应于通过外部应用(SPOTIFY)对外部音频文件(歌曲“Imagine”)执行的动作。尽管本公开描述了具有连接用户节点202和概念节点204的具体属性的具体边206,然而本公开考虑具有连接用户节点202和概念节点204的任何合适属性的任何合适边206。而且,尽管本公开描述了用户节点202与概念节点204之间的表示单一关系的边,然而本公开考虑用户节点202与概念节点204之间的表示一种或者多种关系的边。作为实施例但并不作为限制,边206可表示用户既喜欢具体概念又使用了该具体概念。可替代地,另一边206可表示用户节点202与概念节点204之间(如图2所示,用户“E”的用户节点202与“SPOTIFY”的概念节点204之间)的各种类型的关系(或者多种单一关系)。

在具体实施方式中,社交网络系统160可在社交图谱200中创建用户节点202与概念节点204之间的边206。作为实施例但并不作为限制,(诸如,通过使用由用户的客户端系统130托管的网络浏览器或者特殊目的应用)查看概念简档页面的用户可通过点击或者选择“赞”图标指示其喜欢由概念节点204表示的概念,点击或者选择“赞”图标可使用户的客户端系统130将指示用户喜欢与概念简档页面相关联的概念的消息发送给社交网络系统160。响应于该消息,社交网络系统160可在与用户相关联的用户节点202与概念节点204之间创建边206,如用户与概念节点204之间的“喜欢”边206所示。在具体实施方式中,社交网络系统160可将边206存储在一个或者多个数据存储器中。在具体实施方式中,可响应于具体的用户动作,由社交网络系统160自动形成边206。作为实施例但并不作为限制,如果第一用户上传图片、观看电影或者收听歌曲,则可在对应于第一用户的用户节点202与对应于这些概念的概念节点204之间形成边206。尽管本公开描述了以具体方式形成具体边206,然而本公开考虑以任意合适方式形成任何合适的边206。

广告

在具体实施方式中,广告可以是文本(可以是HTML链接),一个或多个图像(可以是HTML链接),一个或多个视频、音频,一个或多个ADOBE FLASH文件,这些的合适的组合,或者以在一个或多个网页上、一个或多个电子邮件中、或者关于用户请求的搜索结果上呈现的任何合适的数字格式的任何其他合适的广告。另外或者作为替代,广告可以是一个或多个被赞助的故事(例如,社交网络系统160上的新鲜事或者收报机)。赞助的故事可以是用户的社交动作(诸如“喜欢”一个页面、“喜欢”或评论页面上的帖子、RSVP与页面相关联的事件、对页面上贴出的问题进行投票、在一个地方签到、使用应用程序或玩游戏、或“喜欢”或分享网站),通过例如使社交动作呈现在用户简档页面或其他页面的预先确定的区域内、利用与广告商相关联的额外的信息呈现、弹出或另外突出强调在其他用户的新鲜事或者收报机内或另外推广广告商来推广该社交动作。广告商可以付费以使社交动作得到推广。

在具体实施方式中,可以请求广告用于显示在社交网络系统网页、第三方网页、或者其他页面内。广告可以显示在页面的专用部分中,诸如在页面的顶上的横幅区域、在页面的侧边的列中、在页面的GUI中、在弹出式窗口中、在下拉式菜单中、在页面的输入栏中、在页面的内容的顶上、或者关于页面的别处。另外或者作为替代,可以在应用程序内显示广告。广告可以显示在专用页面内,在用户可以访问页面或者利用应用程序之前,要求用户与广告交互或者观看广告。例如,用户可以通过网络浏览器观看广告。

用户可以任何合适的方式与广告交互。用户可以点击或另外选择广告。通过选择广告,用户(或者用户使用的浏览器或者其他应用程序)可以被引导至与广告相关联的页面。在与广告相关联的页面,用户可以采取另外的动作,诸如购买与广告相关联的产品或服务,接收与广告相关联的信息,或者订阅与广告相关联的时事通讯。可以通过选择广告的组件(类似“播放按钮”)来播放具有音频或者视频的广告。替代地,通过选择广告,社交网络系统160可以执行或者修改用户的特定的动作。作为实施例但并不作为限制,广告可以包括在搜索结果页面的搜索结果当中,其中赞助的内容超越非赞助的内容得到推广。作为另一实施例但并不作为限制,广告可以包括在所建议的搜索查询当中,其中,引用广告商或者其内容/产品的建议的查询可以超越非赞助查询推广。

广告可包括用户可以与其交互的社交网络系统功能。例如,广告可以使用户能够通过选择与背书相关联的图标或者链接来“赞”或认可广告。作为另一实例,广告可以使用户能够(例如,通过执行查询)搜索与广告商相关的内容。类似地,用户(例如,通过社交网络系统160)可以与另一用户分享广告或者(例如,通过社交网络系统160)RSVP与广告相关联的事件。此外或者替代地,广告可包括被引导至用户的社交网络系统上下文。例如,广告可以显示与在社交网络系统160内的用户的朋友有关的信息,该朋友户采取与广告主题相关联的动作。

提前键入处理

在具体实施方式中,一个或者多个客户端和/或后端(服务器端)处理可实现并且利用“提前键入”特征,该“提前键入”特征自动尝试使社交图谱元素(例如,用户节点202、概念节点204或边206)与用户当前在输入表框中输入的、结合由社交网络系统160可托管或者可访问的所请求网页(诸如,用户简档页面、概念简档页面、搜索结果网页或另一适宜的在线社交网络页面)渲染的信息相匹配。在具体实施方式中,当用户输入文本以发布声明时,提前键入特征可尝试使在声明中输入的文本字符串与对应于用户、概念或边以及它们社交图谱200中的对应元素的字符串(例如,名称、描述)相匹配。在具体实施方式中,当找出匹配时,提前键入特征可利用对现有社交图谱元素的社交图谱元素(诸如,节点名称/类型、节点ID、边名称/类型或者另一合适的引用或者标识符等)的引用来自动填充该表框。

在具体实施方式中,当用户将文本键入或者以其他方式输入到用于在用户的简档页面、主页或者其他页面的各个部分中添加内容或者发布声明的表框中时,提前键入处理可与在社交网络系统160处(或者内)(例如,在服务器162内)执行的一个或者多个前端(客户端)和/后端(服务器端)提前键入处理(以下简称为“提前键入处理”)结合一起运行,以交互式地并且几乎即时(对用户看似如此)地尝试使用对应于现有社交图谱元素的名称的一个或者多个术语、或者与现有社交图谱元素相关联的术语、被确定为与用户输入文本字符时所输入的文本字符最为相关联或者最为匹配的术语自动填充该表框。提前键入处理利用社交图谱数据库中的社交图谱信息或者从社交图谱数据库中提取或者索引的信息(其中包括与节点和边相关联的信息)结合社交图谱数据库中的信息以及潜在地结合位于社交网络系统160内或者在社交网络系统160内执行的各个其他处理、应用或者数据库,可能能够以高精确度预测用户的意图声明。然而,社交网络系统160也可使用户实际上自由输入其希望的任何声明,从而能够使用户自由地表达其自身。

在具体实施方式中,当用户将文本字符输入到表框或者其他区域中时,提前键入处理可尝试识别与用户输入字符时在用户声明中输入的字符串匹配的现有社交图谱元素(例如,用户节点202、概念节点204或者边206)。在具体实施方式中,当用户将字符输入到表框中时,提前键入处理可读取所输入文本字符的串。当执行每个键击时,前端提前键入处理可将输入的字符串作为请求(或者调用)发送给在社交网络系统160内执行的后端提前键入处理。在具体实施方式中,提前键入处理可经由AJAX(异步JavaScript和XML)或者其他合适技术(具体地,异步技术)通信。在具体实施方式中,该请求可以是或者包括能够快速或者动态发送或者获取结果的XMLHTTP请求(XHR)。在具体实施方式中,提前键入处理还可在请求之前、之后或者与请求一起发送识别其中用户发布声明的具体页面的具体部分的区标识符(区ID)。在具体实施方式中,还可发送用户ID参数,但是在一些实施方式中,由于基于用户已经登录到(或另外已经被其验证)社交网络系统160可能已“知晓”该用户,所以不需要发送用户ID参数。

在具体实施方式中,提前键入处理可使用一种或者多种匹配算法来尝试识别匹配的社交图谱元素。在具体实施方式中,当找出一个或者多个匹配时,提前键入处理可(其可利用AJAX或者其他合适的技术)向用户的客户端系统130发送响应,例如,其中包括匹配社交图谱元素的名称(名称串)或描述以及潜在地、与匹配社交图谱元素相关联的其他元数据。作为实施例但并不作为限制,如果用户将字符“pok”输入到查询字段中,则提前键入处理可显示下拉菜单,该下拉菜单显示与现有简档页面和相应用户节点202或者概念节点204匹配的名称,诸如,命名为或者提供“poker”或“pokemon”的简档页面,用户则可点击或者以其他方式选择这些,从而确认希望声明对应于所选择节点的匹配用户或者概念名称。作为另一实施例但并不作为限制,一旦点击“poker”,则提前键入处理可使用声明“poker”自动填充或者使网络浏览器132自动填充查询字段。在具体实施方式中,提前键入处理可仅使用排序靠前的匹配的名称或者其他标识符自动填充该字段,而非显示下拉菜单。然后,用户仅通过键入其键盘上的“回车”键或者通过点击自动填充声明而确认自动填充声明。

在于2010年4月19日提交的美国专利申请第12/763162号和于2012年7月23日提交的美国专利申请第13/556072号中可以找到关于提前键入处理的更多信息,将其通过引用结合在此。

结构化搜索查询

图3示出了在线社交网络的示例性网页。在具体实施方式中,用户可通过将文本输入到查询字段350中将查询提交至社交网络系统160。在线社交网络的用户可通过将描述主题的短语(通常被称之为“搜索查询”)提供至搜索引擎而搜索与特定主题(例如,用户、概念、外部内容或者资源)有关的信息。查询可以是非结构化文本查询并且可包括一个或多个文本串(其可包括一种或多种n元语法)。总之,用户可将任何字符串输入到查询字段350中,以搜索社交网络系统160中与文本查询匹配的内容。社交网络系统160则可搜索数据存储器164(或者具体地,社交图谱数据库),以识别与查询匹配的内容。搜索引擎可基于查询短语使用各种搜索算法进行搜索并且生成识别与搜索查询最为可能相关的资源或者内容(例如,用户简档页面、内容简档页面、或者外部资源)的搜索结果。为了进行搜索,用户可将搜索查询输入或者发送至搜索引擎。作为响应,搜索引擎可识别可能与搜索查询有关的一种或者多种资源,其每一个可被单独地称为“搜索结果”或被统称为对应于搜索查询的“搜索结果”。例如,识别内容可包括社交图谱元素(即,用户节点202、概念节点204、边206)、简档页面、外部网页、或者其任意组合。然后,社交网络系统160可利用对应于识别内容的搜索结果生成搜索结果网页,并且将搜索结果网页发送给用户。搜索结果通常以搜索结果网页上的链接列表形式被呈现给用户,每个链接与包含一些识别资源或者内容的不同网页相关联。在具体实施方式中,搜索结果中的每个链接可以为统一资源定位符(URL)形式,该统一资源定位符指定了对应网页所在的位置和用于对其进行检索的机制。然后,社交网络系统160可将搜索结果网页发送至用户客户端系统130上的网络浏览器132。用户则可点击URL链接或者通过其他方式从搜索结果网页中选择内容,以访问社交网络系统160或者外部系统(诸如,第三方系统170)中的内容,视情况而定。可根据资源与搜索查询的相对的关联度排序资源并且呈现给用户。还可根据搜索结果与用户的相对的关联度排序搜索结果并且呈现给用户。换言之,例如,可以基于社交图谱信息、用户信息、用户的搜索或者浏览历史、或者与用户有关的其他合适信息使搜索结果对于查询用户个性化。在具体实施方式中,通过由搜索引擎实现的排序算法可确定资源排序。作为实施例但并不作为限制,与搜索查询或者用户较为相关的资源可以比与搜索查询或者用户较不相关的资源排序得更靠前。在具体实施方式中,搜索引擎可使其搜索限于在线社交网络上的资源和内容。然而,在具体实施方式中,搜索引擎还可搜索诸如第三方系统170、因特网或者万维网、或者其他合适源的其他源上的资源或者内容。尽管本公开描述了以具体方式查询社交网络系统160,然而本公开考虑以任意合适方式查询社交网络系统160。

在具体实施方式中,此处所描述的提前键入处理可应用于由用户输入的搜索查询。作为实施例但并不作为限制,当用户将文本字符输入到搜索字段中时,提前键入处理可尝试识别在用户输入字符时与输入搜索字段的字符串匹配的一个或者多个用户节点202、概念节点204或者边206。当提前键入处理从文本查询接收包括串或者n元语法的请求或者调用时,提前键入处理可执行或者使其执行搜索,以识别具有与输入文本匹配的相应名称、类型、类别或者其他标识符的现有社交图谱元素(即,用户节点202、概念节点204、边206)。提前键入处理可使用一种或者多种匹配算法尝试识别匹配的节点或者边。当找出一个或者多个匹配时,提前键入处理可向用户的客户端系统130发送响应,例如,其中可包括匹配节点的名称(名称串)以及潜在地与匹配节点相关联的其他元数据。然后,提前键入处理可显示下拉菜单300,下拉菜单显示与现有简档页面和相应用户节点202或者概念节点204匹配的名称,并且显示可连接至匹配用户节点202或者概念节点204的匹配的边206的名称,用户则可点击或者以其他方式选择,从而确认希望搜索匹配用户或者对应于所选择节点的概念名称,或者通过匹配边搜索连接至匹配用户或者概念的用户或者概念。可替代地,提前键入处理可简单使用排序在首位的匹配的名称或者其他标识符来自动填充该表框,而非显示下拉菜单300。然后,用户可仅通过键击键盘上的“回车”或者通过点击自动填充声明来确认自动填充声明。一旦用户确认了匹配节点和边,提前键入处理则可发送请求,以将用户对包含匹配社交图谱元素的查询的确认通知给社交网络系统160。响应于发送的请求,社交网络系统160可自动(或者可替代地,基于请求中的指令)调用或者以其他方式搜索社交图谱数据库,以获得匹配的社交图谱元素或者连接至匹配社交图谱元素的社交图谱元素,视情况而定。尽管本公开描述了以具体方式将提前键入处理应用于搜索查询,然而本公开考虑以任意合适方式将提前键入处理应用于搜索查询。

关于搜索查询和搜索结果,具体实施方式可以利用通过引用结合于此的以下各项中公开的一个或多个系统、部件、元素、功能、方法、操作、或者步骤:于2006年8月11日提交的美国专利申请第11/503093号、2010年12月22日提交的美国专利申请第12/977027号,和2010年12月23日提交的美国专利申请第12/978265号。

结构化搜索查询的自然语言渲染

图4A至图4B示出了社交网络的示例性查询。在具体实施方式中,响应于从第一用户(即,查询用户)接收的文本查询,社交网络系统160可以生成一个或多个以自然语言句法渲染的结构化查询,其中每个结构化查询包括与一个或多个识别的社交图谱元素对应的查询记号。图4A至图4B示出了查询字段350中的各种示例性文本查询和作为响应在下拉菜单300中生成的各种结构化查询。通过响应于用户的文本查询提供建议的结构化查询,社交网络系统160可基于其社交图谱属性和其与各种社交图谱元素的关系提供使在线社交网络中的用户搜索社交图谱200中所表示的元素的有力方式。结构化查询可允许查询用户搜索社交图谱200中通过具体边类型连接至具体用户或者概念的内容。作为实施例但并不作为限制,社交网络系统160可从第一用户接收非结构化文本查询。作为响应,社交网络系统160(例如,经由服务器侧元件检测处理)可访问社交图谱200然后对文本查询进行解析,以识别对应于来自文本查询中的n元语法的社交图谱元素。社交网络系统160则可访问包括多种语法的语法模型(诸如与上下文无关的语法模型)。这些语法可以被视觉化为组织作为具有多个非终端记号和终端记号的有序树的语法森林。已识别的社交图谱元素可被用作语法中的终端记号(“查询记号”)。一旦这些终端记号已被识别(例如,通过使用对应于来自用户的文本查询的语义树),则社交网络系统160可以遍历语法森林来识别相交的非终端记号。然后可以选择通过这些相交的非终端节点之一表示的各个语法。所选择的语法然后可以用来生成包括引用所识别的社交图谱元素的查询记号的一个或多个结构化查询。这些结构化查询可基于通过语法生成的串,使得使用自然语言句法引用合适的社交图谱元素对它们进行渲染。结构化查询可被发送至第一用户并且(例如,经由客户端提前键入处理)显示在下拉菜单300中,其中,第一用户则可选择适当查询用于搜索希望内容。使用此处所描述的结构化查询的一些优点包括基于有限信息查找在线社交网络的用户,从而基于该内容与各个社交图谱元素的关系将在线社交网络中的内容的虚拟索引桥接在一起,或者找出与您和/或您朋友有关的内容。通过使用该处理,能够高效地解析自然语言渲染处理的输出,例如,以生成修改的或替代的结构化查询。此外,由于该处理所使用过的规定自语法模型中得出,因此,对于语法模型的规则的任何修改可以立即反应在渲染处理中。尽管本公开描述了并且图4A和图4B示出了以具体方式生成具体结构化查询,然而本公开考虑以任意合适方式生成任何合适的结构化查询。

在具体实施方式中,社交网络系统160可从查询/第一用户(对应于第一用户节点202)接收非结构化文本查询。作为实施例但并不作为限制,第一用户可能希望搜索其他用户,其是(1)第一用户的第一重要程度的朋友;以及(2)与斯坦福大学相关联(即,用户节点202通过边206连接至对应于学校“斯坦福”的概念节点204)。然后,如图4A和图4B所示,第一用户将文本查询“朋友斯坦福(friend stanford)”输入到查询字段350中。当第一用户将文本查询输入到查询字段350中时,社交网络系统160可提供各种建议的结构化查询,如下拉菜单300中所示。如此处使用的,非结构化文本查询是指由用户输入的简单文本串。当然,可以根据标准语法/语法规则(例如,英语语法)结构化文本查询。然而,文本查询通常对于社交图谱元素是非结构化的。换言之,简单的文本查询通常不包括对具体社交图谱元素的嵌入式引用。因此,如此处使用的,结构化查询是指包含对具体社交图谱元素的引用的查询,从而允许搜索引擎基于所识别元素进行搜索。而且,文本查询可相对于正式查询句法非结构化。换言之,简单的文本查询将不必处于由搜索引擎可直接实行的查询命令的格式。尽管本公开描述了以具体方式接收具体查询,然而本公开考虑以任意合适方式接收任意合适查询。

在具体实施方式中,社交网络系统160可对从第一用户(即,查询用户)接收的非结构化文本查询(也被简称为“搜索查询”)进行解析,以识别一种或者多种n元语法。总之,n元语法是给定文本或者谈话序列中的n项的连续序列。项可以是该文本或者谈话序列中的字符、音素、音节、字母、词、基础对、前缀或者其他可识别的项。n元语法可包括由查询用户输入的文本中的一个或者多个字符(字母、数字、标点等)。大小为一的n元语法可被称之为“一元语法”,大小为二的n元语法可被称之为“二元语法”或者“双元语法”,大小为三的n元语法可被称之为“三元语法”等。每种n元语法可包括从查询用户接收的文本查询中的一个或者多个部分。在具体实施方式中,每种n元语法可包括由第一用户输入的字符串(例如,文本中的一个或者多个字符)。作为实施例但并不作为限制,社交网络系统160可对文本查询“朋友斯坦福(friend stanford)”进行解析,以识别下列n元语法:朋友(friend);斯坦福(stanford);朋友斯坦福(friend stanford)。作为实施例但并不作为限制,社交网络系统160可对文本查询“在帕洛阿尔托的朋友(friends in palo alto)”进行解析,以识别下列n元语法:朋友(friends);在(in);帕洛(palo);阿尔托(alto);在…的朋友(friends in);在帕洛(in palo;、帕洛阿尔托(palo alto);在帕洛的朋友(friend in palo);也在帕洛(in palo also);在帕洛阿尔托的朋友(friends in palo alto)。在具体实施方式中,每种n元语法可包括文本查询中的n项的连续序列。尽管本公开描述了以具体方式对具体查询进行解析,然而本公开考虑以任意合适方式对任意合适查询进行解析。

在具体实施方式中,社交网络系统160可针对在文本查询中识别的每种n元语法确定或者计算该n元语法对应于社交图谱元素的分数。例如,分数可以是置信分数、概率、质量、排序、另一合适类型的分数、或者其任意组合。作为实施例但并不作为限制,社交网络系统160可确定n元语法对应于社交图谱元素(诸如社交图谱200中的用户节点202、概念节点204或者边206等)的概率分数(也被简称为“概率”)。概率分数可指示n元语法与具体社交图谱元素之间的相似性或者关联性级别。存在计算概率的多种不同方式。本公开考虑计算在搜索查询中已识别的n元语法的概率分数的任意合适方法。在具体实施方式中,社交网络系统160可确定n元语法对应于具体社交图谱元素的概率p。给定具体搜索查询X,可以将概率p计算为对应于具体社交图谱元素k的概率。换言之,可以将概率计算为p=(k|X)。作为实施例但并不是限制,可将n元语法对应于社交图谱元素的概率计算为以pi,j,k表示的概率分数。输入可以是文本查询X=(x1,x2,...,xN)和一组分类。对于各个(i:j)和分类k,社交网络系统160可计算pi,j,k=p(class(xi:j)=k|X)。作为实施例但并不作为限制,可以针对下列社交图谱元素对n元语法“斯坦福(stanford)”进行打分如下:学校“斯坦福大学(Stanford University)”=0.7;位置“加利福尼亚州,斯坦福(Stanford,California)”=0.2;用户“Allen Stanford”=0.1。作为另一实施例但并不作为限制,可以针对下列社交图谱元素对n元语法“朋友(friends)”进行打分如下:用户“朋友(friends)”=0.9;电视秀“老友记(Friends)”=0.1。在具体实施方式中,社交网络系统160可使用向前向后算法确定具体n元语法对应于具体社交图谱元素的概率。对于文本查询中给定的n元语法,社交网络系统160可使用之前的n元语法和后续的n元语法来确定对应于给定n元语法的具体社交图谱元素。在具体实施方式中,可以使用识别的社交图谱元素生成可由搜索引擎执行的查询命令。查询命令可以是具有接受具体自变数的定义的函数的结构化语义查询。作为实例但并不作为限制,可以对文本查询“朋友我马克(friend me mark)”进行解析以形成查询命令:相交(朋友(我),朋友(Mark))。换言之,查询寻找使查询用户(“我”)与用户“Mark”相交的社交图谱中的节点(即,通过朋友类型边206连接至查询用户的用户节点202和通过朋友类型边206连接至用于用户“Mark”的用户节点202的这些用户节点202)。尽管本公开描述了以具体方式确定对应于社交图谱元素的n元语法,然而本公开考虑以任意合适方式确定对应于社交图谱元素的n元语法。而且,尽管本公开描述了使用具体类型的打分确定对应于社交图谱元素的n元语法,然而本公开考虑使用任意合适类型的打分确定对应于社交图谱元素的n元语法。

在具体实施方式中,社交网络系统160可识别具有比边阈值概率更大的概率的一条或者多条边206。所识别的边206中的每条可对应于n元语法中的至少一种。作为实施例但并不作为限制,如果pi,j,k>pedge-threshold,则n元语法可仅被识别为对应于边k。而且,所识别的边206中的每条可连接至所识别节点中的至少一个。换言之,社交网络系统160可仅识别边206或者连接至用户节点202或者之前被识别为对应于具体n元语法的概念节点204的边类型。未连接至任一之前识别节点的边206或者边类型通常不可能对应于搜索查询中的具体n元语法。通过过滤掉或者忽略这些边206和边类型,社交网络系统160可更为有效地搜索社交图谱200以获得相关的社交图谱元素。作为实施例但并不作为限制,参考图2,对于包含“去斯坦福(went to Stanford)”的文本查询,其中,所识别的概念节点204是学校“斯坦福(Stanford)”,社交网络系统160可识别对应于“就职于”的边206和对应于“参加”的边206,这两条边206皆连接至“斯坦福(Stanford)”的概念节点204。因此,n元语法“去(went to)”可被识别为对应于这些边206。然而,对于相同的文本查询,社交网络系统160可能不识别社交图谱200中对应于“喜欢”或者“粉丝”的边206,因为“斯坦福(Stanford)”节点并不具有与其连接的任何该等边。尽管本公开描述了以具体方式识别对应于n元语法的边206,然而本公开考虑以任意合适方式识别对应于n元语法的边206。

在具体实施方式中,社交网络系统160可识别具有比节点阈值概率更大的概率的一个或者多个用户节点202或概念节点204。所识别节点中的每个可对应于n元语法中的至少一种。作为实施例但并不作为限制,如果pi,j,k>pnode-threshold,则n元语法可仅被识别为对应于节点k。而且,所识别的用户节点202或者概念节点204中的每个可连接至被识别的边206中的至少一条。换言之,社交网络系统160仅可识别连接至之前被识别为对应于具体n元语法的边206的识别节点或者节点类型。未连接至任何之前识别边206的节点或者节点类型通常不可能对应于搜索查询中的具体n元语法。通过过滤掉或者忽略这些节点和节点类型,社交网络系统160可更为有效地搜索社交图谱200以获得相关社交图谱元素。作为实施例但并不作为限制,对于包含“就职于苹果”的文本查询,其中,所识别的边206是“就职于”,社交网络系统160可识别对应于苹果公司的概念节点204,对应于苹果公司的概念节点204可具有与其连接的“就职于”的多条边206。然而,对于相同的文本查询,社交网络系统160可以不识别对应于水果类型“苹果”的概念节点204,对应于水果类型“苹果”的概念节点204可具有与其连接的多条“喜欢”或者“迷恋”边,但不具有“就职于”的边连接。在具体实施方式中,节点阈值概率对于用户节点202和概念节点204来说可不同,并且甚至在这些节点中可不同(例如,一些概念节点204可具有与其他概念节点204不同的节点阈值概率)。作为实施例但并非作为限制,如果pi,j,k>puser-node-threshold,则n元语法可被识别为对应于用户节点302kuser,而如果pi,j,k>pconcept-node-threshold,则n元语法可被识别为对应于概念节点304kconcept。在具体实施方式中,社交网络系统160可仅识别位于对应于第一用户(即,查询用户)的用户节点202的隔离度阈值内的节点。例如,该隔离度阈值可以是一、二、三或者全部。尽管本公开描述了以具体方式识别对应于n元语法的节点,然而本公开考虑以任意合适方式识别对应于n元语法的节点。

在具体实施方式中,社交网络系统160可访问包括多种语法的与上下文无关的语法模型。语法模型中的每种语法可包括一个或者多个非终端记号(或“非终端符号”)和一个或者多个终端记号(或“终端符号/查询记号”),其中特定的非终端记号可被终端记号取代。语法模型是用于正式语言串的一组信息规则。在具体实施方式中,多种语法可以被视觉化为组织为有序树的语法森林,具有对应于非终端记号的内部节点和对应于终端记号的叶节点。各种语法可以表示为语法森林内的子树,其中语法通过非终端记号彼此邻接。因此,两种或更多语法可以是语法森林内的子森林。尽管本公开描述了访问具体语法,然而本公开考虑任意合适的语法。

在具体实施方式中,社交网络系统160可以使用一种或多种语法生成一个或多个串。为了生成语言形式的串,以仅由单一起始符号构成的串开始。然后,按照任意顺序应用生成规则,直至生成既不包含起始符号又不包含指定非终端符号的串为止。在与上下文无关的语法中,语法的各个非终端符号的生成与由语法的其他非终端符号生成的串无关。非终端符号可以被终端符号(即,终端记号或者查询记号)取代。如上所述,查询记号中的一些可对应于所识别节点或者所识别的边。通过语法生成的串则可被用作包含对所识别节点或者所识别的边的引用的结构化查询的基础。通过语法生成的串可以自然语言句法渲染,使得基于串的结构化查询也以自然语言渲染。与上下文无关的语法是其中每种生成规则的左手边仅由单个非终端符号构成的语法。概率性的与上下文无关的语法是元组<Σ,N,S,P>,其中,不相交集Σ和N分别指定终端和非终端符号,且S∈N是起始符号,P是乘积集,其采用形式E→ξ(p),其中,E∈N、ξ∈(Σ∪N)+、并且p=Pr(E→ξ),即,E被展开成串ξ的概率。对给定非终端E的所有扩展的概率p总和必须是一。尽管本公开描述了以具体方式生成串,然而本公开考虑以任意合适的方式生成串。

在具体实施方式中,社交网络系统160可识别对应于之前所识别节点和边的一种或者多种查询记号。换言之,如果已识别的节点或者已识别的边可被用作具体语法中的查询记号,则社交网络系统160可识别查询记号。作为实施例但并不作为限制,示例性语法可以是:[用户][用户-过滤器][学校]。然后,可基于接收文本查询中的n元语法确定非终端符号[用户]、[用户-过滤器]以及[学校]。例如,对于文本查询“朋友斯坦福”,可以使用语法如“[朋友][去][斯坦福大学]”或者“[朋友][就职于][斯坦福大学]”对该查询进行解析。作为另一实施例但并不作为限制,示例性语法可以是[用户][用户-过滤器][位置]。例如,对于文本查询“朋友斯坦福”,可以通过使用语法如“[朋友][生活在][加利福尼亚州,斯坦福]”对该查询进行解析。在上述两种示例性情况下,如果所接收的文本查询中的n元语法可被用作查询记号,则社交网络系统160可识别这些查询记号。尽管本公开描述了以具体方式识别具体查询记号,然而本公开考虑以任意合适方式识别任意合适查询记号。

在具体实施方式中,社交网络系统160可选择具有对应于之前所识别节点和边的每个的至少一个查询记号的一种或者多种语法。根据在文本查询中识别的n元语法仅可以使用特定的语法。因此应该检查所有的可用语法的终端记号以找到与来自文本查询的所识别的n元语法匹配的那些。换言之,如果特定的语法可以使用所有识别的节点和边作为查询记号,则社交网络系统160可以选择该语法作为可能的语法以用于生成结构化查询。这是自底至上解析的有效类型,其中,使用可能的查询记号确定适用于该查询的适用语法。作为实施例但并不作为限制,对于文本查询“朋友斯坦福”,社交网络系统可以识别查询记号[朋友]和[斯坦福大学]。如之前论述的,可以识别来自语法模型的语法的终端记号。然后可以选择能够使用[朋友]和[斯坦福大学]记号的任何语法。例如,可以选择语法[用户][用户-过滤器][学校],因为该语法可以使用[朋友]和[斯坦福大学]记号作为查询记号,诸如通过形成串“前往斯坦福大学的朋友”或者“就职于斯坦福大学的朋友”。因此,如果所接收的文本查询中的n元语法可被用作语法的查询记号,则社交网络系统160可选择这些语法。类似地,如果所接收的文本查询包括不可以用作语法中的查询记号的n元语法,则可以不选择该语法。尽管本公开内容描述了以具体方式选择具体语法,然而本公开内容考虑以任意合适方式选择任意合适语法。

在具体实施方式中,社交网络系统160通过分析通过多个语法形成的语法森林可以选择一种或多种语法。语法森林可以组织作为包括多个非终端记号和多个终端记号的有序树。每个语法可以表示为语法森林内的子树,并且每个子树可以经由一个或多个另外的非终端记号与其他子树邻接。作为实施例但并不作为限制,社交网络系统160可以通过识别语法森林中对应于所识别的与文本查询的部分相对应的节点和边的所有的终端记号(即,查询记号)开始。一旦语法森林中的这些查询记号被识别,社交网络系统160则可以从这些查询记号的每个向上遍历语法森林以识别一个或多个相交的非终端记号。一旦非终端记号被识别,其中来自所有的查询记号的路径相交,那么可以选择相交的非终端记号,然后可以选择语法森林中的与相交的非终端记号邻接的一种或多种语法。尽管本公开描述了以具体方式选择语法,然而本公开考虑以任意合适方式选择语法。

图5A示出了示例性语义树。在具体实施方式中,社交网络系统160可以对应于来自查询用户的文本查询生成语义树。语义树可包括对应于先前识别的节点或者边的每个识别的查询记号,并且还可以包括相交的记号。语义树还可以包括连接查询记号至相交记号的非终端记号,视情况而定。作为实施例但并不作为限制,文本查询“朋友斯坦福”可以被解析为查询命令:使(学校(斯坦福大学),朋友(我))相交。换言之,查询寻找使查询用户(“我”)的朋友(即,通过朋友类型边206连接至查询用户的用户节点202的那些用户节点202)与用于斯坦福大学的概念结点204两者相交的社交图谱中的节点。这可以表示为在图5A中示出的语义树,语义树包括用于查询用户[我]、和学校[斯坦福]的终端记号、用于[[用户]的朋友]的非终端记号、和相交记号。在具体实施方式中,树中的每个记号可按其被处理的顺序标注。例如,在图5A中示出的语义树具有使用后缀表示法标注的记号,其中,用于[斯坦福]的记号标注为(0,0),用于[我]的记号标注为(1,1),[[用户]的朋友]的记号标注为(2),和相交记号标注为(3)。尽管本公开内容描述了以具体方式生成具体语义树,然而本公开内容考虑以任意合适方式生成任意合适语义树。

图5B示出了示例性语法森林。在具体实施方式中,社交网络系统160可以分析包括多个语法的语法森林以识别一组或多组非终端记号和基本上与对应于查询的语义树匹配的查询记号,其中,每组具有对应于语义树的相交记号的非终端记号。社交网络系统160然后可以选择语法森林中与对应于相交记号的非终端记号邻接的一种或多种语法。从语法森林选择的每个相交非终端记号则可以被标注为语法的[开始]记号。作为实施例但并不作为限制,以下算法可以用于遍历语法森林以识别相交记号:

对于语义树中的每个终端记号(i,i),标注语法森林中的每个匹配的终端记号(i,i)。

对于i=0至(语义树-1)大小:

对于j=i至0:

展开标注为(i,j)的所有记号。

展开(i,j):

对于语法森林中的所有记号:

如果记号具有以下规则,该规则具有使子树增长至(i’,j’)的自变数1,则将记号标注为(i’,j’);

如果记号具有以下规则,该规则具有可能使子树增长的大于1的自变数,则将记号标注为“等待”;

如果记号被标注为“等待”,那么现在可以使子树增长至(i’,j’),然后将记号标注为(i’,j’)。

因此,例如,在图5B中示出的实例中,与来自在图5A中示出的语义树的终端记号(0,0)和(1,1)匹配的所有终端记号将分别标注为(0,0)和(1,1)。然后,从语法森林中的每个有效的记号,社交网络系统160可以遍历到父记号以查看是否可以形成与语义树匹配的子树。如果父非终端记号具有匹配的语义,那么可以使用与来自语义树的对应的记号相同的标注来标注非终端记号。在图5B中示出的实例中,因为语法森林从标注(1,1)的记号之一遍历,一旦发现与语义[[用户]的朋友]匹配的非终端记号,那么那个记号可以标注为(2),因此其与语义树匹配。该记号的父然后可以标注为“等待”,因为其为潜在的相交记号。然而,如果遍历未能找到与语义树的语义匹配的任何父记号,那么可以终止具体遍历。当算法利用来自其他有效终端记号的遍历(例如,来自标注(0,0)的终端记号的遍历)进行时,一旦遍历的一个分支到达潜在的相交记号,则那个记号可以标注为“等待”。替换地,如果遍历找到已经被标注为“等待”的记号,则那个记号可以被识别为相交记号并且标注为(3)。然后,标注为(3)的每个记号可被选择为一种语法,该语法可用于生成用于结构化查询的自然语言串。算法将试图找到语法森林中导致相交记号的成本最低的多路径,并且对应于这个成本最低的多路径的相交记号可以比其他相交记号(如果有的话)优先选择。虽然本公开内容描述了以具体方式分析具体语法森林,但是本公开内容考虑以任何适宜的方式分析任何适宜的语法森林。

在具体实施方式中,社交网络系统160可确定每种选择语法的分数。例如,该分数可以是置信分数、概率、质量、排序、另一合适类型的分数或者其任意组合。分数可以基于与所选择语法中使用的查询记号相关联的个体分数或者概率。如果使用具有相对较高个体分数的查询记号,则语法可具有相对较高的分数。作为实施例但并不作为限制,继续之前实施例,可以针对下列社交图谱元素对n元语法“斯坦福”进行打分如下:学校“斯坦福大学”=0.7;位置“加利福尼亚州,斯坦福”=0.2;用户“Allen Stanford”=0.1。可以针对下列社交图谱元素对n元语法“朋友”进行打分如下:用户“朋友”=0.9;电视秀“老友记”=0.1。因此,如果使用用于用户“朋友”和学校“斯坦福大学”的查询记号(例如,生成“就读于斯坦福大学的朋友”串)(两者皆具有相对较高的个体分数),则语法[用户][用户-过滤器][学校]可具有相对较高的分数。相反,如果使用用于用户“朋友”和用户“Allen Stanford”的查询记号(例如,生成“Allen Stanford的朋友”串),则因为后者查询记号具有相对较低的个体分数,所以语法[用户][用户-过滤器][用户]可能具有相对较低的分数。在具体实施方式中,社交网络系统160可以基于所遍历路径的长度确定选择语法的分数,从而识别对应于所选择的语法的相交记号。具有较低成本多路径(即,较短的路径)的语法可以比具有较高成本多路径(即,较长的路径)的语法分数更高。在具体实施方式中,社交网络系统160可以基于广告赞助确定选择语法的分数。广告商(诸如对应于具体节点的具体简档页面的用户或管理员)可以发起具体节点,以使得包括引用那个发起的节点的查询记号的语法分数更高。尽管本公开描述了以具体方式确定具体语法的具体分数,然而本公开考虑以任意合适方式确定任意合适语法的任意合适分数。

在具体实施方式中,社交网络系统160可基于对应于语法的查询记号的社交图谱元素与查询用户(即,第一用户,对应于第一用户节点202)的关联性确定已选择语法的分数。用户节点202和通过边206直接连接至第一用户节点202的概念节点204可被视为与第一用户相关联。因此,包括对应于这些相关联节点和边的查询记号的语法可被视为与查询用户更相关。作为实施例但并不作为限制,通过边206连接至第一用户节点202的概念节点204可被视为与第一用户节点202相关联。如此处使用的,当引用社交图谱200时,术语“连接”指社交图谱200中的两个节点之间存在的路径,其中,该路径可包括一条或者多条边206和零个或者多个中间节点。在具体实施方式中,经由一个或者多个中间节点(并且由此两条或者多条边206)连接至第一用户节点202的节点也可被视为与第一用户相关联。而且,在具体实施方式中,第二节点越接近于第一用户节点,第二节点越被视为与第一用户节点相关联。即,使第一用户节点202与具体用户节点202或者概念节点204隔离的边206越少(即,隔离度越少),则用户节点202或者概念节点204越被视为与第一用户相关联。作为实施例但并不作为限制,如图2所示,对应于学校“斯坦福”的概念节点204连接至对应于用户“C”的用户节点202,并且由此,概念“斯坦福”可被视为与用户“C”相关联。作为另一实施例但并不作为限制,对应于用户“A”的用户节点202经由一个中间节点和两条边206(即,对应于用户“B”的中间用户节点202)连接至对应于用户“C”的用户节点202,并且由此用户“A”可被视为与用户“C”相关联,但是因为用户“A”的用户节点202是相对于用户“C”的二级连接,所以该具体概念节点204与通过单条边206连接至用户“C”的用户节点(例如,对应于用户“B”的用户节点202)相比可被视为较不关联。作为另一实施例但并不作为限制,“在线扑克(Online Poker)”(其可对应于在线多用户游戏)的概念节点不通过社交图谱200中的任何路径连接至用户“C”的用户节点,并且由此概念“在线扑克(Online Poker)”可以不被视为与用户“C”相关联。在具体实施方式中,如果第二节点位于第一用户节点202的隔离度阈值内,则第二节点仅可被视为与第一用户相关联。作为实施例但并不作为限制,如果隔离度阈值是三,则对应于用户“D”的用户节点202可被视为与对应于食谱“Chicken Parmesan”的概念节点204相关联,用户节点202和概念节点204在图2中所示的社交图谱200中彼此位于三度内。然而,继续该实施例,概念节点204和用户节点202在社交图谱200中位于四度以上,所以对应于应用“关于食谱的一切(All About Recipes)”的概念节点204将不被视为与对应于用户“D”的用户节点202相关联。尽管本公开描述了以具体方式确定具体社交图谱元素(并且由此的其对应的查询记号)是否彼此相关联,然而,本公开考虑以任意合适方式确定任意合适的社交图谱元素是否彼此相关联。而且,尽管本公开描述了确定对应于用户节点202和概念节点204的具体查询记号是否与查询用户相关联,然而本公开同样考虑确定任意合适的查询记号(并且由此的任意合适的节点)是否与任意其他合适的用户相关联。

在具体实施方式中,社交网络系统160可基于对应于语法的查询记号的社交图谱信息确定已选择语法的分数。作为实施例但并不作为限制,当确定n元语法对应于具体社交图谱元素的概率p时,概率的计算也可包括在社交图谱信息中。因此,给定具体搜索查询X和社交图谱信息G,可将对应于具体社交图谱元素k的概率计算为p=(k|X,G)。然后,可使用已识别节点和边的个体概率确定将这些社交图谱元素作为查询记号的语法的分数。在具体实施方式中,已选择语法的分数可基于第一用户节点202与作为语法查询记号而使用的具体社交图谱元素之间的隔离度。具有对应于社交图谱200中更接近于查询用户(即,该元素与第一用户节点202之间的隔离度更小)的社交图谱元素的查询记号的语法可比使用对应于距用户较远(即,更大隔离度)的社交图谱元素的查询记号的语法分数更高。作为实施例但并不作为限制,参考图2,如果用户“B”输入文本查询“chicken”,则具有对应于概念节点204(通过边206连接至用户“B”)的食谱“Chicken Parmesan”的查询记号的语法可以比社交图谱200中具有对应于与n元语法鸡相关联的未连接至用户“B”的其他节点(例如,对应于“鸡块”或者“小鸡跳舞”的概念节点204)的查询记号的语法具有相对更高的分数。在具体实施方式中,已选择语法的分数可基于对应于语法的查询记号的识别边206。如果社交网络系统160已经识别对应于接收文本查询中的n元语法的一条或者多条边,则当通过语法确定文本查询的具体解析分数时,可考虑这些已识别的边。如果具体语法包括对应已识别节点和已识别边的查询记号,如果已识别节点实际上不连接至已识别边中的任一条,则该具体语法可被分配零分或者空白分。在具体实施方式中,已选择语法的分数可以基于连接至对应于语法的查询记号的节点的边206的条数。包括对应于具有更多连接边206的节点的查询记号的语法可能更受欢迎并且更可能成为搜索查询的目标。作为实施例但并不作为限制,如果“加利福尼亚州斯坦福”的概念节点204仅被五条边连接,而“斯坦福大学”的概念节点204被五千条边连接,则当确定包含对应于这些节点中的任一个的查询记号的语法分数时,社交网络系统160可确定具有对应于“斯坦福大学”的概念节点204的语法比引用“加利福尼亚州斯坦福”的概念节点204的语法具有相对更高的分数,因为有连接至前者概念节点204的更多边。在具体实施方式中,已选择语法的分数可基于与第一用户(即,查询用户)相关联的搜索历史。具有对应于第一用户之前已经访问的节点的查询记号的语法、或者具有与第一用户之前已经访问的节点相关联的查询记号的语法更为可能成为第一用户的搜索查询目标。因此,这些语法可被给定更高的分数。作为实施例但并不作为限制,如果第一用户之前已经访问“斯坦福大学”简档页面,但是未曾访问“加利福尼亚州斯坦福”简档页面,则当确定具有对应于这些概念的查询记号的语法分数时,社交网络系统160可确定“斯坦福大学”的概念节点204具有相对较高的分数,并且由此使用对应查询记号的语法,因为查询用户之前已经访问学校的概念节点204。作为另一实施例但并不作为限制,如果第一用户之前已经访问电视秀“老友记”的概念简档页面,则当确定具有对应于该概念的查询记号的语法分数时,社交网络系统160可确定对应于电视秀“老友记”的概念节点204具有相对较高分数,并且由此使用对应查询记号的语法,因为查询用户之前已经访问该电视秀的概念节点204。尽管本公开描述了以具体方式基于具体社交图谱信息确定具体语法的分数,然而本公开考虑以任意合适方式基于任意合适的社交图谱信息确定任意合适语法的分数。

在具体实施方式中,社交网络系统160可选择具有比语法阈值分数更大的分数的一种或者多种语法。所选择语法中的每种可包含对应于已识别节点中的每个或者已识别边中的每条的查询记号(对应于接收文本查询的n元语法)。在具体实施方式中,可基于其确定分数排序语法,并且仅可选择位于阈值排序内(例如,前七个)的语法。尽管本公开描述了以具体方式选择语法,然而本公开考虑以任意合适方式选择语法。

在具体实施方式中,社交网络系统160可生成对应于所选择语法(例如,具有比语法阈值分数更大的分数的语法)的一项或者多项结构化查询。每项结构化查询可基于通过对应选择语法生成的串。作为实施例但并不作为限制,响应于文本查询“朋友斯坦福”,语法[用户][用户过滤器][学校]可生成“去往斯坦福大学的朋友”的串,其中,语法中的非终端记号[用户]、[用户-过滤器]、[学校]分别被终端记号[朋友]、[谁去往]以及[斯坦福大学]取代,以生成串。在具体实施方式中,通过使用自然语言句法的语法生成的串可以被渲染为自然语言中的结构化查询。作为实施例但并不作为限制,来自先前实例的结构化查询使用终端记号[谁去往],该终端记号使用自然语言句法使得通过语法渲染的串是自然语言。然后,通过修改对应于社交图谱元素的查询记号可渲染通过语法生成的自然语言串从而形成结构化查询,从而包括对于那些社交图谱元素的引用。作为实施例但并不作为限制,可以渲染串“去往斯坦福大学的朋友”,使得当引用对应于学校“斯坦福大学”的概念节点204时,用于“斯坦福大学”的查询记号出现在结构化查询中,在此,引用可以包括突出、内嵌链路、代码片段、另一个适宜的引用或其任何组合。每项结构化查询可包括对应于相应选择语法的查询记号,其中,这些查询记号对应于已识别边206中的一条或者多条和已识别节点中的一个或者多个。下面更多地描述了生成结构化查询。

在具体实施方式中,社交网络系统160可以生成用于使用与上下文无关的语法模型的结构化查询的一个或多个查询修改。以下更多地论述查询修改。查询修改可以引用一个或多个另外的节点或者一个或多个另外的边。这类查询修改可以用于细化结构化查询或者使结构化查询变窄。替代地,查询修改可以引用一个或多个替代的节点或者一个或多个替代的边。这类查询修改可以用于以结构化查询为中心或者使结构化查询变宽。总体来说,这些可以称为修改节点和修改边,其中,变形是对与社交图谱元素对应的具体查询记号的增加或替换。查询修改中对另外的或者替代的节点和边的参考可以分别用于增加或替换结构化查询中的查询记号。为了识别用于结构化查询的可能的查询修改,社交网络系统160可以从原始的结构化查询中识别具有对应于所选择的节点和所选择的边的查询记号的一个或多个语法。换言之,社交网络系统160可以识别实际用于生成具体的结构化查询的语法、可以产生该结构化查询的其他语法和可以使结构化查询作为另一结构化查询的部分的语法。社交网络系统160然后可以识别在结构化查询中可以增加或者替换的那些语法中的查询记号。这些另外的或者替代的查询记号然后可以用来生成可被发送到查询用户作为搜索结果页面一部分的建议查询修改。查询用户然后可以选择这些查询修改的一种或多种,并且作为响应,社交网络系统160可以生成新的结构化查询(和对应的搜索结果)。该新的结构化查询可包括修改的查询记号(即,另外的或者替代的查询记号),视情况而定。尽管本公开内容描述了以特定方式生成查询修改,然而,本公开内容考虑以任意合适方式生成查询修改。

图6示出用于使用与上下文无关的语法模型来生成自然语言结构化搜索查询的示例性方法600。该方法可从步骤610开始,在步骤610,社交网络系统160可访问包括多个节点和连接节点的多条边206的社交图谱200。节点可包括第一用户节点202和多个第二节点(一个或者多个用户节点202、概念节点204、或者其任意组合)。在步骤620,社交网络系统160可从第一用户接收非结构化文本查询。文本查询可包括一种或者多种n元语法。在步骤630,社交网络系统160可以识别对应于非结构化文本查询的至少一部分的边和第二节点。例如,社交网络系统160可以识别对应于来自查询的具体n元语法的边和节点。在步骤640,社交网络系统160可访问包括多种语法的与上下文无关的语法模型。每种语法可以包括一个或多个非终端记号和一个或多个查询记号(即,终端记号)。在步骤650,社交网络系统160可以识别多种语法中的一个或多个查询记号,其中,每个识别的查询记号对应于识别的节点或者识别的边之一。在步骤660,社交网络系统160可以选择一种或多种语法,其中,每种选择的语法包括对应于识别的边和识别的第二节点的每个的至少一个查询记号。在步骤670,社交网络系统可基于所选择的语法生成一项或者多项结构化查询。每项结构化查询可以对应于通过所选择的语法生成的串,其可以使用自然语言句法。每项结构化查询可包括对识别的边和识别的第二节点的每个的引用。具体实施方式可重复图6的方法的一个或者多个步骤,视情况而定。尽管本公开内容描述并且示出了图6以具体顺序发生的方法的具体步骤,然而本公开内容考虑图6以任意合适顺序发生的方法的任意合适步骤。而且,尽管本公开内容描述并且示出了执行图6的方法的具体步骤的具体部件、设备或者系统,然而本公开内容考虑执行图6中的方法的任意合适步骤的任意合适部件、设备或者系统的任意合适组合。

在于2012年11月12日提交的美国专利申请第13/674695号中可以找到关于使用具有搜索查询的语法模型的更多信息,将其通过引用结合在此。

生成结构化搜索查询

在具体实施方式中,社交网络系统160可生成一项或者多项结构化查询,其中每项可包括对应语法的查询记号,其中,查询记号可对应于已识别用户节点202中的一个或者多个或者已识别边206中的一条或者多条。如上所述,生成结构化查询可以基于通过一种或多种与上下文无关的语法生成的自然语言串。这种类型的结构化搜索查询可允许社交网络系统160通过搜索连接至已识别用户节点202和已识别边206或者以其他方式与已识别用户节点202和已识别边206有关的内容而更为有效地搜索与在线社交网络有关的资源和内容(诸如,简档页面等)。作为实施例但并不作为限制,社交网络系统160可响应文本查询“给我介绍我女朋友的朋友”生成结构化查询“Stephanie的朋友”,其中,结构化查询中的“朋友”和“Stephanie”是对应于具体社交图谱元素的引用。对“Stephanie”的引用对应于具体用户节点202,而对“朋友”的引用对应于将用户节点202连接至其他用户节点202的“朋友”边206(即,连接至“Stephanie的”第一重要程度朋友的边206)。当执行结构化查询时,社交网络系统160可识别通过“朋友”边206连接至对应于“Stephanie”的用户节点202的一个或者多个用户节点202。在具体实施方式中,社交网络系统160可生成多项结构化查询,其中,结构化查询可包括对不同的识别用户节点202或者不同的识别边206的引用。作为实施例但并不作为限制,社交网络系统可响应文本查询“cat的照片”生成第一结构化查询“Catey的照片”和第二结构化查询“Catherine的照片”,其中,结构化查询中的“照片”是对应于具体社交图谱元素的引用,并且其中,“Catey”和“Catherine”是两个不同用户节点202的引用。尽管本公开描述了以具体方式生成具体结构化查询,然而本公开考虑以任意合适方式生成任意合适结构化查询。

在具体实施方式中,社交网络系统160可生成一项或者多项结构化查询,其中每项包括对应于已识别概念节点204和已识别边206中的一条或者多条的查询记号。这种类型的结构化搜索查询可允许社交网络系统160通过搜索连接至已识别概念节点204和已识别边206或者以其他方式与已识别概念节点204和已识别边206有关的内容而更为有效地搜索与在线社交网络有关的资源和内容(诸如,简档页面等)。作为实施例但并不作为限制,如上所述,社交网络系统160可响应文本查询“喜欢facebook的朋友”生成结构化查询“我的喜欢Facebook的朋友”,其中,结构化查询中的“朋友”、“喜欢”以及“Facebook”是对应于具体社交图谱元素(即,“朋友”边206、“喜欢”边206以及“Facebook”概念节点204)的查询记号。在具体实施方式中,社交网络系统160可生成多项结构化查询,其中,结构化查询可包括对不同的识别概念节点204或者不同的识别边206的引用。作为实施例但并不作为限制,继续之前实施例,除结构化查询“我的喜欢Facebook的朋友”之外,社交网络系统160还可生成结构化查询“我的喜欢Facebook Culinary Team的朋友”,其中,结构化查询中的“Facebook Culinary Team”是对应于又一社交图谱元素的查询记号。在具体实施方式中,社交网络系统160可对生成的结构化查询进行排序。可基于各种因素排序结构化查询。在具体实施方式中,社交网络系统160可以基于广告赞助者排序结构化查询。广告商(诸如,对应于具体节点的具体简档页面的用户或者管理人员)可以赞助具体节点使得引用那个节点的结构化查询可以更高地排序。尽管本公开描述了以具体方式生成具体结构化查询,然而本公开考虑以任意合适方式生成任意合适结构化查询。

在具体实施方式中,社交网络系统160可将结构化查询中的一项或者多项发送给第一用户(即,查询用户)。作为实施例但并不作为限制,在生成结构化查询之后,社交网络系统160可(利用AJAX或者其他合适技术)将结构化查询中的一项或者多项作为响应发送给用户的客户端系统130,例如,可包括所引用社交图谱元素的名称(名称串)、其他查询限制(例如,布尔操作符等)、以及潜在地与所引用社交图谱元素相关联的其他元数据。如图4A和图4B所示,查询用户的客户端系统130上的网络浏览器132可在下拉菜单300中显示已发送的结构化查询。如上所述,在具体实施方式中,可按照排序顺序(例如,基于之前确定的排序)将已发送的查询呈现给查询用户。具有更佳排序的结构化查询可显示在更为显著的位置。而且,在具体实施方式中,可仅将高于阈值排序的结构化查询发送或者显示给查询用户。作为实施例但并不作为限制,如图4A和图4B所示,可在下拉菜单300中将结构化查询呈现给查询用户,其中,排序靠前的结构化查询可显示在菜单顶部,而排序靠后的结构化查询以降序顺序显示在菜单中。在图4A和图4B所示的实施例中,仅将排序在前七项的查询发送和显示给用户。在具体实施方式中,可以(例如,列出、加下划线、划圆圈、变粗体、变斜体、加颜色、加亮度、平移、大写)突出强调结构化查询中的一个或者多个引用,以指示其与具体社交图谱元素的对应性。作为实施例但并不作为限制,如图4A和图4B所示,可以突出强调(列出)结构化查询中对“斯坦福大学(Stanford University)”和“加利福尼亚州斯坦福(Stanford,California)”的引用,以指示其对应于具体概念节点204。同样,还可突出强调在下拉菜单300中显示的结构化查询中的“朋友(Friends)”、“喜欢(like)”、“就职于(work at)”以及“去(go to)”的引用,以指示其对应于具体边206。尽管本公开描述了以具体方式发送具体结构化查询,然而本公开考虑以任意合适方式发送任意合适结构化查询。

在具体实施方式中,社交网络系统160可从第一用户(即查询用户)接收对结构化查询中的一项的选择。替代地,社交网络系统160可以接收结构化查询作为在某些上下文中通过系统自动选择的查询(例如,默认选择)。在接收的结构化查询中引用的节点和边可以分别称为选择的节点和选择的边。作为实施例但并不作为限制,查询用户的客户端系统130上的网络浏览器132可在下拉菜单300中显示已发送的结构化查询,如图4A和图4B所示,用户则可点击或者以其他方式选择(例如,通过其键盘上的简单键击“回车”),以指示用户希望社交网络系统160执行的具体结构化查询。一旦选择具体结构化查询,用户的客户端系统130则可调用或者以其他方式命令社交网络系统160执行所选择的结构化查询。尽管本公开描了以具体方式接收对具体结构化查询的选择,然而本公开考虑以任意合适方式接收对任意合适结构化查询的选择。

从于2012年7月23日提交的美国专利申请第13/556072号中可以获得关于结构化搜索查询的更多信息,将其通过引用结合在此。

生成搜索结果和代码片段

图7A至图7G示出示例性搜索结果页面。响应于从查询用户(还称为“第一用户”)接收的结构化查询,社交网络系统160可以生成一个或多个搜索结果,其中,每个搜索结果与结构化查询的术语匹配(或者基本上匹配)。在具体实施方式中,社交网络系统160可从查询用户(还称为“第一用户”,对应于第一用户节点202)接收结构化查询。响应于结构化查询,社交网络系统160可以生成对应于结构化查询的一个或多个搜索结果。每个搜索结果可包括至简档页面的链接和简档页面的描述或概要(或者对应于该页面的节点)。搜索结果可以作为搜索结果页面呈现并且发送至查询用户。图7A至图7G示出响应于各种结构化查询生成的各种示例性搜索结果页面。用于生成具体搜索结果页面的结构化查询在查询字段350中示出,并且响应于结构化查询生成的各种搜索结果在结果字段710中示出。在具体实施方式中,查询字段350还可以用作页面的标题栏。换言之,标题栏和查询字段350可以有效地为搜索结果页面上的统一字段。作为实施例,图7G示出具有在查询字段350中的结构化查询“我的来自田纳西州的朋友的照片”的搜索结果页面。该结构化查询还有效地用作用于所生成的页面的标题,其中,页面示出查询用户的来自田纳西州的朋友的多张照片。搜索结果页面还可以包括变形字段720、建议的搜索字段730、扩展的搜索字段740、或者消歧字段750。以下更多地论述这些另外的字段。当生成搜索结果时,社交网络系统160可以生成用于每个搜索结果的一个或多个代码片段,其中,代码片段是关于搜索结果的目标的情境信息(即,关于社交图谱实体、简档页面、或者对应于具体搜索结果的其他内容的情境信息)。在具体实施方式中,用于每个搜索结果的至少一个代码片段可以是世系代码片段,其描述搜索结果如何与来自用于生成搜索结果的结构化查询的选择的节点和选择的边匹配。这些世系代码片段提供关于具体搜索结果如何满足相对于社交图谱元素的结构化查询的术语的上下文。尽管本公开内容描述和示出了具体搜索结果页面,然而本公开内容考虑任何合适的搜索结果页面。而且,尽管本公开内容描述并示出以具体方式生成具体代码片段,然而本公开内容考虑以任意合适方式生成任意合适代码片段。

在具体实施方式中,社交网络系统160可以生成对应于结构化查询的一个或多个搜索结果。搜索结果可以识别匹配搜索查询或者可能与搜索查询有关的资源或者内容(例如,用户简档页面、内容简档页面或者外来资源)。在具体实施方式中,每个搜索结果可以与社交图谱200的具体用户节点202或者概念节点204对应。搜索结果可包括与节点相关联的简档页面的链接,以及关于节点的情境信息(即,关于对应于该节点的用户或者概念的情境信息)。作为实施例但并不作为限制,参考图7B,在查询字段350中的结构化查询“我的就职于Facebook的朋友”生成在结果字段710中示出的各种搜索结果。结果字段710中的每个搜索结果示出用户的简档页面的链接(示出为用户的姓名,包含对简档页面的线内链路)和关于对应于社交图谱200的用户节点202的用户的情境信息。作为实施例但并不作为限制,参考图7G,在查询字段350中的结构化查询“我的来自田纳西州的朋友的照片”生成在结果字段710中示出的各种搜索结果。在图7G中示出的每个搜索结果示出对应于社交图谱的概念节点204的照片的略图。在具体实施方式中,每个搜索结果可以与通过结构化查询的一条或多条选择的边连接至一个或多个选择的节点的节点对应。作为实施例但并不作为限制,参考图2,如果用户“C”提交引用“Old Pro”的概念节点204和朋友类型边206的结构化查询“喜欢Old Pro的朋友”,则社交网络系统160可以返回对应于用户“B”的搜索结果,因为用户“B”的用户节点202通过朋友类型边206连接到用户“C”的用户节点202并且通过喜欢类型边206也连接到位置“Old Pro”的概念节点204。在具体实施方式中,社交网络系统160还可以响应于结构化查询发送广告或者其他赞助内容至客户端系统130。广告可以作为搜索结果的一部分包括在搜索结果中、或者单独地。广告可以对应于搜索结果中引用的一个或多个对象。在具体实施方式中,社交网络系统160可以基于与这些资源或者内容相关联的用户相关联的隐私设置过滤出识别具体资源或者内容的一个或多个搜索结果。尽管本公开内容描述了以特定方式生成搜索结果,然而,本公开内容考虑了以任意合适方式生成任意合适的搜索结果。

在具体实施方式中,搜索结果可包括一个或多个代码片段。代码片段是关于搜索结果的目标的情境信息。换言之,代码片段提供关于对应于搜索结果的该页面或者内容的信息。作为实施例但并不作为限制,代码片段可以是来自对应于搜索结果的简档页面(或节点)的内容的样本。可以包括代码片段以及用于任何合适类型的内容的搜索结果。在具体实施方式中,利用搜索结果显示的代码片段可基于对应于搜索结果的内容的类型。作为实施例但并不作为限制,如果查询用户搜索用户,那么包括搜索结果的代码片段可以是关于在搜索结果中显示的用户的情境信息,类似用户的年龄、位置、教育、或者工作单位。作为实施例但并不作为限制,如果查询用户搜索照片,那么包括搜索结果的代码片段可以是关于在搜索结果中显示的照片的情境信息,类似照片中的人或者对象的名称、照片的赞/观看的数目或者拍摄照片的位置。作为另一个实施例但并不作为限制,如果查询用户搜索位置,那么包括搜索结果的代码片段可以是关于在搜索结果中显示的位置的情境信息,类似位置的地址、位置的操作时间或者位置的赞/签到数目。代码片段中提供的信息可以由目标页面的拥有者/管理人员选择,或者可以由社交网络系统160自动地选择。代码片段可以用于显示关于搜索结果的关键信息,诸如图像略图、概要、文献类型、访问量、评论、日期、发起人、等级级别、价格、或者其他相关信息。在具体实施方式中,用于对应于在线社交网络中的用户/概念的搜索结果的代码片段可包括由在线社交网络的用户提供或在在线社交网络上可用的情境信息。作为实施例但并不作为限制,代码片段可以包括一个或多个以下类型的信息:群的隐私设置、群中成员的数目、赞助消息(例如渲染为代码片段的线内ad单元)、页面类别、物理地址、传记细节、兴趣、感情状况、性取向/喜好、性别/性、年龄、生日、当前的城市、教育历史、政治联系、宗教信仰、工作历史、所使用的应用程序、评论、标签、其他适宜的情境信息或其任何组合。在具体实施方式中,代码片段可包括对来自社交图谱200的节点或者边的引用。这些代码片段可以被强调突出以表示对应于社交图谱元素的引用。作为实施例但并不作为限制,图7F示出用户“Sol”的搜索结果,其中,该搜索结果的代码片段之一是“喜欢Reposado,The Slanted Door,and 12others”。在这个实施例中,术语“Reposado”和“The Slanted Door”被强调突出(加下划线)以表示它们是对对应于概念“Reposado”和“The Slanted Door”的概念节点204的引用,它们是用户“Sol”喜欢的餐馆(即,用于“Sol”的用户节点202通过喜欢类型边206连接至用于“Reposado”和“The Slanted Door”的概念节点204)。在这个实施例中强调突出的引用还包含对应于“Reposado”和“The Slanted Door”的概念简档页面的线内链路。在具体实施方式中,社交网络系统160可以基于与通过搜索结果识别的用户相关联的隐私设置过滤出用于搜索结果的一个或多个代码片段。尽管本公开内容描述了代码片段的具体类型,但是本公开内容考虑了任何合适的代码片段类型。在具体实施方式中,搜索结果可包括至少一个代码片段,该至少一个代码片段包括对结构化搜索查询的选择的节点和选择的边的一个或多个引用。换言之,响应于结构化搜索查询,社交网络系统160可以生成具有提供与搜索结果如何与搜索查询匹配相关的情境信息的代码片段的搜索结果。这些可以称为世系代码片段,因为它们提供使具体搜索结果如何与结构化查询的社交图谱元素相关情境化的社交图谱信息(节点/边关系信息)。换言之,世系代码片段是向查询用户提供具体搜索结果满足结构化查询的证据的方式。作为实施例但并不作为限制,图7D示出用于结构化查询“我的就职于Facebook和就职于Acme作为软件工程师的朋友”的搜索结果页面。在结构化查询中引用的社交图谱元素包括“我的朋友”(即,用户节点202通过朋友类型边206连接至查询用户的节点),“就职于Facebook(即,用户节点202通过就职于类型边206连接至用于“Facebook”的概念节点204),和“就职于Acme”(即,用户节点202通过就职于类型边206连接至用于“Acme”的概念节点204)。在图7D中示出的用于“Luke”的第一搜索结果包括陈述“Facebook的工程总监”的代码片段,对应于来自结构化查询的“就职于Facebook”记号。因此,该代码片段示出用于“Luke”的搜索结果满足结构化查询的“就职于Facebook”要求,因为“Luke”是“Facebook的工程总监”。“Luke”搜索结果中的其他代码片段提供示出搜索结果如何满足结构化查询的其他标准的又一上下文。换言之,用于“Luke”的用户节点202通过就职于类型边206连接至用于“Facebook”的概念节点204。在具体实施方式中,世系代码片段可以包括一个或多个以下类型的社交图谱信息:就读的学校、工作在/于、喜欢的页面、使用的app、订阅、通过……订阅的、家庭关系、关系联系(结婚、约会等)、住在/在……附近、签到的地方、拜访的地方、住在一个位置的朋友数量、在一个位置学习的朋友数量、作为群成员的朋友、喜欢的数目、谈论页面的人的数量、订阅者的数量、使用应用程序的朋友、应用程序的用户数量、在介质中加标签的人、在介质上/中评论的人、创建介质的人、其他适宜的社交图谱信息或其任何组合。在具体实施方式中,可以强调突出对世系代码片段中的选择的节点或者选择的边的一个或多个引用以表示对应于选择的节点或者选择的边的引用。尽管本公开内容描述了世系代码片段的具体类型,但是本公开内容考虑了任何合适的世系代码片段类型。

在具体实施方式中,搜索结果可包括代码片段,该代码片段包括对通过一条或多条边206连接至查询用户的用户节点202的一个或多个节点的引用。换言之,搜索结果可包括具有关于搜索结果如何与查询用户的朋友相关或者与连接至用户的概念节点204相关的情境信息的代码片段。这些可以称为社交代码片段,因为它们提供使具体搜索结果如何连接至查询用户和/或用户的朋友/兴趣情境化的社交图谱信息(节点/边关系信息)。作为实施例但并不作为限制,图7D示出用于结构化查询“我的就职于Facebook和就职于Acme作为软件工程师的朋友”的搜索结果页面。在图7D中示出的用于“Luke”的第一搜索结果包括陈述“你的自2009年4月以来的朋友”的代码片段。该代码片段提供关于“Luke”搜索结果如何与查询用户相关的情境信息。换言之,用于“Luke”的用户节点202通过朋友类型边206连接至查询用户的节点。“Luke”搜索结果还包括陈述“包括Sol和Steven的197个相互的朋友”的代码片段。该代码片段提供关于“Luke”搜索结果如何与连接至查询用户的其他节点相关的情境信息。换言之,查询用户的用户节点202和用于“Luke”的用户节点202通过朋友类型边206被连接至相同的197个用户节点202。在具体实施方式中,搜索结果可包括多级世系代码片段。多级世系代码片段提供关于代码片段中引用的用户或者概念如何可以与来自结构化查询的查询记号相关的情境信息。其可在响应于复杂的结构化查询中使用。作为实施例但并不作为限制,用户“A”和用户“D”在社交图谱200中可以通过兄弟类型边206(表示它们是兄弟)连接。响应于用于“显示是Acme职员的兄弟的人”的结构化查询,社交网络系统160可以生成用于用户“A”的具有陈述“用户D的兄弟。用户D是在Acme的软件工程师”的代码片段的搜索结果。该代码片段提供关于用户“A”搜索结果如何与用户“D”(他们是兄弟,通过兄弟类型边206连接)相关,和用户“D”如何与“Acme”(用户“D”通过就职于类型边206连接至“Acme”)相关的情境信息。尽管本公开内容描述了社交代码片段的具体类型,但是本公开内容考虑了任何合适的社交代码片段类型。

在具体实施方式中,搜索结果可包括代码片段,该代码片段包括定制的结构化查询。例如,这可以呈现为代码片段内的线内链路。一旦定制的结构化查询将查询发送至社交网络系统160,查询用户然后可以能够点击或选择。在具体实施方式中,定制的结构化查询可以基于相关联的搜索结果定制,使得定制的结构化查询包括对对应于搜索结果的节点的引用(并且对其他社交图谱元素可能的引用)。作为实施例但并不作为限制,参考图7A,对于“Paul”的搜索结果包括读取“浏览他的照片、朋友、兴趣”的代码片段,在此,“照片”、“朋友”和“兴趣”各自分别是搜索“Paul的照片”(即,通过加标签类型边206连接到“Paul”的用户节点202的照片的概念节点204)、“Paul的朋友”和“Paul的兴趣”(即,通过感兴趣类型边206连接到“Paul”的用户节点的概念节点204)的定制的结构化查询。在具体实施方式中,定制的结构化查询可以基于相关联的搜索结果和来自最初的结构化查询(即,用于产生搜索结果的结构化查询)的选择的节点/边定制。这些定制的结构化查询则包括对对应于搜索结果的节点的引用和对从最初的结构化查询选择的节点和选择的边的引用。这些可以称为世系枢轴代码片段,因为它们基于来自最初的结构化查询的社交图谱元素,类似世系代码片段,以及对应于搜索结果的节点,因此基于搜索结果使查询枢转。作为实施例但并不作为限制,再次参考图7A,结构化查询“目前就职于Facebook并且喜欢骑独轮车的人”生成在结果字段710中示出的搜索结果。用于“Tom”的搜索结果可以包括具有结构化查询“Tom的喜欢骑独轮车的朋友”的代码片段,因此引用搜索结果的用户节点202(即,“Tom”的用户节点202)和来自最初的结构化查询的选择的节点和选择的边(即,通过喜欢类型边206连接的用于“骑独轮车”的概念节点204)。作为实施例但并不作为限制,参考图7F,结构化查询“在帕洛阿尔托,加利福尼亚喜欢墨西哥餐馆的人”生成在结果字段710中示出的搜索结果。用于“Sol”的搜索结果包括代码片段“喜欢Reposado,The Slanted Door和12个其他的”,其中“Reposado”和“The Slanted Door”引用用于帕洛阿尔托的具体墨西哥餐馆的概念节点204。类似地,对“12个其他的”的引用可以是用于结构化查询“在帕洛阿尔托,加利福尼亚的Sol喜欢的墨西哥餐馆”的线内链路,因此引用搜索结果的用户节点202(即,“Sol”的用户节点202)和来自最初的结构化查询的选择的节点和选择的边(即,用于“帕洛阿尔托,加利福尼亚”的概念节点204和喜欢类型边206)。虽然本公开内容描述了利用定制的结构化查询生成具体代码片段,但是本公开内容考虑了利用定制的结构化查询生成任意合适的代码片段。

在具体实施方式中,社交网络系统160可以对对应于搜索结果的一个或多个代码片段(或者对应于为搜索结果的目标的节点或者简档页面的代码片段)进行打分。响应于结构化查询,社交网络系统160可以识别对应于查询的节点然后访问对应于这些识别的节点的每个的一个或多个代码片段。社交网络系统160然后可以为每个搜索结果确定用于对应于搜索结果的代码片段的每个的分数。当生成搜索结果时,仅具有大于代码片段阈值分数的分数的这些代码片段可以包括在搜索结果中。例如,该分数可以是置信分数、概率、质量、排序、另一合适类型的分数或者其任意组合。作为实施例但并不作为限制,社交网络系统160可以确定每个代码片段的排序,其中仅前五个排序的代码片段包括在具体搜索结果中。替代地,社交网络系统160可以对每个代码片段进行打分并且包括具有以分数的排序顺序呈现的搜索结果的所有可用的代码片段(可能旁路排序阈值以显示更多数量的具有搜索结果的代码片段)。而且,不同的搜索结果可包括不同数目的代码片段。例如,第一搜索结果可以仅具有与其相关联的两个代码片段,并且两个代码片段可能以分数的排序顺序显示;而第二搜索结果可以具有与其相关联的九个代码片段,并且九个代码片段可以分数的排序顺序显示。在具体实施方式中,社交网络系统160可以基于代码片段与结构化查询的社交相关性确定代码片段的分数。引用更紧密地连接或与查询用户有关的社交图谱元素的代码片段可比引用未紧密连接或者与查询用户不太有关的社交图谱元素的代码片段得更高的分数。在具体实施方式中,社交网络系统160可以基于代码片段与结构化查询的文本相关性确定代码片段的分数。特定代码片段的文本相关性可以基于特定代码片段中的术语和术语数目如何与从查询用户接收的文本查询匹配。在具体实施方式中,社交网络系统160可以基于与查询用户相关联的搜索历史确定代码片段的分数。引用查询用户之前访问的,或者与查询用户之前访问的节点/简档页面相关的社交图谱元素的代码片段可更可能与用户的结构化查询相关。因此,这些代码片段可被给出相对较高的分数。作为实施例但并不作为限制,如果查询用户提前搜索“我的单身的女性朋友”,则由于查询中的查询修改“谁是单身”,社交网络系统160可以确定查询用户对他正在搜索的人的感情状况感兴趣,该查询修改“谁是单身”将搜索具有“单身”感情状况的用户。因此,响应于随后的查询(例如,如图7E所示,“过去就读于斯坦福大学的Facebook工程师”),由于查询用户对那类情境信息感兴趣的历史社交网络系统160可以使示出了搜索结果的感情状况的代码片段比其他代码片段得更高的分(因此,在图7E中示出的搜索结果可使示出了对于每个搜索结果的关系状况的代码片段得更高的分,诸如“处于一种关系”或“已婚”)。在具体实施方式中,社交网络系统160可以基于搜索的种类确定代码片段的分数。可以基于作为搜索对象的内容类型对搜索进行分类。与被搜索的内容的类型更相关的代码片段可以比不太相关的代码片段得更高的分数。作为实施例但并不作为限制,当搜索用户时,包括关于用户的个人信息(例如,位置、感情状况等)的代码片段可以比其他类型的代码片段得更高的分数,因为个人信息可以被认为与搜索其他用户的查询用户更相关。作为另一个实施例但并不作为限制,当搜索概念时,包括关于概念的社交图谱信息(例如,订阅者/粉丝的数目、赞的数目、签到/评论的数目等)的代码片段可以比其他类型的代码片段得更高的分数,因为社交图谱信息可以被认为与搜索概念的查询用户更相关。在具体实施方式中,社交网络系统160可基于广告赞助者确定代码片段的分数。广告商(诸如,对应于具体节点的具体简档页面的用户或者管理人员)可以赞助具体节点使得引用那个节点的代码片段可以得更高的分数。尽管本公开内容描述了以具体方式对代码片段进行打分,然而本公开内容考虑以任意合适方式对代码片段进行打分。图8示出用于生成搜索结果和代码片段的示例性方法800。方法可从步骤810开始,在步骤810,社交网络系统160可访问包括多个节点和连接节点的多条边206的社交图谱200。节点可包括第一用户节点202和多个第二节点(一个或者多个用户节点202、概念节点204、或者其任意组合)。在步骤820,社交网络系统160可从第一用户接收包括引用来自多个第二节点的一个或多个选择的节点和来自多条边的一条或者多条选择的边的结构化查询。在步骤830,社交网络系统160可以生成对应于结构化查询的搜索结果。每个搜索结果可以对应于多个第二节点的第二节点。而且,每个搜索结果可以包括情境信息的关于对应于搜索结果的第二节点的一个或多个代码片段。每个搜索结果的至少一个代码片段包括对结构化查询的选择的节点和选择的边的一个或多个引用。具体实施方式可重复图8中的方法的一个或多个步骤,视情况而定。尽管本公开描述并且示出了图8中按照特定顺序发生的特定步骤,然而,本公开设定了图8中按照任意合适顺序发生的方法的任意合适步骤。而且,尽管本公开描述并且示出了完成图8中的方法的特定步骤的特定部件、设备或者系统,然而,本公开考虑完成图8中的方法的任意合适步骤的任意合适部件、设备或者系统的任意合适组合。

修改结构化搜索查询

如上所述,图7A至图7G示出示例性搜索结果页面。用于生成具体搜索结果页面的结构化查询在查询字段350中示出,并且响应于结构化查询生成的各种搜索结果在结果字段710中示出。响应于从查询用户接收的结构化查询,社交网络系统160可以生成可以用于细化或者枢轴查询的一个或多个查询修改。查询修改可以引用具体社交图谱元素,允许查询用户增加或替换在结构化查询中引用的社交图谱元素。在具体实施方式中,一个或多个查询修改可以呈现在变形字段720、建议的搜索字段730、加宽的搜索字段740、或者消歧字段750中的搜索结果页面上。查询修改可以通过增加另外的术语至查询用于细化结构化查询或者使结构化查询变窄。通常,增加另外的术语至结构化查询将降低通过查询生成的搜索结果的数目。作为实施例但并不作为限制,响应于结构化查询“我的就读于斯坦福大学的朋友”,社交网络系统160可以生成对“我的朋友”术语的查询修改诸如,“我的[男性/女性]朋友”以通过性别过滤搜索结果,或者“我的[单身/已婚]朋友”以通过感情状况过滤搜索结果。查询修改还可以通过改变查询的一个或多个术语用来枢轴结构化查询或者使结构化查询加宽。作为实施例但并不作为限制,响应于结构化查询“我的就职于Facebook的朋友”,社交网络系统160可以生成作为可以替换“就职于Facebook”术语的查询修改“就职于Acme”,从而将查询从搜索一组用户枢转至搜索另一组。通过向查询用户提供这些建议的查询修改,社交网络系统160可以为用户提供强大的方式以精确地搜索他们寻找的是什么。一旦查询用户选择查询修改,可以使用适当的语法生成新的结构化查询,使得使用自然语言句法也渲染新的结构化查询。社交网络系统160还可以生成可以显示在搜索结果页面上的替代的结构化查询。这些替代的结构化查询包括以下更多地描述的建议的查询、加宽的查询和消歧查询。尽管本公开内容描述了以特定方式生成查询修改,然而,本公开内容考虑以任意合适方式生成查询修改。而且,虽然本公开内容描述了以具体方式向用户显示查询修改,然而,本公开内容考虑以任意合适的方式向用户显示查询修改。

在具体实施方式中,社交网络系统160可生成一个或多个查询修改。查询修改可以响应于接收第一结构化查询生成,使得查询修改可以用于修改第一结构化查询。查询修改可以是可用于修改搜索查询的任何类型的术语。例如,查询修改可以是文本串、n元语法、终端/查询记号、值、特性、查询操作员、另一合适类型的术语、或者它们的任何组合。在具体实施方式中,查询修改可以通过种类组织。作为实施例但并不作为限制,在图7A中示出的变形字段720示出用于“工作单位”、“学校”、“目前住的城市”、“家乡”、“感情状况”、“对...感兴趣”、“朋友”、“性别”、“姓名”和“爱好的事情”的查询修改。在具体实施方式中,查询修改可以用户搜索结果页面的一部分发送到查询用户。作为实施例但并不作为限制,在图7D、图7E和图7F中示出的搜索结果页面都示出在变形字段720中的下拉菜单中显示的查询修改的列表。在这些下拉菜单中列出的查询修改可以用于增加或替换在搜索字段350中显示的结构化查询中的术语。在具体实施方式中,定制的查询修改可以结合提前键入处理生成。而不是从预生成的查询修改的列表选择,用户可以输入文本串,并且提前键入处理可以识别对应于来自输入的文本串的一个或多个n元语法的社交图谱元素。社交网络系统160然后可以呈现一个或多个可能的匹配。作为实施例但并不作为限制,图7E示出查询用户将串“哈佛”输入变形字段720中的用于“学校”种类的输入栏中。作为响应,提前键入处理生成几个可能的匹配查询修改,包括“哈佛”、“哈佛法学院”、和“哈佛西湖”等。在下拉菜单中显示的这些列出的学校是引用社交图谱200中对应于这些学校的概念节点204。尽管本公开内容描述并示出查询修改的具体种类,然而,本公开内容考虑查询修改的任意合适的种类。

在具体实施方式中,查询修改可包括引用来自社交图谱200的一个或多个修改节点或者一个或多个修改边。修改节点或者修改边可以用于增加或替换引用第一结构化查询中的节点或者边。查询用户然后可以选择一个或多个这些查询修改以增加修改节点/边至第一结构化查询,或者通过替换结构化查询中的节点/边与一个或多个修改节点/边。作为实施例但并不作为限制,图7D示出通过结构化查询“我的就职于Facebook和就职于Acme作为软件工程师的朋友”生成的示例性搜索结果页面。查询用户可以通过也指定通过搜索查询识别的用户就读的学校想要细化搜索。为了指定学校,查询用户可以点击“学校”下拉菜单,如图7D所示,该下拉菜单可以显示通过社交网络系统160生成的一列查询修改。在该情况下,图7D中的下拉菜单列出学校“斯坦福大学”、“门罗阿瑟顿高中”和“加州大学伯克利分校”等。在下拉菜单中显示的这些列出的学校是引用社交图谱200中对应于这些学校的概念节点204。查询用户然后可以选择这些查询修改的一个或多个以增加引用的学校至结构化查询,从而通过学校过滤搜索结果。响应于来自查询用户的选择,社交网络系统160可以修改结构化查询以包括对选择的学校的引用。作为另一个实施例但并不作为限制,图7B示出通过结构化查询“我的就职于Facebook的朋友”生成的示例性搜索结果页面。对“我的朋友”的引用对应于通过朋友类型边206连接至查询用户的用户节点202,而对“Facebook”的引用对应于用于公司“Facebook”的概念节点204。在图7B中示出的变形字段720中示出对结构化查询中的具体节点和边的这些引用,其中用于“工作单位”的种类已选择术语“Facebook”,同时用于“朋友”的种类已选择术语“我的朋友”。然而,查询用户可以想要枢轴搜索以替代在另一公司搜索朋友。为了修改查询,查询用户可以选择“工作单位”种类以改变来自“Facebook”对另一公司(诸如,“Acme”)的引用。当查询用户选择“工作单位”种类时,社交网络系统160可以显示已生成用于该种类的一列查询修改。响应于来自查询用户的选择,社交网络系统160则可以修改结构化查询并且将对“Facebook”的引用替换为对“Acme”的引用(使得新的结构化查询将是“我的就职于Acme的朋友”),从而将搜索从一组朋友枢转至另一组。尽管本公开内容使用以特定方式描述了特定查询修改,然而,本公开内容考虑使用以任意合适方式的任意合适的查询修改。

在具体实施方式中,社交网络系统160可以响应于对一个或多个查询修改的选择生成第二结构化查询。查询用户可以从在变形字段720中示出的菜单选择一个或多个查询修改,例如,通过点击或选择具体查询修改。在具体实施方式中,查询修改可以引用用于第一结构化查询的另外的节点或者另外的边。在该情况下,社交网络系统160可以生成包括引用来自第一结构化查询的选择的节点和选择的边、和在选择的查询修改中引用的每个修改节点或者修改边的第二结构化查询。作为实施例但并不作为限制,对于第一结构化查询“我在圣何塞的朋友”,社交网络系统160可以接收查询修改“就职于Acme”(其引用通过就职于类型边206连接至用于“Acme”的概念节点204)。社交网络系统160则可以生成第二结构化查询“我的在圣何塞就职于Acme的朋友”,第二结构化查询结合在查询修改中引用的增加节点和另外的边。在具体实施方式中,查询修改可以引用用于第一结构化查询的替代的节点或者替代的边。在该情况下,社交网络系统160可以生成包括引用来自第一结构化查询的选择的节点和选择的边,除了每个引用替代的节点替换引用第一结构化查询的选择的节点。类似地,每个引用替代的边替换引用第一结构化查询的选择的边。作为实施例但并不作为限制,对于第一结构化查询“我在圣何塞的朋友”,社交网络系统160可以接收查询修改“在旧金山”(其引用通过住在类型边206连接至用于城市“旧金山”的概念节点204)。社交网络系统160则可以生成第二结构化查询“我的在旧金山的朋友”,将对来自第一结构化查询的选择的节点/边“在圣何塞”的引用替换为替代的节点/边“在旧金山”。尽管本公开内容描述了以具体方式生成具体修改的结构化查询,然而本公开内容考虑以任意合适方式生成任意合适修改的结构化查询。

在具体实施方式中,社交网络系统160可以对用于第一结构化查询的一个或多个查询修改进行打分。响应于结构化查询,社交网络系统160可以识别可用于修改结构化查询的一个或多个查询修改。社交网络系统160则可以确定各个识别的查询修改的分数。当生成发送至查询用户的一组查询修改时,仅具有大于查询修改阈值分数的分数的那些查询修改可以包括在实际发送的该组查询修改中。例如,该分数可以是置信分数、概率、质量、排序、另一合适类型的分数或者其任意组合。作为实施例但并不作为限制,社交网络系统160可以确定每个查询修改的排序,其中仅前六个排序的查询修改包括在具体搜索结果中。在具体实施方式中,社交网络系统160可以基于查询修改与结构化查询的社交相关性确定查询修改的分数。引用更紧密地连接或与查询用户相关的社交图谱元素的查询修改可比引用未紧密连接或者与查询用户不太相关的社交图谱元素的查询修改得更高的分数。在具体实施方式中,社交网络系统160可以基于对应于查询修改的可能的搜索结果的数目确定查询修改的分数。将生成更多结果的查询修改(即,过滤出较少的结果)可以比生成较少的结果的查询修改得更高的分数。换言之,当用于修改为第一结构化查询时,将与更多结果(或更多当前结果)匹配的查询修改可以比将与较少的结果匹配的查询修改得更高的分数。作为实施例但并不作为限制,图7D示出用于变形字段720中的“学校”种类的可能的查询修改。引用“斯坦福大学”的查询修改在建议的查询修改的该列表中可以排序靠前,因为许多搜索结果与该限制匹配。换言之,关于对应于结果字段710中的搜索结果的用户节点202,许多这些用户节点202可以通过边206连接至用于“斯坦福大学”的概念节点204。因此,如果对用于“斯坦福大学”的概念节点204的引用增加至在查询字段350中示出的结构化查询,那么许多当前搜索结果将仍与结构化查询匹配(即,被过滤出的很少)。类似地,下拉菜单中的较低排名的学校,诸如“卡耐基梅隆大学”和“圣塔克拉拉大学”可以与较少的当前结果匹配(即,将过滤出更多的结果),并且因而排名较低。枢转查询修改可以类似地进行打分。在具体实施方式中,社交网络系统160可以基于与查询用户相关联的搜索历史确定查询修改的分数。引用查询用户之前访问的或者与查询用户之前访问的节点/简档页面相关的社交图谱元素的查询修改可更可能与用户的结构化查询相关。因此,这些查询修改可被给出相对较高的分数。作为实施例但并不作为限制,如果查询用户之前搜索“我在斯坦福大学的朋友”,那么社交网络系统160可以确定查询用户对连接至用于“斯坦福大学”的概念节点204的用户节点202感兴趣。因此,响应于随后的查询,社交网络系统160可以使引用“斯坦福大学”的查询修改的排序高于其他查询修改,因为查询用户对该类型的情境信息的兴趣历史(因此,在图7D中示出的搜索结果可以使用于“斯坦福大学”的查询修改排序更高)。在具体实施方式中,社交网络系统160可基于广告赞助者确定查询修改的分数。广告商(诸如,对应于具体节点的具体简档页面的用户或者管理人员)可以赞助具体节点使得引用该节点的查询修改可以得更高的分数。尽管本公开内容描述了以特定方式对查询修改进行打分,然而,本公开内容考虑以任意合适方式对查询修改进行打分。

在具体实施方式中,响应于第一结构化查询,社交网络系统160可以生成一个或多个第二结构化查询以枢轴结构化查询。这些第二结构化查询的每个可基于第一结构化查询。这些可以称为建议的查询。这些建议的查询可以是第一结构化查询的变体,在此,建议的查询使用与第一结构化查询相同的查询记号中的至少一些。然而,为了枢转查询,可以利用可替换的查询记号替换第一结构查询中的一个或多个查询记号。类似地,社交网络系统160可以将对来自第一结构化查询的选择的节点/边的一个或多个的引用替换为对替代的节点/边的一个或多个的引用以生成一个或多个第二结构化查询。如果被取代到第一结构化查询,则替代的查询记号可以通过识别将产生类似的搜索结果的查询记号确定。作为实施例但并不作为限制,对于第一结构化查询“我的就读于斯坦福大学的朋友”,社交网络系统160可以识别可取代到第一结构化查询中的一个或多个查询记号。例如,用于“斯坦福大学”的查询记号可以由其他学校替换。作为另一实施例,用于“谁就读于”和“斯坦福大学”的查询记号可以由用于“谁住在”和“帕洛阿尔托”的查询记号替换。由于在住在城市帕洛阿尔托的用户和就读于学校斯坦福大学的用户之间的高重叠率,该较后的实施例可以产生与第一结构化查询相同的许多搜索结果,因为学校在地理位置上接近于城市(即,在社交图谱200中,在连接到用于“斯坦福”的概念节点204的用户节点202和连接到用于“帕洛阿尔托”的概念节点204之间可以存在大重叠率)。还可以基于最初的查询通过使用模板确定替代的查询记号。作为实施例但并不作为限制,如果第一结构化查询搜索用户,则建议的查询也可以搜索用户。类似地,如果第一结构化查询搜索照片,则建议的查询也可以搜索照片。在具体实施方式中,建议的查询可以被发送到查询用户作为搜索结果页面的一部分。作为实施例但并不作为限制,在图7B中示出的搜索结果页面示出在建议的搜索字段730中的一些示例性建议的查询。响应于第一结构化查询“我的就职于Facebook的朋友”,社交网络系统160生成在建议的搜索字段730中示出的建议的结构化查询“我的喜欢Facebook的朋友的朋友”和“我的住在帕洛阿尔托,加利福尼亚的朋友”等。这些建议的查询可以基于第一结构化查询生成,其中来自第一结构化查询的一个或多个查询记号已被替换。尽管本公开内容描述了以特定方式生成结构化查询,然而,本公开内容考虑了以任意合适的方式生成结构化查询。

在具体实施方式中,响应于第一结构化查询,社交网络系统160可以生成一个或多个第二结构化查询以使结构化查询加宽。这些可以称为加宽的查询。这些加宽的查询可以是第一结构化查询的变体,其中,加宽的查询使用比第一结构化查询少的查询记号、或者替换具体查询记号以生成更多的搜索结果。换言之,社交网络系统160可以删除对来自第一结构化查询的选择的节点/边的一个或多个引用以生成一个或多个第二结构化查询。类似地,社交网络系统160可以将对来自第一结构化查询的选择的节点/边的一个或多个引用替换为对替代的节点/边的一个或多个引用以生成一个或多个第二结构化查询。在该情况下,如果取代第一结构化查询,替换的查询记号可以通过识别将产生比最初的查询记号更多的搜索结果的查询记号确定。在具体实施方式中,当对应于第一结构化查询的搜索结果在搜索结果的阈值数目以下时可以生成加宽的结构化查询。具有太多限制、或者使用与许多社交图谱实体不相配的查询记号的结构化查询可能产生很少或者没有结果。当结构化查询产生过少的结果时,其可对提供用于如何修改该查询以生成另外的结果的建议有用处。社交网络系统160可以分析第一结构化查询并且提供用于如何修改查询使得其产生更多结果的提议。搜索结果的阈值数目可以是任何合适的结果数目,并且可以通过社交网络系统160确定或者是用户定义的。在具体实施方式中,社交网络系统160可以生成一个或多个包括对来自第一结构化查询的零个或多个选择的节点和零条或多条选择的边的引用的第二结构化查询,其中,每个第二结构化查询包括至少一个对选择的节点或者选择的边比第一结构化查询较少的引用。作为实施例但并不作为限制,参考图7A,响应于第一结构化查询“目前就职于Facebook并且喜欢骑独轮车的人”,社交网络系统160在加宽的搜索字段740中生成加宽的查询“喜欢骑独轮车的人”和“目前Facebook员工”。这些加宽的查询可以基于第一结构化查询生成,其中,来自第一结构化查询的一个或多个查询记号已被移除(即,已分别移除对“Facebook”和“独轮车”的引用)。通过移除来自第一结构化查询的限制,更多用户应该满足查询并且因此这些查询应该生成更多搜索结果。在具体实施方式中,社交网络系统160可以生成一个或多个包括对来自第一结构化查询的零个或多个选择的节点和零条或多条选择的边的引用的第二结构化查询,其中,每个第二结构化查询包括将对第一结构化查询的选择的节点或者选择的边的至少一个引用分别替换为替代的节点或者替代的边。作为实施例但并不作为限制,再次参考图7A,社交网络系统160生成加宽的查询“对骑独轮车感兴趣的Facebook过去录用的人”和“对骑独轮车感兴趣的Facebook曾经录用的人”。这些加宽的查询可以基于第一结构化查询生成,其中“目前就职于...”查询记号已分别被“过去录用”查询记号和“曾经录用”查询记号替换,从而使用不同的时间表过滤搜索结果(其可以使来自就职于类型边206的可以满足该查询的连接边的类型扩展至还包括就职于类型边206)。在具体实施方式中,加宽的查询可以被发送到查询用户作为搜索结果页面的一部分。作为实施例但并不作为限制,在图7A中示出的搜索结果页面示出在扩展的搜索字段740中的以上已论述的一些示例性加宽的查询。尽管本公开内容描述了以具体方式生成具体加宽的查询,然而本公开内容考虑以任意合适方式生成任意合适加宽的查询。

在具体实施方式中,响应于第一结构化查询,社交网络系统160可以生成一个或多个第二结构化查询以使结构化查询消歧。这些可以称为消歧查询。这些消歧查询可以是第一结构化查询的变体,其中消歧查询使用来自第一结构化查询的一些查询记号,但是还可以将一些查询记号替换为替代的查询记号。可以发生某些节点可对应于来自查询用户的来自非结构化文本查询的相同的n元语法(例如,用于“斯坦福”的n元语法可以对应于用于任一学校“斯坦福大学”或者城市“斯坦福,加利福尼亚”的概念节点204)。当引用的边类型或者引用的节点之间的关系在结构化查询中不清楚时,消歧也可以有帮助。社交网络系统160可以确定具体结构化查询是歧义的,由于查询用户可以不同的方式解释结构化查询的自然语言句法。因此,当选择具体结构化查询时,社交网络系统160可以生成出乎意料的或者并非查询用户寻找的搜索结果。在这些情形中,社交网络系统160可以提供结构化查询如何被解析和其如何识别显示的搜索结果的解释。此外,社交网络系统160可以提供最初的查询的变体以帮助查询用户找到他或她寻找的。在具体实施方式中,消歧查询可以被发送到查询用户作为搜索结果页面的一部分。作为实施例但并不作为限制,在图7G中示出的搜索结果页面示出在消歧字段750中显示的示例性消歧查询。响应于第一结构化查询“我的来自田纳西州的朋友的照片”,社交网络系统160生成消歧查询“我的朋友在田纳西州的照片”。社交网络系统160还提供其如何解析第一结构化查询的解释,陈述“这些结果示出属于你的来自田纳西州的朋友的照片”。换言之,社交网络系统160解析第一结构化查询以识别对应于通过加标签类型边206连接至用户节点202的照片的概念节点204,并且其中这些用户节点202通过住在或者来自类型边206连接至用于“田纳西州”的概念节点204。与此相反,建议的消歧查询将识别对应于通过拍摄于类型边206连接至用于“田纳西州”的概念节点204的照片的概念节点204,其中用于照片的概念节点204也连接至查询用户的朋友的用户节点202。尽管本公开内容描述了以具体方式生成具体消歧查询,然而本公开内容考虑以任意合适方式生成任意合适消歧查询。

图9示出了用于修改结构化搜索查询的示例性方法900。方法可从步骤910开始,在步骤910,社交网络系统160可访问包括多个节点和连接节点的多条边206的社交图谱200。节点可包括第一用户节点202和多个第二节点(一个或者多个用户节点202、概念节点204、或者其任意组合)。在步骤920,社交网络系统160可从第一用户接收包括引用来自多个第二节点的一个或多个选择的节点和来自多条边的一条或多条选择的边的结构化查询。在步骤930,社交网络系统160可以生成用于第一结构化查询的一个或多个查询修改。每个查询修改可以包括引用来自多个第二节点的一个或多个修改节点或来自多条边的一条或多条修改的边。具体实施方式可重复图9中的方法的一个或者多个步骤,视情况而定。尽管本公开内容描述并且示出了图9中以特定顺序发生的方法的特定步骤,但是本公开内容考虑了图9中以任意合适顺序发生的方法的任意合适步骤。此外,尽管本公开内容描述并且示出了执行图9中的方法的特定步骤的特定部件、设备或者系统,但是本公开内容考虑了执行图9中的方法的任意合适步骤的任意合适部件、设备或者系统的任意合适组合。

系统和方法

图10示出了示例性计算机系统1000。在具体实施方式中,一种或者多种计算机系统1000执行此处所描述或者示出的一种或者多种方法中的一个或者多个步骤。在具体实施方式中,一种或者多种计算机系统1000提供此处所描述或者示出的功能。在具体实施方式中,在一种或者多种计算机系统1000上运行的软件执行此处所描述或者示出的一种或者多种方法中的一个或者多个步骤或提供此处所描述或者示出的功能。具体实施方式包括一种或者多种计算机系统1000的一个或者多个部分。此处,引用的计算机系统可包括计算设备,视情况而定,并且反之亦然。而且,引用的计算机系统可包括一种或者多种计算机系统,视情况而定。

本公开考虑任意合适数目的计算机系统1000。本公开考虑采用任意合适物理形式的计算机系统1000。作为实施例但并不作为限制,计算机系统1000可以是嵌入式计算机系统、片上系统(SOC)、单板计算机系统(SBC)(诸如,计算机模块(COM)或者系统模块(SOM)等)、桌面型计算机系统、膝上型或者笔记本计算机系统、交互式平台、大型机、计算机系统网络、移动电话、个人数字助理(PDA)、服务器、平板计算机系统、或者这些中的两种或者更多种的组合。计算机系统1000可包括单一式或者分布式的跨多个位置、跨多台机器、跨多个数据中心、或者驻留在云中的一种或者多种计算机系统1000,计算机系统1000可包括一个或者多个网络中的一个或者多个云部件,视情况而定。一种或者多种计算机系统1000可在无严格空间或者时间限制情况下执行此处所描述或者示出的一种或者多种方法中的一个或者多个步骤,视情况而定。作为实施例但并不作为限制,一种或者多种计算机系统1000可实时地或者以批量模式执行此处所描述或者示出的一种或者多种方法中的一个或者多个步骤。一种或者多种计算机系统1000可在不同时间或者在不同位置执行此处所描述或者示出的一种或者多种方法中的一个或者多个步骤,视情况而定。

在具体实施方式中,计算机系统1000包括处理器1002、内存1004、存储器1006、输入/输出(I/P)接口1008、通信接口1010、以及总线1012。尽管本公开描述并且示出了具有具体布置的具体数目的具体部件的具体计算机系统,然而本公开考虑具有任意合适布置的任意合适数目的任意合适部件的任意合适计算机系统。

在具体实施方式中,处理器1002包括用于执行诸如组成计算机程序的指令的硬件。作为实施例但并不作为限制,为了执行指令,处理器1002可从内部寄存器、内部缓存、内存1004、或者存储器1006中检索(或者获取)指令;将指令解码并且执行指令;然后,将一个或者多个结果写入内部寄存器、内部缓存、内存1004、或者存储器1006中。在具体实施方式中,处理器1002可包括用于数据、指令、或者地址的一个或者多个内部缓存。本公开考虑包括任意合适数目的任意合适内部缓存的处理器1002,视情况而定。作为实施例但并不作为限制,处理器1002可包括一个或者多个指令缓存、一个或者多个数据缓存、以及一个或者多个转译后备缓冲器(TLB)。指令缓存中的指令可以是内存1004或者存储器1006中的指令副本,并且指令缓存可加快处理器1002对这些指令的检索速度。数据缓存中的数据可以是使通过处理器1002执行的指令运行的内存1004或者存储器1006中的数据副本、用于使处理器1002中执行的后续指令访问或者用于写入内存1004或存储器1006中的通过处理器1002执行的之前指令的结果、或者其他合适数据。数据缓存可加快处理器1002的读或者写操作。TLB可加快处理器1002的虚拟地址转译速度。在具体实施方式中,处理器1002可包括用于数据、指令、或者地址的一个或者多个内部寄存器。本公开考虑包括任意合适数目的任意合适内部寄存器的处理器1002,视情况而定。处理器1002可包括一个或者多个算法逻辑单元(ALU)、可以是多核处理器、或者包括一个或者多个处理器1002,视情况而定。尽管本公开描述并且示出了具体处理器,然而,本公开考虑任意合适的处理器。

在具体实施方式中,内存1004包括用于存储使处理器1002执行的指令或者用于存储使处理器1002运行的数据的主内存。作为实施例但并不作为限制,计算机系统1000可将指令从存储器1006或者另一源(诸如,另一计算机系统1000)加载到内存1004中。处理器1002则可将指令从内存1004加载到内部寄存器或者内部缓存。为了执行指令,处理器1002可从内部寄存器或者内部缓存检索指令并且将其解码。在执行指令过程中或者之后,处理器1002可将一个或者多个结果(可以是中间结果或者最终结果)写入内部寄存器或者内部缓存中。处理器1002则可将这些结果中的一个或者多个写入内存1004中。在具体实施方式中,处理器1002仅执行一个或者多个内存寄存器或者内部缓存或者内存1004(与存储器1006相反或者其他地方)中的指令并且仅运行一个或者多个内存寄存器或者内部缓存或者内存1004(与存储器1006相反或者其他地方)中的数据。一条或者多条内存总线(每条可包括地址总线和数据总线)可将处理器1002耦接至内存1004。如下所述,总线1012可包括一条或者多条内存总线。在具体实施方式中,一个或者多个内存管理单元(MMU)驻留在处理器1002与内存1004之间并且便于访问由处理器1002请求的内存1004。在具体实施方式中,内存1004包括随机存取内存(RAM)。RAM可以是易失性内存,视情况而定。RAM可以是动态RAM(DRAM)或者静态RAM(SRAM),视情况而定。而且,RAM可以是单端口式或者多端口式RAM,视情况而定。本公开考虑任意合适的RAM。内存1004可包括一个或者多个内存1004,视情况而定。尽管本公开描述并且示出了具体内存,然而本公开考虑任意合适的内存。

在具体实施方式中,存储器1006包括用户数据或者指令的大容量存储器。作为实施例但并不作为限制,存储器1006可包括硬盘驱动(HDD)、软盘驱动、闪存、光盘、磁光盘、磁带、或者通用串行总线(USB)驱动、或者这些中的两种或者更多种的组合。存储器1006可包括可移动或者不可移动(或者固定)介质,视情况而定。存储器1006可以位于计算机系统1000的内部或者外部,视情况而定。在具体实施方式中,存储器1006是易失性的固态内存。在具体实施方式中,存储器1006包括只读内存(ROM)。ROM可以是掩模编程ROM、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、电可更改ROM(EAROM)、或者闪存、或者这些中的两种或者更多种的组合,视情况而定。本公开考虑采用任何合适物理形式的大容量存储器1006。存储器1006可包括便于处理器1002与存储器1006之间通信的一个或者多个存储控制单元,视情况而定。存储器1006可包括一个或者多个存储器1006,视情况而定。尽管本公开描述并且示出了具体存储器,然而,本公开考虑任意合适的存储器。

在具体实施方式中,I/O接口1008包括硬件、软件、或者提供用于计算机系统1000与一个或者多个I/O设备之间通信的一个或者多个接口的硬件和软件。计算机系统1000可包括这些I/O设备中的一个或者多个,视情况而定。这些I/O设备中的一个或者多个能够实现人与计算机系统1000之间的通信。作为实施例但并不作为限制,I/O设备可包括键盘、键区、麦克风、监控器、鼠标、打印机、扫描仪、扬声器、静态照相机、铁笔、平板电脑、触摸屏、轨迹球、摄影机、另一合适的I/O设备、或者这些中的两种或者更多种的组合。I/O设备可包括一个或者多个传感器。本公开考虑任意合适的I/O设备和用于其的任意合适I/O接口1008。I/O接口1008可包括一个或者多个设备或者能够使处理器1002驱动这些I/O设备中的一个或者多个的软件驱动器,视情况而定。I/O接口1008可包括一个或者多个I/O接口1008,视情况而定。尽管本公开描述并且示出了具体I/O接口,然而,本公开考虑任意合适的I/O接口。

在具体实施方式中,通信接口1010包括硬件、软件、或者提供用于计算机系统1000与一个或者多个其他计算机系统1000或一个或者多个网络之间通信(诸如,基于分组的通信等)的一个或者多个接口的硬件和软件。作为实施例但并不作为限制,通信接口1010可包括用于与以太网或者其他基于有线的网络通信的网络接口控制器(NIC)或者网络适配器、或者用于与诸如WI-FI网络等无线网络通信的无线NIC(WNIC)或者无线适配器。本公开考虑任意合适的网络和与其有关的任意合适通信接口1010。作为实施例但并不作为限制,计算机系统1000可与自组网、个人局域网(PAN)、局域网(LAN)、广域网(WAN)、城域网(MAN)、或者因特网的一个或多个部分、或者这些中的两种或者更多种的组合通信。这些网络中的一个或者多个中的一个或者多个部分可以为有线或者无线。例如,计算机系统1000可与无线PAN(WPAN)(诸如,蓝牙WPAN等)、WI-FI网络、WI-MAX网络、蜂窝电话网络(诸如,全球移动通信系统(GSM)网络等)、或者其他合适的无线网络、或者这些中的两种或者更多种的组合通信。计算机系统1000可包括用于这些网络中的任一个的任意合适通信接口1010,视情况而定。通信接口1010可包括一个或者多个通信接口1010,视情况而定。尽管本公开描述并且示出了具体通信接口,然而本公开考虑任意合适通信接口。

在具体实施方式中,总线1012包括硬件、软件、或者将计算机系统1000的部件彼此耦接的硬件和软件。作为实施例但并不作为限制,总线1012可包括加速图形端口(AGP)或者其他图形总线、增强工业标准架构(EISA)总线、前端总线(FSB)、超发送(HT)互连、工业标准架构(ISA)总线、无限带宽互连、低脚位(LPC)总线、内存总线、微通道架构(MCA)总线、外围部件互连(PCI)总线、PCI-Express(PCIe)总线、串行高级技术附接(SATA)总线、视频电子标准协会本地(VLB)总线、或者另一合适的总线、或者这些中的两种或者更多种的组合。总线1012可包括一条或者多条总线1012,视情况而定。尽管本公开描述并且示出了具体总线,然而本公开考虑任意合适的总线或者互连。

此处,计算机可读非易失性存储媒介或者介质可包括一个或者多个基于半导体或者其他集成电路(IC)(诸如,场可编程门阵列(FPGA)或者专用IC(ASIC)等)、硬盘驱动(HDD)、混合硬驱动(HHD)、光盘、光盘驱动(ODD)、磁光盘、磁光驱动、软盘、软盘驱动(FDD)、磁带、固态驱动(SSD)、RAM驱动、安全数字卡或者驱动、任何其他合适的计算机可读非易失性存储介质、或者这些中的两种或者更多种的任意合适组合,视情况而定。计算机可读非易失性存储媒介可以是易失性、非易失性、或者易失性与非易失性的组合,视情况而定。

其他

此处,除非另有明确指示或者上下文另有指示,否则,“或者”为包含的并且并不具有排斥性。因此,在本公开中,除非另有明确指示或者上下文另有指示,否则,“A或者B”指“A、B、或者A和B”。而且,除非另有明确指示或者上下文另有指示,否则,“和”为连带的。因此,在本公开中,除非另有明确指示或者上下文另有指示,否则,“A和B”指“连带的或各自的A和B”。

本公开的范围包括对本领域普通技术人员理解的此处所描述或者示出的示例性实施方式的所有更改、替换、变形、变更、以及改造。本公开的范围并不局限于此处所描述或者示出的示例性实施方式。而且,尽管本公开描述并且示出了包括具体部件、元件、功能、操作、或者步骤的相应实施方式,然而,这些实施方式中的任一种可包括本领域普通技术人员理解的本公开中任何地方所描述或者示出的部件、元件、功能、操作、或者步骤的任何组合或者任何置换。而且,在所附权利要求中,只要该装置、系统、或者部件被如此适配、布置、能够、配置、使能够、可操作、或者操作,则引用被适配成、布置成、能够、配置成、使能够、可操作为、或者操作为执行具体功能的装置、或者系统、或者装置或系统的部件包括无论其或者该具体功能是否被激活、开启、或者解锁的装置、系统、部件。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1