CN107256269B - 方法、计算机可读非临时性存储介质和系统 - Google Patents

方法、计算机可读非临时性存储介质和系统 Download PDF

Info

Publication number
CN107256269B
CN107256269B CN201710476439.5A CN201710476439A CN107256269B CN 107256269 B CN107256269 B CN 107256269B CN 201710476439 A CN201710476439 A CN 201710476439A CN 107256269 B CN107256269 B CN 107256269B
Authority
CN
China
Prior art keywords
user
inquiry
constraint
node
search
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
CN201710476439.5A
Other languages
English (en)
Other versions
CN107256269A (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.)
Meta Platforms Inc
Original Assignee
Facebook Inc
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 Facebook Inc filed Critical Facebook Inc
Publication of CN107256269A publication Critical patent/CN107256269A/zh
Application granted granted Critical
Publication of CN107256269B publication Critical patent/CN107256269B/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/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24537Query rewriting; Transformation of operators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24564Applying rules; Deductive queries
    • G06F16/24565Triggers; Constraints
    • 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/338Presentation of query results
    • 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/36Creation of semantic tools, e.g. ontology or thesauri
    • G06F16/367Ontology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/84Mapping; Conversion
    • G06F16/86Mapping to a database
    • 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
    • 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/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/211Syntactic parsing, e.g. based on context-free grammar [CFG] or unification grammars
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/284Lexical analysis, e.g. tokenisation or collocates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/01Social networking

Abstract

本申请涉及方法、计算机可读非临时性存储介质和系统。该方法包括:从在线社交网络的第一用户的客户端设备,接收包括对与在线社交网络相关联的一个或多个选择的对象的引用的结构化查询;解析结构化查询,以识别第一查询约束和一个或多个第二查询约束;识别与第一查询约束相关联的反向约束,其中,第一查询约束已被预先标记为识别大于阈值数量的对象;并且基于结构化查询生成查询命令,其中,查询命令包括反向约束和一个或多个第二查询约束。

Description

方法、计算机可读非临时性存储介质和系统
技术领域
本公开总体上涉及社交网络以及用于在社交网络环境内执行对象的搜索。
背景技术
可以包括社交网络网站的社交网络系统能够使其用户(例如,个人或组织)与该系统互动并且通过该系统彼此互动。通过用户的输入,社交网络可以在社交网络系统内创建和储存与用户相关联的用户配置文件。用户配置文件可包括人口统计信息、通信信道信息以及关于用户的个人兴趣的信息。通过用户的输入,社交网络系统还可以创建和储存用户与社交网络系统的其他用户的关系的记录,并且提供服务(例如,涂鸦墙、照片分享、活动组织、消息传送、游戏或广告),以在用户之间或之中促进社会互动。
社交网络系统可以通过一个或多个网络将与其服务相关的内容或消息发送给用户的移动或其他计算装置。用户还可以在用户的移动或其他计算装置上安装软件应用程序,用于评估用户的用户配置文件以及在社交网络系统内的其他数据。社交网络系统可以生成一组个性化的内容对象,以向用户显示,例如,与该用户联系的其他用户的聚合故事的新闻馈送。
社交图谱分析在由节点和矢线构成的网络理论方面查看社会关系。节点表示在网络内的单独参与者,并且矢线表示在参与者之间的关系。所产生的基于图谱的结构通常非常复杂。可以具有多种类型的节点和用于连接节点的多种类型的矢线。通过其最简单的形式,社交图谱是被研究的所有节点之间的所有相关矢线的映射。
发明内容
在特定的实施方式中,社交网络系统的用户可使用包括引用特定社交图谱元素的结构化查询,搜索与该系统相关联的对象。结构化查询可以给在线社交网络的用户提供一种强大的方式,来根据其社交图谱属性及其与各种社交图谱元素的关系,搜索在社交图谱内表示的对象。
在特定的实施方式中,响应于具有内部约束和外部约束的结构化查询,例如,嵌套式搜索查询,社交网络系统可识别满足内部和外部约束的与在线社交网络相关联的对象。可使用查询提示,提高搜索与社交网络系统相关联的对象的垂直存储的过程,其中,在识别与内部查询约束匹配的对象时,使用外部查询约束。例如,可以解析比较复杂的结构化查询,例如,“在帕洛阿尔托拍摄的女性照片”,以便搜索用户垂直存储,以识别女性用户,并且通过使用允许论证缺席一些结果的运算符(例如,“weak and”(WAND)运算符)识别也在帕洛阿尔托拍摄的照片中标记的至少一些女性用户。接下来,可以搜索照片垂直存储,以识别在帕洛阿尔托拍摄的照片,在所述照片内标记任何识别的女性用户。在特定的实施方式中,来自第一垂直存储的结果可以评分和排名,并且在为第二垂直存储的结果评分时,可以使用那些得分。通过这种方式,对应于外部约束请求的对象的垂直存储的搜索更可能生成满足搜索查询的结果。这还可允许社交网络系统产生更好的搜索结果,并且可提高生成这些结果的处理效率。
在特定的实施方式中,社交网络系统可解析结构化搜索查询并且生成包括逆算子的查询命令。使用逆算子,可提高搜索与社交网络系统相关联的对象的垂直存储的过程,其中,可修改一个查询约束,以包括其反向约束。在解析具有内部查询约束和外部查询约束的结构化查询时,例如,嵌套式搜索查询,查询的典型处理可产生不充分数量的搜索结果。例如,由于内部查询约束产生太多结果,降低了任何结果与外部查询相交的可能性,所以可能发生这种情况。可使用逆算子,加强搜索与社交网络系统相关联的对象的垂直存储的过程,其中,在搜索与对象匹配的垂直存储时,使用反向约束,代替原始查询约束。例如,可以解析比较复杂的结构化查询,例如,“中国人喜欢的我的照片”,以便代替使用“liked_by”运算符搜索中国用户喜欢的照片,而使用“likers_of”运算符搜索查询用户的照片的用户。通过这种方式,可使用逆算子,以便特定的垂直存储的搜索产生更好的搜索结果,并且可提高生成这些结果的处理效率。
在特定的实施方式中,社交网络系统可根据查询用户的搜索意图,将搜索结果排名。在运行不同的搜索查询时,用户可具有不同的意图。用于生成搜索结果的搜索算法可根据这些搜索意图修改,使得响应于一个查询将搜索结果排名的方式可与响应于另一个查询将搜索结果排名的方式不同。社交网络系统可识别搜索查询的一个或多个搜索意图,然后,根据搜索意图,将与搜索查询匹配的搜索结果排名。可通过各种方式,例如,根据在搜索查询内引用的社交图谱元素、在搜索查询内的项、与查询用户相关联的用户信息、查询用户的搜索历史、模式检测、与查询或用户相关的其他合适的信息、或其任何组合,确定搜索意图。例如,在搜索查询内引用的特定社交图谱元素可对应于特定搜索意图。在将搜索结果排名时使用搜索意图,社交网络系统能够向查询用户更有效地呈现更相关的或者或更有兴趣的搜索结果。
附图说明
图1示出了与社交网络系统相关联的一个实例网络环境;
图2示出了一个实例社交图谱;
图3示出了用于储存社交网络系统的对象的实例划分;
图4示出了在线社交网络的实例网页;
图5A-5D示出了社交网络的实例查询;
图6示出了用于响应于具有内部约束和外部约束的搜索查询生成搜索结果的一个实例方法;
图7示出了用于使用逆算子解析搜索查询的一个实例方法;
图8示出了用于根据搜索意图生成搜索结果的一个实例方法;
图9示出了一个实例计算机系统。
具体实施方式
系统概述
图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的一个或多个部分可以包括自组织网络、内联网、外联网、虚拟专用网络(VPN0、局域网(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可以包括网页浏览器132,例如,MICROSOFTINTERNET EXPLORER、GOOGLE CHROME或MOZILLA FIREFOX,并且可以具有一个或多个附加组件、插件或其他延伸部分,例如,TOOLBAR或YAHOO TOOLBAR。在客户端系统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可以生成、储存、接收并且发送社交网络数据,例如,用户配置文件数据、概念配置文件数据、社交图谱信息、或与在线社交网络相关的其他合适数据。社交网络系统160可以由网络环境100的其他元件直接或者通过网络110访问。在特定的实施方式中,社交网络系统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的外部系统表示的任何物体互动,该外部系统与社交网络系统160分开并且通过网络110耦接至社交网络系统160。
在特定的实施方式中,社交网络系统160能够连接各种实体。作为一个实例,并非通过限制的方式,社交网络系统160可以使用户能够彼此互动并且接收来自第三方系统170或其他实体的内容,或者允许用户通过应用程序编程接口(API)或其他通信信道与这些实体互动。
在特定的实施方式中,第三方系统170可以包括一种或多种类型的服务器、一个或多个数据储存、一个或多个接口(包括但不限于API)、一个或多个网络服务、一个或多个内容源、一个或多个网络、或(例如)可以与服务器通信的任何其他合适的元件。第三方系统170可以由与操作社交网络系统160的实体不同的实体操作。在特定的实施方式中,然而,社交网络系统160和第三方系统170可以彼此相结合地操作,以给社交网络系统160或第三方系统170的用户提供社交网络服务。在这个意义上,社交网络系统160可以提供平台或主干,其他系统(例如,第三方系统170)可以使用该平台或主干来通过互联网给用户提供社交网络服务和功能。
在特定的实施方式中,第三方系统170可以包括第三方内容对象提供商。第三方内容对象提供商可以包括可以传送给客户端系统130的内容对象的一个或多个来源。作为一个实例,并非通过限制的方式,内容对象可以包括关于用户感兴趣的东西或活动的信息,例如,电影放映时间、电影评论、餐厅评论、餐厅菜单、产品信息和评论、或其他合适的信息。作为一个实例,并非通过限制的方式,内容对象可以包括激励内容对象,例如,优惠券、折扣票、礼品券或其他合适的激励对象。
在特定的实施方式中,社交网络系统160还包括用户生成的内容对象,所述内容对象可以增强用户与社交网络系统160的互动。用户生成的内容可以包括用户可以增加、上传、发送或“张贴”到社交网络系统160中的任何物体。作为一个实例,并非通过限制的方式,用户将帖子从客户端系统130中传送给社交网络系统160。帖子可以包括状态更新或其他文本数据等数据、位置信息、照片、视频、链接、音乐或其他相似的数据或介质。还可以由第三方系统170通过“通信通道”(例如,新闻馈送或流)增加到社交网络系统160中。
在特定的实施方式中,社交网络系统160可以包括各种服务器、子系统、程序、模块、记录以及数据储存。在特定的实施方式中,社交网络系统160可以包括以下中的一个或多个:网络服务器、活动记录器、API请求服务器、相关性和排名引擎、内容对象分类器、通知控制器、活动记录、第三方内容对象曝光记录、推理模块、授权/隐私服务器、搜索模块、广告目标模块、用户接口模块、用户配置文件储存、连接储存、第三方内容储存或位置储存。社交网络系统160还可以包括合适的元件,例如,网络接口、安全机构、负载平衡器、故障转移服务器、管理和网络操作控制台、其他合适的元件、或其任何合适的组合。在特定的实施方式中,社交网络系统160可以包括一个或多个用户配置文件储存,用于储存用户配置文件。用户配置文件可以包括(例如)传记信息、人口统计信息、行为信息、社会信息、或其他类型的描述性信息,例如,工作经验、学历、爱好或偏好、兴趣、亲和力或位置。兴趣信息可以包括与一个或多个类别相关联的兴趣。类别可以是一般或特定类别。作为一个实例,并非通过限制的方式,如果用户“喜欢”关于某个品牌的鞋的物品,那么类别可以是该品牌或者一般类别的“鞋子”或“衣服”。连接储存可以用于储存关于用户的连接信息。连接信息可以表示具有相似或共同工作经历、群组关系、爱好、学历的或者通过任何方式相关的或者分享共同属性的用户。连接信息还可以包括在不同用户与内容(内部和外部)之间的用户定义的连接。网络服务器可以用于通过网络110连接社交网络系统160和一个或多个客户端系统130或者一个或多个第三方系统170。网络服务器可以包括邮件服务器或其他消息传递功能,用于在社交网络系统160与一个或多个客户端系统130之间接收和理由消息。API请求服务器可以允许第三方系统170通过调用一个或多个API来访问来自社交网络系统160的信息。活动记录器可以用于从网络服务器接收关于用户在社交网络系统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可以创建与用户对应的用户节点202,并且在一个或多个数据储存内储存用户节点202。在适当的情况下,在本文中描述的用户和用户节点202表示注册的用户以及与注册的用户相关联的用户节点202。此外或者作为替换物,在适当的情况下,在本文中描述的用户和用户节点202表示没有通过社交网络系统160注册的用户。在特定的实施方式中,用户节点202可以与由用户提供的信息或者由各种系统聚集的信息相关联,包括社交网络系统160。作为一个实例,并非通过限制的方式,用户可以提供其名称、大头贴、联系信息、生日、性别、婚姻状况、家庭状况、职业、教育背景、爱好、兴趣或其他人口统计信息。在特定的实施方式中,用户节点202可以与一个或多个数据对象相关联,所述数据对象与和用户相关联的信息对应。在特定的实施方式中,用户节点202可以与一个或多个网页对应。
在特定的实施方式中,概念节点204可以与概念对应。作为一个实例,并非通过限制的方式,概念可以对应于地点(例如,电影院、餐馆、地标或城市);网站(例如,与社交网络系统160相关联的网站或者与网络应用程序服务器相关联的第三方网站);实体(例如,个人、企业、群组、体育队或名流);资源(例如,音频文件、视频文件、数字照片、文本文件、结构化文档或应用程序),其可以位于社交网络系统160内或外部服务器上,,例如,网络应用程序服务器;不动产或知识产权(例如,雕塑、绘画、电影、游戏、歌曲、理念、照片、或书面工作);游戏;活动;理念或理论;另一种合适的概念;或两个或多个这种概念。概念节点204可以与由用户提供的概念的信息或者由各种系统聚集的信息相关联,包括社交网络系统160。作为一个实例,并非通过限制的方式,概念的信息可以包括名字或称号;一个或多个图像(例如,书的封面的图像);位置(例如,地址或地理位置);网站(其可以与URL相关联);联系方式(例如,电话号码或电子邮件地址);其他合适的概念信息;或这种信息的任何合适的组合。在特定的实施方式中,概念节点204可以与一个或多个数据对象相关联,所述数据对象与和概念节点204相关联的信息对应。在特定的实施方式中,概念节点204可以与一个或多个网页对应。
在特定的实施方式中,在社交图谱200内的节点可以表示网页(可以称为“配置文件页面”)或者由该网页表示。配置文件页面可以由社交网络系统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,并且在一个或多个数据储存24内储存矢线206,作为社交图谱信息。在图2的实例中,社交图谱200包括表示在用户“A”和用户“B”的用户节点202之间的朋友关系的矢线206以及表示在用户“C”和用户“B”的用户节点202之间的朋友关系的矢线。虽然本公开描述或显示了连接特定的用户节点202的具有特定属性的特定矢线206,但是本公开预计连接用户节点202的具有任何合适的属性的任何合适的矢线206。作为一个实例,并非通过限制的方式,矢线206可以表示友谊、家庭关系、业务或雇佣关系、粉丝关系、追随者关系、访客关系、用户关系、上级/下级关系、互惠关系、非互惠的关系、另一种合适类型的关系、或两个或更多这种关系。而且,虽然本公开总体上描述正在连接的节点,但是本公开还描述了正在连接的用户或概念。在本文中,在合适的地方,正在连接的用户或概念的引用可以表示与由一个或多个矢线206在社交图谱200内连接的那些用户或概念对应的节点。
在特定的实施方式中,在用户节点202与概念节点204之间的矢线206可以表示由与用户节点202相关联的用户朝着与概念节点204相关联的概念执行的特定活动或行动。作为一个实例,并非通过限制的方式,如图2中所示,用户可以“喜欢”、“参加”、“播放”、“收听”、“烹饪”、“工作”或“观看”概念,其中的每个均与矢线类型或子类型对应。与概念节点204对应的概念配置文件页面可以包括(例如)可选择的“登记”图标(例如,可点击的“登记”图标)或可选择的“添加到收藏夹”图标。同样,在用户点击这些图标之后,社交网络系统160可以响应于与相应的活动对应的用户活动创建“收藏夹”矢线或“登记”矢线。作为一个实例,并非通过限制的方式,用户(用户“C”)可以使用特定的应用程序(例如,SPOTIFY,这是在线音乐应用程序)收听特定的歌曲(“Imagine”)。在这种情况下,社交网络系统160可以在与用户对应的用户节点202与和歌曲和应用程序对应的概念节点204之间创建“收听”的矢线206和“使用”的矢线(如图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可以在用户节点202和概念节点204之间创建矢线206。作为一个实例,并非通过限制的方式,查看概念配置文件页面的用户(例如,通过使用由用户的客户端系统130托管的网络浏览器或专用应用程序)可以通过点击或选择“喜欢”图标来指示该用户喜欢由概念节点204表示的概念,这可以促使用户的客户端系统130给社交网络系统160发送表示用户喜欢与概念配置文件页面相关联的概念的消息。响应于该消息,社交网络系统160可以在与用户相关联的用户节点202和概念节点204之间创建矢线206,如“喜欢”在用户和概念节点204之间的矢线206所示。在特定的实施方式中,社交网络系统160可以在一个或多个数据储存内储存矢线206。在特定的实施方式中,可以由社交网络系统160响应于特定的用户活动自动形成矢线206。作为一个实例,并非通过限制的方式,如果第一用户上传图片,看电影,或者收听歌曲,那么可以在与第一用户对应的用户节点202和与那些概念对应的概念节点204之间形成矢线206。虽然本公开描述了通过特定的方式形成特定的矢线206,但是本公开预计通过任何合适的方式形成任何合适的矢线206。
基于对象类型的索引
图3示出了用于储存社交网络系统160的对象的实例划分。多数个数据存储器164(也可称为“垂直存储(vertical)”)可储存社交网络系统160的对象。储存在数据存储器内的数据量(例如,用于社交图谱200的数据)可能非常大。作为一个实例,并非通过限制的方式,位于加州门洛帕克的Facebook公司的社交图谱可以具有约108的多个节点以及约1010的多个矢线。通常,大量数据(例如,大数据库)可分成多个分割。由于数据库的每个分割的索引小于总体数据库的索引,所以划分可提高访问数据库的性能。由于分割可在大量服务器之上分布,所以划分也可提高访问数据库的性能和可靠性。通常,通过单独储存几行(或几列)数据库,可划分数据库。在特定的实施方式中,可能根据对象类型,划分数据库。数据对象可储存在多个分割内,每个分割容纳单个对象类型的数据对象。在特定的实施方式中,通过将搜索查询提交给储存相同对象类型的对象的特定分割,作为搜索查询的预期结果,社交网络系统160可响应于搜索查询,检索搜索结果。虽然本公开描述通过特定的方式储存对象,但是本公开预计通过任何合适的方式储存对象。
在特定的实施方式中,每个对象对应于社交图谱200的特定节点。连接特定节点和另一个节点的矢线206可表示在对应于这些节点的对象之间的关系。除了储存对象,特定的数据存储器还可储存与对象相关的社交图谱信息。可替换地,关于特定对象的社交图谱信息可储存在与对象不同的数据存储器内。社交网络系统160可根据最近接收的对象以及与已接收对象相关联的关系,更新数据存储器的搜索索引。
在特定的实施方式中,每个数据存储器164可配置为在相应的数据储存装置340内储存多个对象类型中的一个特定对象类型的对象。例如,对象类型可能是用户、照片、帖子、评论、消息、活动列表、网页、应用程序、用户配置文件页面、概念配置文件页面、用户组、音频文件、视频、供给品/优惠券、或任何合适类型的对象。虽然本公开描述特定类型的对象,但是本公开预计任何合适类型的对象。作为一个实例,并非通过限制的方式,在图3中显示的用户垂直存储P1可储存用户对象。储存在用户垂直存储P1内的每个用户对象可包括标识符(例如,字符串)、用户名以及在线社交网络的用户的配置文件图片。社交网络系统160还可在用户垂直存储P1内储存与用户对象相关联的信息,例如,语言、位置、教育、联系信息、兴趣、关系状态、朋友/联系人列表、家庭成员列表、隐私设置等。作为一个实例,并非通过限制的方式,在图3中显示的帖子垂直存储P2可储存帖子对象。储存在帖子垂直存储P2内的每个帖子对象可包括标识符、张贴到社交网络系统160中的帖子的文本串。社交网络系统160还可在帖子垂直存储P2内储存与帖子对象相关联的信息,例如,时间戳、作者、隐私设置、喜欢帖子的用户、喜欢的人数、评论、评论的人数、位置等。作为一个实例,并非通过限制的方式,照片垂直存储P3可储存照片对象(或者其他媒体类型的对象,例如,视频或音频)。储存在照片垂直存储P3内的每个照片对象可包括标识符和照片。社交网络系统160还可在照片垂直存储P3内储存与照片对象相关联的信息,例如,时间戳、作者、隐私设置、在照片内标记的用户、喜欢照片的用户、评论等。在特定的实施方式中,每个数据存储器还可配置为在数据储存装置340内储存与每个储存的对象相关联的信息。
在特定的实施方式中,储存在每个垂直存储164内的对象可由一个或多个搜索索引来索引。搜索索引可由包括一个或多个计算装置(例如,服务器)的相应索引服务器330托管。索引服务器330可根据用户提交给社交网络系统160的数据(例如,照片以及与照片相关联的信息)或者社交网络系统160(或第三方系统)的其他过程更新搜索索引。索引服务器330还可定期(例如,每24个小时)更新搜索索引。索引服务器330可接收包括搜索项的查询,并且从对应于搜索项的一个或多个搜索索引中访问和检索搜索结果。在一些实施方式中,对应于特定对象类型的垂直存储可包括多个物理或逻辑分割,每个分割包括相应的搜索索引。
在特定的实施方式中,社交网络系统160可从PHP(超文本预处理器)过程310接收搜索查询。PHP过程310可包括由社交网络系统160的一个或多个服务器162托管的一个或多个计算过程。搜索查询可能是用户提交给PHP过程的文本串或结构化查询或者社交网络系统160(或第三方系统170)的另一个过程。
在于2012年7月27日提交的美国专利申请号13/560212、于2012年7月27日提交的美国专利申请号13/560901以及于2012年12月21日提交的美国专利申请号13/723861中,可以找出关于索引和搜索查询的更多信息,每个申请通过引证结合于此。
预先输入过程
在特定的实施方式中,一个或多个客户端和/或后端(服务器端)过程可实现和使用“预先输入”功能,该功能可自动尝试使社交图谱元素(例如,用户节点202、概念节点204或矢线206)与用户目前通过与请求的网页(例如,用户配置文件页面、概念配置文件页面、搜索结果网页、或在线社交网络的另一个合适页面)一起呈现的输入表格输入的信息匹配,该网页可由社交网络系统160托管或者在社交网络系统160内可进入。在特定的实施方式中,由于用户输入文本,以发表声明,所以预先输入功能可尝试使在声明内输入的文本字符串与在社交图谱200内对应于用户、概念或矢线及其相应元素的字符串(例如,名称、描述)匹配。在特定的实施方式中,在找出匹配时,预先输入功能可参照现有社交图谱元素的社交图谱元素(例如,节点名称/类型、节点ID、矢线名称/类型、矢线ID、或另一个合适的引用或标识符)自动填充该表格。
在特定的实施方式中,由于用户将文本键入或者输入用于在用户的配置文件页面、主页或其他页面的不同部分内增加内容或者发表声明的表格内,所以预先输入过程可以与在社交网络系统160上(或内)(例如,在服务器162内)执行的一个或多个前端(客户端)和/或后端(服务器端)预先输入过程(在后文中简称为“预先输入过程”)共同运作,以交互地并且实际上立刻(对于用户,似乎)尝试通过对应于现有社交图谱元素的名称的一个或多个项目、或者在用户输入文本字符时确定与用户输入的文本字符最相关或者最佳匹配的与现有社交图谱元素相关联的项目自动填充该表格。使用在社交图谱数据库内的社交图谱信息或者从社交图谱数据库中提取和索引的信息(包括与节点和矢线相关联的信息)、预先输入过程、与来自社交图谱数据库的信息一起并且还可能与位于社交网络系统160内的或者在社交网络系统160内执行的各种其他过程、应用程序或者数据库一起能够高度精确地预测用户的预期声明。然而,社交网络系统160还可以给用户提供输入用户希望的基本上任何声明的自由,使用户能够自由地表达自己。
在特定的实施方式中,由于用户将文本字符输入表格方框或其他字段内,所以预先输入过程可尝试识别与在用户输入字符时在用户的声明中输入的字符串匹配的现有社交图谱元素(例如,用户节点202、概念节点204或矢线206)。在特定的实施方式中,在用户将字符输入表格方框内时,预先输入过程可读取输入的文本字符串。前端-预先输入过程可将输入的字符串作为请求(或呼叫)发送给在社交网络系统160内执行的后端-预先输入过程。在特定的实施方式中,预先输入过程可通过AJAX(异步JavaScript和XML)或其他合适的技术通信,并且具体而言,通过异步技术。在特定的实施方式中,该请求可能是或者包括能够快速和动态发送和提取结果的XMLHTTPRequest(XHR)。在特定的实施方式中,预先输入过程还可在请求部分标识符(部分ID)之前、之后或者之时发送,该标识符识别用户发表声明的特定页面的特定部分。在特定的实施方式中,也可发送用户ID参数,但是由于基于用户登录(或者由社交网络系统160认证)社交网络系统160,用户已经“众所周知”,所以在一些实施方式中,这可能是不必要的。
在特定的实施方式中,预先输入过程可使用一个或多个匹配算法来尝试识别匹配的社交图谱元素。在特定的实施方式中,在发现一个或多个匹配时,预先输入过程可给用户的客户端系统130发送响应(可使用AJAX或其他合适的技术),这可包括(例如)匹配的社交图谱元素的名称(名称串)或者描述以及(可能地)与匹配的社交图谱元素相关联的其他元数据。作为一个实例,并非通过限制的方式,如果用户将字符“pok”输入查询字段内,那么预先输入过程可显示下拉菜单,该菜单显示匹配的现有配置文件页面和相应的用户节点202或概念节点204的名称,例如,称为或者专用于“poker”或“pokemon”的配置文件页面,然后,用户可以点击或者选择该名称,从而确认声明对应于所选节点的匹配用户或者概念名称的期望。作为一个实例,并非通过限制的方式,在点击“poker”时,预先输入过程可使用声明“poker”自动填充或者促使网络浏览器132自动填充查询字段。在特定的实施方式中,预先输入过程可仅仅使用排名最高的匹配的名称或另一个标识符自动填充字段,而非显示下拉菜单。然后,用户可仅仅通过在其键盘上键入“输入”或者通过点击自动填充的声明,来确认自动填充的声明。
在于2010年4月19日提交的美国专利申请号12/763162以及于2012年7月23日提交的美国专利申请号13/556072中,可以找出关于预先输入过程的更多信息,每个申请通过引证结合于此。
结构化搜索查询
图4示出了在线社交网络的实例网页。在特定的实施方式中,用户可通过将文本输入查询字段450内,来将查询提交给社交网络系统160。通过给搜索引擎提供描述特定主题的短语(通常称为“搜索查询”),在线社交网络的用户可搜索与该特定主题(例如,用户、概念、外部内容或资源)相关的信息。查询可能是非结构化文本查询,并且可包括一个或多个文本串(可包括一个或多个n语法)。通常,用户可将任何字符串输入查询字段450内,与搜索与文本查询匹配的关于社交网络系统160的内容。然后,社交网络系统160可搜索数据存储器164(或者具体而言,社交图谱数据库),以识别与查询匹配的内容。搜索引擎可使用各种搜索算法根据查询短语进行搜索,并且生成识别最可能与搜索查询相关的资源或内容(例如,用户配置文件页面、内容配置文件页面或外部资源)的搜索结果。为了进行搜索,用户可将搜索查询输入或者发送给搜索引擎。作为回应,搜索引擎可识别可能与搜索查询相关的一个或多个资源,每个资源可单独称为“搜索结果”或者统称为对应于该搜索查询的“搜索结果”。例如,识别的内容可包括社交图谱元素(即,用户节点202、概念节点204、矢线206)、配置文件页面、外部网页、或其任何组合。然后,社交网络系统160可生成具有对应于已识别内容的搜索结果的搜索结果网页,并且将搜索结果网页发送给用户。在特定的实施方式中,搜索引擎可将其搜索限制为关于在线社交网络的资源和内容。然而,在特定的实施方式中,搜索引擎还可搜索关于其他来源的资源和内容,例如,第三方系统170、互联网或万维网、或其他合适的来源。虽然本公开描述了通过特定的方式查询社交网络系统160,但是本公开预计通过合适的方式查询社交网络系统160。
在特定的实施方式中,在本文中描述的预先输入过程可应用于用户输入的搜索查询中。作为一个实例,并非通过限制的方式,在用户将文本字符输入查询字段450时,预先输入过程可尝试识别与在用户输入字符时输入查询字段450内的字符串匹配的一个或多个用户节点202、概念节点204或矢线206。由于预先输入过程从文本查询接收包括字符串或n语法的请求或呼叫,所以预先输入过程可执行或者促使执行搜索,以识别具有相应名称、类型、类别、或与输入的文本匹配的其他标识符的现有社交图谱元素(即,用户节点202、概念节点204、矢线206)。预先输入过程可使用一个或多个匹配算法,来尝试识别匹配的节点或矢线。在发现一个或多个匹配时,预先输入过程可给用户的客户端系统130发送响应,这可包括(例如)匹配的节点的名称(名称串)以及(可能地)与匹配的节点相关联的其他元数据。然后,预先输入过程可显示下拉菜单400,该菜单显示相应的用户节点202或概念节点204的匹配的配置文件页面(例如,与页面相关联的名称或照片)的引用,并且显示可连接至匹配的用户节点202或概念节点204的匹配矢线206的名称,然后,用户可点击或者选择该名称,从而确认搜索对应于所选节点的匹配用户或者概念名称或者通过匹配矢线搜索连接至匹配用户或者概念的用户或者概念的期望。可替换地,预先输入过程可仅仅使用排名最高的匹配的名称或另一个标识符自动填充该表格,而非显示下拉菜单400。然后,用户可仅仅通过在其键盘上键入“输入”或者通过点击自动填充的声明,来确认自动填充的声明。在用户确认匹配节点和/或矢线时,预先输入过程可发送通知社交网络系统160用户确认包含匹配的社交图谱元素的查询的请求。响应于所发送的请求,社交网络系统160可以自动(或者根据在请求内的指令,可替换地)呼叫或者搜索匹配的社交图谱元素的或者酌情连接至匹配的社交图谱元素的社交图谱元素的社交图谱数据库。虽然本公开描述了通过特定的方式将预先输入过程应用于搜索查询中,但是本公开预计通过合适的方式将预先输入过程应用于搜索查询中。
与搜索查询以及搜索结果相结合,特定实施方式可以使用在于2006年8月11日提交的美国专利申请号11/503093、于2010年12月22日提交的美国专利申请号12/977027以及于2010年12月23日提交的美国专利申请号12/978265中公开的一个或多个系统、元件、部件、功能、方法、操作或步骤,每个申请通过引证结合于此。
元素检测和解析搜索查询
图5A-5D示出了社交网络的实例查询。响应于从第一用户(即,查询用户)接收的文本查询,社交网络系统160可解析文本查询,并且识别对应于特定社交图谱元素的文本查询的部分。然后,社交网络系统160可生成一组结构化查询,其中,每个结构化查询对应于一个可能的匹配的社交图谱元素。这些结构化查询可基于由语法模型生成的字符串,以便参照相关的社交图谱元素,在自然语言语法中呈现这些结构化查询。这些结构化查询可向查询用户呈现,然后,该用户可以在结构化查询之中选择,以指示所选的结构化查询应由社交网络系统160运行。图5A-5D示出了在查询字段450内的实例文本查询以及在下拉菜单400内作为回应生成的各种结构化查询(虽然能够具有其他合适的图形用户界面)。通过响应于用户的文本查询提供建议的结构化查询,社交网络系统160可给在线社交网络的用户提供一种强大的方式,来根据其社交图谱属性及其与各种社交图谱元素的关系,搜索在社交图谱200内表示的元素。结构化查询可允许查询用户搜索通过特定矢线类型连接至在社交图谱200内的特定用户或概念的内容。可将结构化查询发送给第一用户并且在下拉菜单400中显示(例如,通过客户端预先输入过程),其中,然后,第一用户可以选择搜索期望的内容的适当查询。使用在本文中描述的结构化查询的一些优点包括根据限制的信息找出在线社交网络的用户,根据该内容与各种社交图谱元素的关系,使来自在线社交网络的内容的虚拟索引联合,或者找出与你和/或你的朋友相关的内容。虽然本公开描述了图5A-5D示出通过特定的方式生成特定的结构化查询,但是本公开预计通过任何合适的方式生成任何合适的结构化查询。
在特定的实施方式中,社交网络系统160可从查询/第一用户(对应于第一用户节点202)接收非结构化文本查询。作为一个实例,并非通过限制的方式,第一用户可希望搜索其他用户,所述其他用户:(1)是第一用户的第一程度朋友;以及(2)与斯坦福大学相关联(即,用户节点202由矢线206连接至对应于学校“斯坦福”的概念节点204)。然后,第一用户可将文本查询“斯坦福朋友”输入查询字段450内,如图5A-5B中所示。在查询用户将这个文本查询输入查询字段450内时,社交网络系统160可提供各种建议的结构化查询,如在下拉菜单400中所示。如在本文中所使用的,非结构化文本查询表示用户输入的简单文本串。当然,文本查询可相对于标准的语言/语法规则(例如,英语语言语法)结构化。然而,文本查询通常相对于社交图谱元素非结构化。换言之,简单文本查询通常不包括特定的社交图谱元素的嵌入式引用。因此,如在本文中所使用的,结构化查询表示包含特定的社交图谱元素的引用的查询,允许搜索引擎根据识别的元素搜索。而且,文本查询可相对于正式的查询语法非结构化。换言之,简单的文本查询不必具有搜索引擎(例如,文本查询“斯坦福朋友”可以解析,以形成查询命令“交集(学校(斯坦福大学)、朋友(我)”,该查询命令可以在社交图谱数据库内作为查询执行)直接可执行的查询命令的格式。虽然本公开描述了通过特定的方式接收特定的查询,但是本公开预计通过任何合适的方式接收任何合适的查询。
在特定的实施方式中,社交网络系统160可解析从第一用户(即,查询用户)接收的非结构化文本查询(也简称为搜索查询),以识别一个或多个n语法。通常,n语法是来自规定序列的文本或语音的n个项目的连续序列。项目可能是来自文本或语音序列的字符、音位、音节、字母、单词、基础对、前缀、或其他可识别的项目。n语法可包括由查询用户输入的文本(字母、数字、标点等)的一个或多个字符。尺寸1的n语法可以称为“一元语法”,尺寸2的n语法可以称为“二元语法”或“双元语法”,尺寸3的n语法可以称为“三元语法”,以此类推。每个n语法可包括来自从查询用户接收的文本查询的一个或多个部分。在特定的实施方式中,每个n语法可包括由第一用户输入的字符串(例如,文本的一个或多个字符)。作为一个实例,并非通过限制的方式,社交网络系统160可解析文本查询“斯坦福朋友”,以识别以下n语法:朋友;斯坦福;斯坦福朋友。作为另一个实例,并非通过限制的方式,社交网络系统160可解析文本查询“在帕洛阿尔托的朋友”,以识别以下n语法:朋友;在;帕洛;阿尔托;朋友在;在帕洛;帕洛阿尔托;在帕洛的朋友;也在帕洛;在帕洛阿尔托的朋友。在特定的实施方式中,每个n语法可包括来自文本查询的n个项目的连续序列。虽然本公开描述了通过特定的方式解析特定的查询,但是本公开预计通过任何合适的方式解析任何合适的查询。
与元素检测和解析搜索相结合,特定实施方式可使用在于2012年7月23日提交的美国专利申请号13/556072以及于2012年12月31日提交的美国专利申请号13/732101中公开的一个或多个系统、元件、部件、功能、方法、操作或步骤,每个申请通过引证结合于此。
生成结构化搜索查询
在特定的实施方式中,社交网络系统160可访问与上下文无关的语法模型,包括多个语法。语法模型的每个语法可包括一个或多个非终端令牌(或“非终端符号”)以及一个或多个终端令牌(或“终端符号”/“查询令牌”),其中,特定的非终端令牌可由终端令牌代替。语法模型是具有形式语言的用于字符串的一组形成规则。虽然本公开描述了访问特定语法,但是本公开预计任何合适的语法。
在特定的实施方式中,社交网络系统160可使用一个或多个语法生成一个或多个字符串。为了通过该语言生成字符串,以仅仅由单个起始符号组成的字符串开始。然后,通过任何顺序应用生产规则,直到产生不包含起始符号和指定的非终端符号的字符串。在与上下文无关的语法中,语法的每个非终端符号的生产独立于语法的其他非终端符号生产的内容。可使用终端符号(即,终端令牌或查询令牌)代替非终端符号。一些查询令牌可对应于识别的节点或识别的矢线,如上所述。然后,由语法生成的字符串可用作包含识别的节点或识别的矢线的引用的结构化查询的基础。可在自然语言语法中呈现由语法生成的字符串,以便也通过自然语言呈现基于字符串的结构化查询。与上下文无关的语法是一种语法,其中,每个生产规则的左边仅仅由单个非终端符号组成。概率与上下文无关的语法是元组<Σ,N,S,P>,其中,分离集Σ和N分别规定终端和非终端符号,S∈N是起始符号。P是生产组,采用形式E→ξ(p),E∈N、ξ∈(Σ∪N)+并且p=Pr(E→ξ),E扩展成字符串ξ的概率。在规定的非终端E的所有扩展之上的概率P的总和必须是1。虽然本公开描述了通过特定的方式生成字符串,但是本公开预计通过任何合适的方式生成字符串。
在特定的实施方式中,社交网络系统160可生成一个或多个结构化查询。结构化查询可基于由一个或多个语法生成的自然语言串,如上所述。每个结构化查询可包括一个或多个识别的节点或一个或多个识别的矢线206的引用。通过搜索连接至识别的用户节点202和识别的矢线206或者与其相关的内容,这种类型的结构化查询可允许社交网络系统160更有效地搜索与在线社交网络(例如,配置文件页面)相关的资源和内容。作为一个实例,并非通过限制的方式,响应于文本查询,“向我显示我女朋友的朋友”,社交网络系统160可生成结构化查询“Stephanie的朋友”,其中,在结构化查询内的“朋友”和“Stephanie”是对应于特定社交图谱元素的引用。“Stephanie”的引用对应于特定的用户节点202(其中,社交网络系统160解析n语法“我的女朋友”,以对应于用户“Stephanie”的用户节点202),而“朋友”的引用对应于连接该用户节点202和其他用户节点202(即,连接至“Stephanie”的第一程度朋友的矢线206)的朋友型矢线206。在执行这个结构化查询时,社交网络系统160可识别由朋友型矢线206连接至对应于“Stephanie”的用户节点202的一个或多个用户节点202。作为另一个实例,并非通过限制的方式,响应于文本查询,“喜欢facebook的朋友”,社交网络系统160可生成结构化查询“喜欢Facebook的朋友”,其中,在结构化查询中的“朋友”、“喜欢”以及“Facebook”是对应于特定社交图谱元素的引用,如上所述(即,对应于公司“Facebook”的朋友型矢线206、喜欢型矢线206以及概念节点204)。虽然本公开描述了通过特定的方式生成特定的结构化查询,但是本公开预计通过任何合适的方式生成任何合适的结构化查询。
在特定的实施方式中,社交网络系统160可将所生成的结构化查询排名。结构化查询可根据各种因素排名,例如,按照在那些结构化查询内引用的识别的节点/矢线与查询用户的搜索意图匹配的概率或可能性的顺序,由社交网络系统160确定。在将结构化查询排名之后,然后,社交网络系统160可仅仅发送具有大于阈值排名(例如,可将顶部7个排名的查询发送给查询用户并且在下拉菜单300中显示)的排名的那些结构化查询。在特定的实施方式中,结构化查询的排名可基于在查询用户的用户节点202与在结构化查询中引用的特定社交图谱元素之间的分离度。引用在社交图谱200中更接近查询用户(即,在元素与查询用户的用户节点202之间的更少分离度)的社交图谱元素的结构化查询可比引用离用户更远(即,更多分离度)的社交图谱元素的结构化查询更高度排名。在特定的实施方式中,社交网络系统160可根据与查询用户相关联的搜索历史,将结构化查询排名。引用查询用户预先访问的社交图谱元素或者与查询用户预先访问的社交图谱元素相关的结构化查询更可能是查询用户的搜索查询的目标。因此,这些结构化查询可更高度地排名。作为一个实例,并非通过限制的方式,如果查询用户预先访问“斯坦福大学”配置文件页面,但是从未访问“加州斯坦福”配置文件页面,那么在确定引用这些概念的结构化查询的排名时,社交网络系统160可确定引用“斯坦福大学”的概念节点204的结构化查询具有较高排名,这是因为查询用户预先访问了该学校的概念节点204。在特定的实施方式中,结构化查询可包括关于在结构化查询内引用的一个或多个社交图谱元素的上下文信息的片段。在特定的实施方式中,社交网络系统160可根据广告赞助,将结构化查询排名。广告商(例如,对应于特定节点的特定配置文件页面的用户或管理员)可赞助特定节点,以便引用该节点的结构化查询可更高度地排名。虽然本公开描述了通过特定的方式将结构化查询排名,但是本公开预计通过任何合适的方式将结构化查询排名。
在特定的实施方式中,社交网络系统160可从查询用户接收一个结构化查询的选择。在接收的结构化查询中引用的节点和矢线可分别称为所选节点和选择的矢线。作为一个实例,并非通过限制的方式,在查询用户的客户端系统130上的网络浏览器132可在下拉菜单300内显示发送的结构化查询,如图5A-5D中所示,然后,用户可点击或者选择所述结构化查询(例如,仅仅通过在其键盘上键入“输入”),以指示用户希望社交网络系统160执行的特定的结构化查询。在选择特定的结构化查询时,用户的客户端系统130可呼叫或者指导社交网络系统160执行所选的结构化查询。虽然本公开描述了通过特定的方式接收特定的结构化查询的选择,但是本公开预计通过任何合适的方式接收任何合适的结构化查询的选择。
在于2012年7月23日提交的美国专利申请号13/556072、于2012年11月12日提交的美国专利申请号13/674695以及于2012年12月31日提交的美国专利申请号13/731866中,可以找出关于生成结构化查询和语法模型的更多信息,每个申请通过引证结合于此。
解析搜索查询并且生成查询命令
在特定的实施方式中,社交网络系统160可根据从查询用户接收的结构化查询中生成查询命令。然后,查询命令可用于搜索中,抵抗在社交网络系统160的数据存储器164内的对象。在特定的实施方式中,可使用社交网络系统160的一个或多个数据存储器或垂直存储,为搜索提供查询命令。查询命令可包括一个或多个查询约束。每个查询约束可由社交网络系统160基于结构化查询的解析识别。每个查询约束可能是特定对象类型的请求。在特定的实施方式中,查询命令可包括在符号表达式或s表达式内的查询约束。社交网络系统160可将结构化查询“我喜欢的照片”解析成查询命令(photos_liked_by:<me>)。查询命令(photos_liked_by:<me>)表示用户喜欢的照片的查询(即,<我>,对应于查询用户),具有单个结果类型的照片。例如,查询约束可包括社交图谱约束(例如,特定节点或节点类型的请求、或者连接至特定矢线或矢线类型的节点的请求)、对象约束(例如,特定对象或对象类型的请求)、位置约束(例如,对象或者社交图谱实体的请求与特定地理位置相关联)、其他合适的约束、或其任何组合。在特定的实施方式中,结构化查询的解析可基于用于生成结构化查询的语法。换言之,生成的查询命令及其查询约束可对应于特定语法(或者来自语法森林的子树)。在特定的实施方式中,查询命令可包括前缀和对象。对象可对应于在社交图谱200中的特定节点,而前缀可对应于连接至在社交图谱200中的特定节点的特定矢线206或矢线类型(表示特定类型的关系)。作为一个实例,并非通过限制的方式,查询命令(pages_liked_by:<user>)包括前缀pages_liked_by和对象<用户>。在特定的实施方式中,通过从沿着特定连接矢线206(或矢线类型)的特定节点到对应于由查询命令规定的对象的节点穿过社交图谱200,社交网络系统160可执行查询命令,以便识别一个或多个搜索结果。作为一个实例,并非通过限制的方式,通过从沿着喜欢类型矢线206的对应于<用户>的用户节点202到对应于<用户>喜欢的页面的概念节点204穿过社交图谱200,社交网络系统160可执行查询命令(pages_liked_by:<user>)。虽然本公开描述了通过特定的方式生成特定的查询命令,但是本公开预计通过任何合适的方式生成任何合适的查询命令。
在特定的实施方式中,社交网络系统160可识别满足具有内部约束和外部约束的复杂结构化查询(例如,嵌套式搜索查询)的约束的与在线社交网络相关联的对象。可使用查询提示,提高搜索与社交网络系统相关联的对象的搜索垂直存储164的过程,其中,在识别与内部查询约束匹配的对象时,使用外部查询约束。作为一个实例,并非通过限制的方式,可以解析比较复杂的结构化查询,例如,“在帕洛阿尔托拍摄的女性照片”,以便首先搜索用户垂直存储164,以识别女性用户,然后,使那些结果与在帕洛阿尔托拍摄的照片的照片垂直存储164的结果相交。用户垂直存储可能产生对应于上百或者甚至几千女性用户的结果,未在帕洛阿尔托拍摄的照片中标记这些用户,以便这些结果的交集不产生搜索结果。可替换地,可以使用查询提示,提高这个结构化查询,以便(例如)可以解析结构化查询“在帕洛阿尔托拍摄的女性照片”,以便搜索用户垂直存储,以识别女性用户,并且通过使用允许论证缺席一些结果的运算符(例如,“weak and”(WAND)运算符)识别也在帕洛阿尔托拍摄的照片中标记的至少一些女性用户。接下来,可以搜索照片垂直存储164,以识别在帕洛阿尔托拍摄的照片,在所述照片内标记任何识别的女性用户。通过这种方式,对应于外部约束请求的对象的垂直存储的搜索更可能生成满足搜索查询的结果。这还可允许社交网络系统160产生更好的搜索结果,并且可提高生成这些结果的处理效率。在特定的实施方式中,来自响应于内部查询约束搜索的垂直存储的结果可以评分和排名,并且在为从响应于外部查询约束搜索的垂直存储中识别的对象评分时,可以使用那些得分。虽然本公开描述了通过特定的方式识别与结构化查询匹配的对象,但是本公开预计通过任何合适的方式识别与结构化查询匹配的对象。
在特定的实施方式中,社交网络系统160可生成查询命令,包括内部查询约束和外部查询约束。内部查询约束可包括第一对象类型的一个或多个搜索结果的请求,并且外部查询约束可包括第二对象类型的一个或多个搜索结果的请求。每个查询约束可用于通过在结构化查询中引用的一个或多个选择的矢线连接至在结构化查询中引用的一个或多个所选节点的一个或多个节点。具有一个或多个查询约束的查询命令可包括在s表达式内的嵌套式查询。作为一个实例,并非通过限制的方式,社交网络系统160可将结构化查询“我朋友喜欢的页面”转换成嵌套式查询,例如,(pages_liked_by:(friends_of:<me>))。嵌套式搜索查询(pages_liked_by:(friends_of:<me>))包括嵌入外部查询约束(pages_liked_by:<user>)内的内部查询约束(friends_of:<me>)。内部查询约束(friends_of:<me>)表示用户(即,<我>)的第一程度朋友的查询,具有单个结果类型的用户。外部查询约束(pages_liked_by:<user>)表示用户喜欢的页面的查询,具有单个结果类型的页面。作为另一个实例,并非通过限制的方式,社交网络系统160可将结构化查询“名为Tom的人的照片”转换成嵌套式查询,例如,(photos_of:(名称:tom))。嵌套式查询(photos_of:(名称:tom))包括嵌入外部查询约束(photos_of:<user>)内的内部查询约束(名称:tom)。内部查询约束表示名称与“Tom”匹配的用户的查询,具有单个结果类型的用户。外部查询约束(photos_of:<user>)表示标记用户喜欢的照片的查询,具有单个结果类型的照片。作为另一个实例,社交网络系统160可将结构化查询“编写Bill喜欢的帖子的人”转换成嵌套式查询,例如,(提取作者(项posts_liked_by:<Bill>))。查询命令可请求(通过提取运算符)用户“Bill”喜欢的帖子的一个或多个作者的搜索结果。嵌套式查询可包括对应于在用户<Bill>喜欢的帖子内请求搜索结果的搜索项的内部查询(项posts_liked_by:<Bill>)。即,外部约束请求第一对象类型(用户)的第一搜索结果,而内部约束请求第二对象类型(帖子)的第二搜索结果。虽然本公开描述了通过特定的方式解析查询,但是本公开预计通过任何合适的方式解析查询。
在特定的实施方式中,社交网络系统160可识别与查询命令的一个或多个查询约束匹配的一个或多个节点。社交网络系统160可搜索一个或多个数据存储器164,以识别满足查询命令的一个或多个约束的储存在数据存储器内的一个或多个对象。作为另一个实例,并非通过限制的方式,社交网络系统160可将查询命令(photos_liked_by:<me>)(具有照片结果类型)提交给照片垂直存储P3。社交网络系统160可访问照片垂直存储164的索引服务器330,促使索引服务器330返回查询命令(photos_liked_by:<me>)的结果。在特定的实施方式中,对于查询命令的每个查询约束,社交网络系统160可从至少一个数据存储器164中访问和检索搜索结果。访问的数据存储器164可配置为储存由特定的查询约束规定的对象类型的对象。然后,社交网络系统160可聚集相应查询约束的搜索结果。作为另一个实例,并非通过限制的方式,嵌套式查询(photos_of:(名称:tom))包括具有单个结果类型的用户的内部查询约束(名称:tom)以及具有单个结果类型的照片的外部查询约束(photos_of:<user>)。然后,社交网络系统160可重新安排嵌套式查询,把首先将内部查询约束(名称:tom)(具有用户结果类型)提交给用户垂直存储P1。社交网络系统160可访问用户垂直存储P1的索引服务器330,促使索引服务器330返回用户<17>、<31>以及<59>(均由用户标识符表示)的搜索结果。即,每个用户<17>、<31>以及<59>可具有与“tom”匹配的名称。然后,社交网络系统160可将嵌套式查询重新写入查询(photos_of:<17>)、(photos_of:<31>)以及(photos_of:<59>)的OR组合,每个查询具有结果类型的照片。然后,社交网络系统160可将查询(photos_of:<17>)、(photos_of:<31>)以及(photos_of:<59>)提交给照片垂直存储P3。社交网络系统160可访问照片垂直存储P3的索引服务器330,促使索引服务器330返回查询(photos_of:<17>)、(photos_of:<31>)以及(photos_of:<59>)的照片的搜索结果。在特定的实施方式中,通过在搜索结果上执行OR运算,社交网络系统160可聚集搜索结果。作为另一个实例,并非通过限制的方式,搜索查询(photos_of:<17>)的搜索结果可能是<1001>和<1002>(均由照片标识符表示)。搜索查询(photos_of:<31>)的搜索结果可能是<1001>、<1326>、<9090>以及<5200>。搜索查询(photos_of:<59>)的搜索结果可能是<9090>和<7123>。社交网络系统160可在搜索结果上执行OR运算,产生最终搜索结果<1001>、<1002>、<1326>、<9090>、<5200>以及<7123>。虽然本公开描述了通过特定的方式识别特定的搜索结果,但是本公开预计通过任何合适的方式识别任何合适的搜索结果。
在特定的实施方式中,在识别查询约束的匹配节点时,社交网络系统160可仅仅在特定垂直存储164中识别阈值数量的匹配节点。然后,可检索这个阈值数量的匹配对象,作为搜索结果。可选择阈值数量,以增强搜索质量或者优化搜索结果的处理。作为另一个实例,并非通过限制的方式,社交网络系统160可仅仅响应于请求照片对象的查询命令,在照片垂直存储164中识别顶部N个匹配对象。顶部N个照片对象可由在对应于照片垂直存储的搜索索引中的照片对象的静态排名确定。在特定的实施方式中,顶部N个识别的结果可根据搜索查询本身重新排名。作为另一个实例,并非通过限制的方式,如果N是1000,那么可识别顶部1000个照片对象(由静态排名确定)。然后,这1000个照片对象可根据一个或多个因素(例如,与搜索查询或其他查询约束、社交图谱亲和力、搜索历史等匹配)排名,并且然后,可生成顶部20个结果,作为搜索结果,用于呈现给查询用户。在特定的实施方式中,在一轮或多轮排名之后的顶部结果可发送给聚合器320,用于最后一轮排名,其中,结果可重新排序,可丢弃冗余结果,或者在呈现给查询用户之前,可发生任何其他类型的结果处理。虽然本公开描述了识别特定数量的搜索结果,但是本公开预计识别任何合适数量的搜索结果。而且,虽然本公开描述了通过特定的方式将搜索结果排名,但是本公开预计通过任何合适的方式将搜索结果排名。
在特定的实施方式中,社交网络系统160可生成查询命令,包括“weak and”运算符(WAND)。WAND运算符可允许其在查询命令内的一个或多个论证(例如,关键字或包括运算符和关键字的逻辑表达式)缺乏规定的次数或者时间百分比。通过增加引用那些社交图谱元素的隐式查询约束,在通过WAND运算符生成查询命令时,社交网络系统160可考虑在结构化查询中引用的社交图谱元素。社交图谱200的这个信息可用于使用WAND运算符使搜索结果多样化。作为另一个实例,并非通过限制的方式,如果用户输入结构化查询“在帕洛阿尔托的咖啡店”,那么社交网络系统160可生成查询命令,例如,
(WAND类别:<coffee shop>
位置:<Palo Alto>:可选权重0.3)
在这个实例中,并不要求搜索结果始终与查询命令的(类别:<coffee shop>)和(位置:<Palo Alto>)部分匹配,查询的帕洛阿尔托部分可选地具有0.3的权重。在这种情况下,这表示30%的搜索结果必须与(位置:<Palo Alto>)项匹配(即,必须通过矢线206连接至对应于位置“帕洛阿尔托”的概念节点204),并且剩余70%的搜索结果可省略该项。因此,如果N是100,那么30个咖啡店结果必须具有位置“帕洛阿尔托”,并且70个咖啡店结果可来自任何地方(例如,来自由咖啡店的静态排名确定的全球100强咖啡店)。在特定的实施方式中,还可给项(类别:<coffee shop>)分配可选权重,以便搜索结果不需要甚至始终与“咖啡店”的社交图谱元素匹配,并且一些结果可由社交网络系统160选择为任何对象(例如,地点)。
在特定的实施方式中,社交网络系统160可生成查询命令,包括“strong or”运算符(SOR)。SOR运算符可要求其在查询命令内的一个或多个论证(例如,关键字或包括运算符和关键字的逻辑表达式)存在规定的次数或者时间百分比。通过增加引用那些社交图谱元素的隐式查询约束,在通过WAND运算符生成查询命令时,社交网络系统160可考虑在结构化查询中引用的社交图谱元素。社交图谱200的这个信息可用于使用SOR运算符使搜索结果多样化。作为另一个实例,并非通过限制的方式,如果用户输入结构化查询“在帕洛阿尔托或雷德伍德城的咖啡店”,那么社交网络系统160可转化查询命令,例如,
(AND类别:<coffee shop>
(SOR位置:<Palo Alto>:可选权重0.4
位置:<Redwood City>:可选权重0.3))
在这个实例中,并不允许搜索结果与查询命令的(位置:<Palo Alto>)或(位置:<Redwood City>)部分匹配,查询的帕洛阿尔托部分可选地具有0.4的权重并且雷德伍德城部分可选地具有0.3的权重。在这种情况下,这表示40%的搜索结果必须与(位置:<PaloAlto>)项匹配(即,对应于“咖啡店”的概念节点204,其均通过矢线206连接至对应于(位置:<Palo Alto>)的概念节点204,并且30%的搜索结果必须与(位置:<Redwood City>)项匹配,搜索结果的剩余部分与帕洛阿尔托或雷德伍德城约束(或者在某些情况下,在适当的情况下,这两者)匹配。因此,如果N是100,那么40个咖啡店结果必须具有位置“帕洛阿尔托”,30个咖啡店结果必须具有位置“雷德伍德城”,并且30个咖啡店可来自任一个地方。
在特定的实施方式中,响应于包括内部和外部查询约束的查询命令,社交网络系统160可识别与内部查询约束匹配的并且至少部分与外部查询约束匹配的节点的第一组。通过这种方式,通过生成使用查询提示的查询命令,可提高与社交网络系统160相关联的对象的搜索垂直存储164的过程,其中,在识别与内部查询约束匹配的对象时,使用外部查询约束。这还可允许社交网络系统160产生更好的搜索结果,并且可提高生成这些结果的处理效率。例如,使用WAND或SOR运算符,可形成查询命令,以便查询命令要求第一数量的已识别节点与内部约束匹配,或者与内部或外部约束匹配,并且要求第二数量的已识别节点与这两个约束或者仅仅与外部约束匹配或其任何组合。例如,第一和第二数量可能是实数、百分比或小数。虽然本公开描述了通过特定的方式将特定的社交图谱元素识别为与特定的查询约束匹配,但是本公开预计通过任何合适的方式将任何合适的社交图谱元素识别为与任何合适的查询约束匹配。
在特定的实施方式中,识别与内部查询约束匹配的并且至少部分与外部查询约束匹配的节点的第一组,可包括识别至少与内部查询约束匹配的第一数量的节点并且识别与内部查询约束以及外部查询约束匹配的第二数量的节点。可形成查询命令,以便要求响应于查询命令返回的至少第一数量的搜索结果与内部和外部查询约束匹配,同时允许至少第二数量的搜索结果仅仅与内部约束匹配(例如,与在使用WAND运算符的情况下一样)。作为另一个实例,并非通过限制的方式,响应于结构化查询“在帕洛阿尔托拍摄的女性照片”,社交网络系统160可生成查询命令,以解决内部查询约束,例如,
(WAND
(项gender_to_user:<female>)
(项photo_place_tag_to_user:<Palo Alto>:可选权重0.9))
在这种情况下,内部约束是识别女性用户,并且外部约束是识别在帕洛阿尔托市拍摄的已识别女性用户的照片。在搜索用户垂直存储164,以给内部约束识别匹配的用户节点202时,并非仅仅规定应识别女性用户(这可识别在帕洛阿尔托拍摄的任何照片内未标记的多个女性用户)时,查询命令规定至少90%的用户结果必须是也在帕洛阿尔托拍摄的照片中标记的女性。通过这种方式,通过增加额外约束(项photo_place_tag_to_user:<PaloAlto>:可选权重0.9),使索引非规范化。剩余的10%用户结果仅仅需要与“女性”约束匹配。因此,使用查询提示,以便在解决内部查询约束时,考虑外部查询约束。接下来,可以搜索照片垂直存储164,以识别在帕洛阿尔托拍摄的照片,在这些照片中标记任何先前识别的女性用户。由于由照片垂直存储164的搜索识别的90%的节点已经识别为在帕洛阿尔托拍摄的照片内标记的女性用户,所以照片垂直存储164的搜索更可能能够产生较大量的照片,在这些照片中标记识别的女性。虽然本公开描述了通过特定的方式将特定的社交图谱元素识别为与特定的查询约束匹配,但是本公开预计通过任何合适的方式将任何合适的社交图谱元素识别为与任何合适的查询约束匹配。
在特定的实施方式中,识别与内部查询约束匹配的并且至少部分与外部查询约束匹配的节点的第一组,可包括识别每个节点与内部或外部查询约束匹配的第一数量的节点并且识别每个节点与内部和外部查询约束匹配的第二数量的节点。可形成查询命令,以便响应于查询命令返回的至少第一数量的搜索结果与内部约束匹配,并且至少第二数量的搜索结果与外部约束匹配,剩余部分与内部约束或外部约束匹配(例如,与在使用SOR运算符的情况下一样)。作为另一个实例,并非通过限制的方式,响应于结构化查询“Mark和女人的照片”,社交网络系统160可生成查询命令,以解决内部查询约束,例如,
在这种情况下,内部约束是识别女性用户,并且外部约束是识别用户“Mark”拍摄的已识别女性用户的照片。在搜索用户垂直存储164,以给内部约束识别匹配的用户节点202时,并非仅仅规定应识别女性用户(这可识别在用户“Mark”拍摄的任何照片内未标记的多个女性用户)时,查询命令规定至少80%的用户结果必须是也与在SOR约束中的一个约束匹配的女性,其中,SOR约束规定70%的用户结果必须与(friend_of:<Mark>)约束匹配,并且10%的用户结果必须与(non_friend_in_same_photo:<Mark>)约束匹配,搜索结果的剩余部分与任一个约束匹配(或者在适当的情况下,这两者)。因此,如果N是100,那么56个用户结果必须是作为用户“Mark”的朋友的女性,8个用户结果必须是碰巧由“Mark”在照片中标记的不是用户“Mark”的朋友的女性,并且16个用户结果必须是女性,并且由“Mark”在照片中标记“Mark”的朋友或者非朋友。通过这种方式,通过增加各种额外约束,使索引非规范化,这也可帮助生成结果的多样性。因此,使用查询提示,以便在解决内部查询约束时,考虑外部查询约束(即,在用户“Mark”的照片内)。接下来,可以搜索照片垂直存储164,以识别用户“Mark”拍摄的照片,在这些照片中标记任何先前识别的女性用户。由于由照片垂直存储164的搜索识别的80%的节点已经识别为与用户“Mark”具有某种关系的女性用户,所以照片垂直存储164的搜索更可能能够产生满足搜索查询的照片。虽然本公开描述了通过特定的方式将特定的社交图谱元素识别为与特定的查询约束匹配,但是本公开预计通过任何合适的方式将任何合适的社交图谱元素识别为与任何合适的查询约束匹配。
在特定的实施方式中,社交网络系统160可给识别为与查询约束匹配的一个或多个节点评分。可通过任何合适的方式给识别的节点评分。在查询命令包括多个查询约束时,社交网络系统160可给与每个查询约束单独或者共同匹配的节点评分。通过访问对应于识别节点的对象类型的数据存储器164,社交网络系统160可给第一组识别节点评分。作为另一个实例,并非通过限制的方式,在生成与查询约束(提取作者:(项posts_liked_by:<Mark>))匹配的识别节点时,社交网络系统160可识别在用户垂直存储164内的这组用户(<Tom>、<Dick>、<Harry>)。然后,社交网络系统160可根据其与用户<Mark>的相应社会亲和力,给用户<Tom>、<Dick>以及<Harry>评分。例如,然后,帖子垂直存储164的社交网络系统160可根据在用户<Mark>喜欢的帖子列表内的多个帖子,给用户<Tom>、<Dick>以及<Harry>的识别节点评分。用户<Tom>、<Dick>以及<Harry>可编写用户<Mark>喜欢的以下帖子:<帖子1>、<帖子2>、<帖子3>、<帖子4>、<帖子5>、<帖子6>。如果用户<Dick>编写帖子<帖子1>、<帖子2>、<帖子3>,用户<Tom>编写帖子<帖子5>和<帖子6>,并且用户<Harry>编写帖子<帖子4>,那么社交网络系统160可将用户<Dick>评为最高分,这是因为Dick编写在用户<Mark>喜欢的帖子列表内的大部分帖子,<Tom>和<Harry>具有连续更低的得分。作为另一个实例,并非通过限制的方式,使用现有技术,社交网络系统160可访问将帖子映射到帖子的喜欢人数中的正向索引。索引服务器可访问正向索引,并且检索用户<Mark>喜欢的帖子列表的你每个帖子的喜欢人数。索引服务器可根据相应的喜欢人数,为在帖子列表(即,<帖子1>、<帖子2>、<帖子3>、<帖子4>、<帖子5>、<帖子6>)内的帖子评分,并且给社交网络系统160返回最高得分帖子(例如,最高3个得分的或最喜欢帖子)的作者,作为第一已识别节点。在为特定的已识别节点考虑每个适当评分的因素之后,可确定已识别节点的总得分。根据节点的得分,然后,社交网络系统160可生成一组或多组已识别节点。作为另一个实例,并非通过限制的方式,社交网络系统160可仅仅生成对应于具有比阈值得分更高的得分的节点的一组已识别节点。作为另一个实例,并非通过限制的方式,社交网络系统160可将评分节点排名,然后,仅仅生成对应于具有比阈值排名更高的排名(例如,前10、前20等)的节点的一组已识别节点。虽然本公开描述了通过特定的方式给匹配节点评分,但是本公开预计通过任何合适的方式给匹配节点评分。
在特定的实施方式中,社交网络系统160可至少部分根据节点的第一组的得分,给节点的第二组评分。可通过任何合适的方式给搜索结果评分。在查询命令包括多个查询约束时,社交网络系统160可给与每个查询约束单独匹配的节点评分。可替换地,在给一个或多个其他组节点评分时,社交网络系统160可使用一组节点的得分。对于具有内部约束和外部约束的查询命令,社交网络系统160可识别与内部查询约束匹配的节点的第一组,然后,给这些节点评分。然后,社交网络系统160可识别与外部查询约束匹配的节点的第二组,并且至少部分根据节点的第一组的得分,给节点的第二组评分。作为另一个实例,并非通过限制的方式,响应于结构化查询“我朋友喜欢的页面”,社交网络系统160可生成查询命令,例如,(pages_liked_by:(friends_of:<me>))。通过访问用户垂直存储164并且识别对应于内部查询约束的节点的第一组,社交网络系统160可首先解决内部查询约束,这请求作为查询用户的朋友的用户。这个第一组用户可包括(<Tom>、<Dick>、<Harry>),这些用户均可对应于由朋友类型矢线206连接至查询用户的用户节点202的相应用户节点202。然后,社交网络系统160可通过任何合适的方式给这个节点的第一组评分。例如,可根据其与查询用户的相应社交图谱亲和力,给这组用户评分,其中,用户“Dick”可具有在这组内的最佳亲和力,用户“Harry”可具有第二好的亲和力,并且用户“Tom”可具有在这组内的最差的亲和力。接下来,通过访问页面垂直存储164,社交网络系统160可解决外部查询约束,并且识别对应于外部查询约束的节点的第二组,这请求在第一组内的用户喜欢的页面(即,对应于由喜欢类型矢线206连接至对应于用户“Tom”、“Dick”以及“Harry”的至少一个用户节点202的概念节点204的页面)。用户“Tom”、“Dick”以及“Harry”可喜欢以下页面:(<页面1>、<页面2>、<页面3>、<页面4>、<页面5>)。然后,社交网络系统160可通过任何合适的方式给这个节点的第二组评分。例如,可根据其在在线社交网络上的总体流行度,给这组页面评分,其中,全球更流行的页面的得分分别比不太流行的页面更好。还可至少部分根据节点的第一组的得分,给这组页面评分。例如,“Tom”可喜欢<页面1>,“Dick”可喜欢<页面2>,“Harry”可喜欢<页面3>,“Tom”和“Harry”<页面4>,并且“Tom”、“Dick”以及“Harry”可喜欢<页面5>。在这种情况下,通过提高具有更好亲和力的用户喜欢的页面的得分并且降低(或至少提高更少)具有更差亲和力的用户喜欢的页面的得分,社交网络系统160可至少部分根据这组节点,给节点的第二组评分。例如,由于用户“Dick”相对于查询用户具有最佳亲和力,所以“Dick”喜欢的页面(即,<页面2>和<页面5>)均可提高其得分。同样,由于用户“Tom”相对于查询用户具有最差亲和力,所以“Tom”喜欢的页面(即,<页面1>、<页面4>以及<页面5>)均可降低(或者至少不同样提高)其得分。在为特定的已识别节点考虑每个适当评分的因素之后,可确定已识别节点的总得分。根据节点的得分,然后,社交网络系统160可生成一组或多组已识别节点。作为一个实例,并非通过限制的方式,社交网络系统160可仅仅生成对应于具有比阈值得分更高的得分的节点的一组已识别节点。作为另一个实例,并非通过限制的方式,社交网络系统160可将评分节点排名,然后,仅仅生成对应于具有比阈值排名更高的排名(例如,前10、前20等)的节点的一组已识别节点。虽然本公开描述了通过特定的方式给节点评分,但是本公开预计通过任何合适的方式给节点评分。
在特定的实施方式中,社交网络系统160可根据识别为与内部查询约束匹配并且至少部分与外部查询约束匹配的节点的第一组,并且进一步根据识别为与外部查询约束匹配的节点的第二组,生成一个或多个搜索结果。每个搜索结果可对应于多个节点中的一个节点。如上所述,然后,可使用外部查询约束的查询提示识别的识别为与内部查询约束匹配的节点可用作用于识别与外部查询约束匹配的节点的基础。可给识别为与外部查询约束匹配的节点评分(并且可能排名),然后,可生成一个或多个(例如,阈值数量),作为搜索结果,向用户显示。搜索结果可作为搜索结果页面呈现和发送给查询用户,其中,显示生成的搜索结果。作为一个实例,并非通过限制的方式,响应于结构化查询“在帕洛阿尔托拍摄的女性照片”,如图5C中所示,社交网络系统160可使用查询提示,识别与内部查询约束匹配的节点的第一组。在这个实例中,内部约束请求女性用户,并且其中,可使用查询提示,以便在第一组内识别的多个用户是也在帕洛阿尔托市拍摄的照片中标记的用户。接下来,社交网络系统160可识别与外部查询约束匹配的节点的第二组。在这个实例中,外部约束请求在帕洛阿尔托拍摄的在第一组内的用户的照片。然后,根据在节点的第二组中识别的节点,可生成一个或多个搜索结果。然后,可将所生成的搜索结果发送和显示给查询用户,作为对应于结构化查询“在帕洛阿尔托拍摄的女性照片”的搜索结果页面的一部分。例如,搜索结果页面可显示搜索结果,作为对应于在第二组内识别的节点的照片的缩略图。虽然本公开描述了通过特定的方式生成特定的搜索结果,但是本公开预计通过任何合适的方式生成任何合适的搜索结果。
图6示出了用于响应于具有内部约束和外部约束的搜索查询生成搜索结果的一个实例方法600。该方法可在步骤610中开始,其中,社交网络系统160可访问社交图谱200,包括多个节点(例如,用户节点202或概念节点204)以及连接所述节点的多个矢线206。在两个节点之间的每个矢线可表示在所述两个节点间的单个分离度。所述节点可包括第一节点(例如,第一用户节点202),其对应于与在线社交网络相关联的第一用户。所述节点还可包括多个第二节点,所述多个第二节点中的每个对应于与所述在线社交网络相关联的概念或第二用户。在步骤620中,社交网络系统160可从所述第一用户接收结构化查询,包括对所述多个节点中的一个或多个选择的节点和所述多个矢线中的一个或多个选择的矢线的引用。在步骤630中,社交网络系统160可根据结构化查询,生成查询命令。查询命令包括第一查询约束和第二查询约束(例如,内部约束和外部约束)。在步骤640中,社交网络系统160可识别与第一查询约束匹配的并且至少部分与第二查询约束匹配的节点的第一组。在步骤650中,社交网络系统160可识别与第二查询约束匹配的节点的第二组。在步骤660中,社交网络系统160可根据节点的第一组和第二组,生成一个或多个搜索结果。每个搜索结果可对应于多个节点中的一个节点。在适当的情况下,特定的实施方式可重复图6的方法的一个或多个步骤。虽然本公开描述和显示了按照特定的顺序发生的图6的方法的特定步骤,但是本公开预计按照任何合适的顺序发生的图6的方法的任何合适的步骤。而且,虽然本公开描述和显示了执行图6的方法的特定步骤的特定元件、装置或系统,但是本公开预计执行图6的方法的任何合适的步骤的任何合适的元件、装置或系统的任何合适的组合。
在特定的实施方式中,社交网络系统160可解析结构化搜索查询并且生成包括逆算子的查询命令。使用逆算子,可提高搜索与社交网络系统160相关联的对象的垂直存储164的过程,其中,可修改一个查询约束,以包括其反向约束。在解析具有内部查询约束和外部查询约束的结构化查询时,例如,嵌套式搜索查询,查询的典型处理可产生不充分数量的搜索结果。例如,由于内部查询约束产生太多结果,降低了任何结果满足外部查询约束的可能性,所以可发生这种情况。作为一个实例,并非通过限制的方式,可以解析比较复杂的结构化查询,例如,“中国人喜欢的我的照片”,如图5D中所示,作为((intersect(photos_of:<me>,photos_liked_by:(users_from:<China>)))。在执行这个解析时,首先,搜索用户垂直存储164,以识别位于中国的用户,然后,使那些结果与照片垂直存储164的结果相交,以识别一个识别的中国用户喜欢的查询用户的照片。然而,用户垂直存储164的第一搜索可能产生对应于几百或者甚至几千中国用户的结果,这些用户都不喜欢查询用户的任何照片。可替换地,可以使用逆算子,可以解析这个结构化查询。在特定的实施方式中,某些运算符对应于特定的逆算子。作为一个实例,并非通过限制的方式,并非使用“liked_by”运算符,可解析结构化查询来代替,以包括其逆算子,即,“likers_of”运算符。换言之,并非搜索中国用户喜欢的照片,而是搜索查询用户的“likers_of”用户。例如,可以解析结构化查询“中国人喜欢的我的照片”,作为((intersect(photos_of:<me>,photos_liked_by:(intersect(likers_of(photos_of:<me>),users_from:<China>))))。这会改变查询的处理顺序,以便首先,访问照片垂直存储164,以识别查询用户的照片,然后,可以识别那些照片的喜欢的人。接下来,可以搜索用户垂直存储164,以识别(如果有的话)哪些喜欢的人住在中国。通过这种方式,可使用逆算子,以便第一垂直存储164的搜索产生更好的结果。这还可允许社交网络系统160产生更好的搜索结果,并且可提高生成这些结果的处理效率。虽然本公开描述了通过特定的方式识别与结构化查询匹配的对象,但是本公开预计通过任何合适的方式识别与结构化查询匹配的对象。
在特定的实施方式中,对应于对象类型的垂直存储164的搜索索引可包括反向索引。第一对象类型的反向索引可将与第二对象类型相关联的查询项映射到第一对象类型的一个或多个对象中。作为一个实例,并非通过限制的方式,在帖子垂直存储164内的反向索引可将与用户相关联的查询项(例如,posts_liked_by:<user>)从<用户>中映射到<用户>喜欢的帖子列表中。同样,反向索引可将与用户相关联的查询项(例如,posts_commented_by:<user>)从<用户>中映射到<用户>评论的帖子列表中。作为另一个实例,并非通过限制的方式,在照片垂直存储164内的反向索引可将与用户相关联的查询项(例如,photos_liked_by:<user>)从<用户>中映射到<用户>喜欢的照片列表中。同样,反向索引可将与用户相关联的查询项(例如,photos_of:<user>)从<用户>中映射到标记<用户>的照片列表中。在特定的实施方式中,对应于对象类型的垂直存储164的反向索引可将与对象类型相关联的查询项映射到对象类型的一个或多个对象中。作为一个实例,并非通过限制的方式,在用户垂直存储164内的反向索引可将与用户相关联的查询项(例如,朋友:<user>)从<用户>中映射到<用户>的(即,用户对象类型的)的朋友列表中。在特定的实施方式中,反向索引可映射查询项的1个到多个。作为一个实例,并非通过限制的方式,照片垂直存储164的反向索引可将用户映射到标记用户的多个照片(例如,超过100张照片)中。虽然本公开描述了通过特定的方式搜索垂直存储164,但是本公开预计通过任何合适的方式搜索垂直存储。
在特定的实施方式中,对应于对象类型的垂直存储164的搜索索引可包括正向索引。第一对象类型的正向索引可将与第一对象类型相关联的查询项映射到第二对象类型的一个或多个对象中。作为一个实例,并非通过限制的方式,在帖子垂直存储164内的正向索引可将与帖子相关联的查询项(例如,likers_of:<post>)从<帖子>中映射到喜欢<帖子>的用户列表中。同样,正向索引可将与帖子相关联的查询项(例如,author_of:<post>)从<帖子>中映射到作为<帖子>的作者的用户。作为另一个实例,并非通过限制的方式,在照片垂直存储164内的正向索引可将与照片相关联的查询项(例如,tagged_in:<photo>)从<照片>中映射到在<照片>中标记的用户列表中。同样,正向索引可将与照片相关联的查询项(例如,commenters_of:<photo>)从<照片>中映射到在<照片>上评论的用户列表中。在特定的实施方式中,正向索引可包括查询项的一对一映射。作为一个实例,并非通过限制的方式,照片垂直存储164的正向索引可将照片映射到照片的主人(例如,将照片上传给社交网络系统160的用户)。在特定的实施方式中,正向索引可包括查询项的一对几映射。作为一个实例,并非通过限制的方式,在照片垂直存储164内的正向索引可将照片映射到在照片内标记的几个用户(例如,不到10个用户)中。虽然本公开描述了通过特定的方式搜索垂直存储164,但是本公开预计通过任何合适的方式搜索垂直存储。
在特定的实施方式中,在解析结构化查询,以识别多个查询约束之后,社交网络系统160可识别与一个查询约束相关联的反向约束。反向约束基本上反转执行结构化查询时搜索垂直存储164的顺序。如果特定的查询约束请求与第二对象类型具有特定连接的第一对象类型的搜索结果,那么其相应反向约束可请求第二对象类型的搜索结果与第一对象类型具有该连接。在内部查询约束产生太多结果时,使用反向约束,可对嵌套式查询特别有用,降低了任何结果满足外部查询约束的可能性。如果查询约束用于特定的对象类型,那么反向约束可用于不同的对象类型或者相同的对象类型。在特定的实施方式中,查询约束可用于对应于均由在结构化查询内引用的选择的矢线中的一个连接至一个或多个第二节点类型的节点的一个或多个第一节点类型的节点的第一对象类型,并且反向约束可用于对应于由在结构化查询内引用的选择的矢线中的一个连接至一个或多个第一节点类型的节点的一个或多个第二节点类型的节点的第二对象类型。作为一个实例,并非通过限制的方式,如果第一约束用于(posts_liked_by:<user>),那么这个查询约束搜索对应于由喜欢类型矢线206连接至特定的用户节点202(或用户节点202的类型)的帖子对象的概念节点204。例如,第一约束的反向约束可能是(likers_of:<posts>),这搜索由喜欢类型矢线206连接至对应于特定帖子的特定概念节点204(或概念节点204的类型)的用户节点202。换言之,并非使用“liked_by”运算符搜索用户喜欢的照片,反向约束使用“likers_of”运算符搜索喜欢照片的用户。在特定的实施方式中,查询约束及其反向约束可用于相同的对象类型。作为另一个实例,并非通过限制的方式,如果第一约束用于(followers_of:<user>),那么这个查询约束搜索订阅或跟随第二用户的一个或多个第一用户。例如,第一约束的反向约束可能是(users_followed_by:<user>),这搜索第一用户跟随(或者第一类型的用户跟随)的一个或多个第二用户。虽然本公开描述了通过特定的方式识别特定的反向约束,但是本公开预计通过任何合适的方式识别任何合适的反向约束。
在特定的实施方式中,社交网络系统160可根据包括反向约束的结构化查询,生成查询命令。在结构化查询的解析识别第一查询约束和一个或多个第二查询约束的情况下,社交网络系统160可识别第一查询约束的反向约束,然后,生成包括反向约束和所述一个或多个第二查询约束的查询命令。在特定的实施方式中,社交网络系统160生成包括反向约束的查询命令,可包括生成搜索正向索引(代替反向索引)的查询命令。作为一个实例,并非通过限制的方式,如果第一查询约束是(posts_authored_by:<user>),那么这个查询约束可使用从<用户>中映射到由<用户>编写的帖子列表中的反向索引,搜索帖子垂直存储164。然后,社交网络系统160可使用(posts_authored_by:<user>)的反向约束,生成查询命令,例如,该反向约束可能是(authors_of:<post>),可使用从<帖子>中映射到编写<帖子>的用户列表中的正向索引,搜索用户索引164。在特定的实施方式中,第一查询约束本身可能是具有内部约束和外部约束的嵌套式查询。在这种情况下,所生成的查询命令可包括第一反向约束和内部约束的交集。作为一个实例,并非通过限制的方式,响应于结构化查询“中国人喜欢的我的照片”,社交网络系统160可以解析该结构化查询,以生成查询命令,例如,intersect(photos_of:<me>,photos_liked_by:(users_from:<China>))。然而,由于内部约束(users_from:<China>)可识别不满足外部约束(photos_liked_by:<users>)的大量用户节点202,所以执行这个查询命令,可产生不充分数量的搜索结果。因此,社交网络系统160可使用反向约束,生成查询命令,例如,(intersect(photos_of:<me>,photos_liked_by:(intersect(likers_of(photos_of:<me>),users_from:<China>))))。在这个实例中,根据外部约束的“liked_by”运算符,社交网络系统160修改了查询命令,以包括在内部约束内的反向“likers_of”运算符,并且使其与内部查询约束(users_from:<China>)相交。这颠倒在垂直存储164内搜索对象类型的顺序,以便并非搜索中国用户喜欢的照片,而是搜索作为查询用户的“likers_of”照片的用户,并且使那些结果与搜索中国用户相交。在特定的实施方式中,例如,通过包含WAND和SOR运算符,如上所述,还使用查询提示,生成使用反向约束生成的查询命令,以便查询命令要求第一数量的已识别节点与内部约束匹配或者与内部或外部约束匹配,并且要求第二数量的已识别节点与这两个约束或者仅仅与外部约束匹配或其任何组合。例如,第一和第二数量可能是实数、百分比或小数。虽然本公开描述了通过特定的方式生成特定的查询命令,但是本公开预计通过任何合适的方式生成任何合适的查询命令。
在特定的实施方式中,响应于包括反向约束的查询命令,社交网络系统160可识别与反向约束匹配的节点的第一组。如上所述,社交网络系统160还可识别查询命令的分别与一个或多个额外查询约束匹配的一个或多个节点的第二组。匹配节点可通过任何合适的方式识别,例如,通过如上所述,引用搜索索引。在特定的实施方式中,响应于结构化查询“中国人喜欢的我的照片”,社交网络系统160可识别由在结构化查询内引用的一个或多个选择的矢线连接至在节点的第一组内的一个或多个节点的所述多个节点的一个或多个节点的多数个中的一个或多个节点。作为一个实例,并非通过限制的方式,响应于结构化查询“中国人喜欢的我的照片”,社交网络系统160可使用反向约束,生成查询命令,例如,(intersect(photos_of:<me>,photos_liked_by:(intersect(likers_of(photos_of:<me>),users_from:<China>))))。在此处,在结构化查询内的“我”和“中国”的引用表示特定的社交图谱元素,即,对应于查询用户的用户节点202以及对应于位置“中国”的概念节点204。同样,“我的照片”和“由…喜欢”的引用表示连接引用节点和期望的搜索结果的特定矢线类型。在这种情况下,查询约束(photos_liked_by:(intersect(likers_of(photos_of:<me>),users_from:<China>)))本身是嵌套式查询,其中,内部约束请求作为查询用户的“likers_of”照片的用户以及来自中国的用户。在搜索用户垂直存储164,以识别约束(likers_of(photos_of:<me>))的匹配的用户节点202时,由于喜欢查询用户的照片的用户的数量较小(例如,几十到几百个用户),所以社交网络系统160能够识别较小的一组节点。接下来,社交网络系统160可搜索用户垂直存储164,以识别约束(users_from:<China>)的匹配的用户节点202。要注意的是,约束(users_from:<China>)可产生几千或者几百万个结果,大部分结果可能不满足查询命令。然而,通过使其与由反向约束识别的对象相交,识别具有更合理尺寸的一组对象,对应于喜欢查询用户的照片的中国用户。一旦解决这个内部约束,这组已识别用户就可用于解决外部约束,该外部约束用于识别由内部约束识别的用户喜欢的照片。然后,这组照片可与约束(photos_of:<me>)的结果相交,以便识别中国用户喜欢的查询用户的一组照片。虽然本公开描述了通过特定的方式将特定的社交图谱元素识别为与特定的反向约束匹配,但是本公开预计通过任何合适的方式将任何合适的社交图谱元素识别为与任何合适的反向约束匹配。
在特定的实施方式中,社交网络系统160可分别根据识别为与反向查询约束匹配的节点的第一组以及与一个或多个查询约束匹配的一个或多个节点的第二组,生成一个或多个搜索结果。每个搜索结果可对应于多个节点中的一个节点。可给识别为与查询命令匹配的节点评分(并且可能排名),然后,可生成一个或多个(例如,阈值数量),作为搜索结果,向用户显示。搜索结果可作为搜索结果页面呈现和发送给查询用户,其中,显示生成的搜索结果。作为一个实例,并非通过限制的方式,响应于结构化查询“中国人喜欢的我的照片”,如图5D中所示,社交网络系统160可识别与反向约束匹配的节点的第一组。在这个实例中,内部约束(由反向约束修改)请求作为查询用户的照片的喜欢的人的中国用户。接下来,社交网络系统160可识别与外部查询约束匹配的节点的第二组。在这个实例中,外部约束请求在第一组内的一个用户喜欢的查询用户的照片。然后,根据在节点的第二组中识别的节点,可生成一个或多个搜索结果。然后,可将所生成的搜索结果发送和显示给查询用户,作为对应于结构化查询“中国人喜欢的我的照片”的搜索结果页面的一部分。例如,搜索结果页面可显示搜索结果,作为对应于在第二组内识别的节点的照片的缩略图。在特定的实施方式中,社交网络系统160可生成在节点的第一组和节点的第二组内识别的每个节点的搜索结果。在特定的实施方式中,由社交网络系统160生成的每个搜索结果可对应于由在结构化查询中引用的一个或多个选择的矢线连接至在节点的第二组内的一个或多个节点(或者反之亦然)的节点的第一组的节点。虽然本公开描述了通过特定的方式生成特定的搜索结果,但是本公开预计通过任何合适的方式生成任何合适的搜索结果。
在特定的实施方式中,在初步查询命令生成低于阈值数量的搜索结果时,社交网络系统160可生成包括反向约束的查询命令。在解析嵌套式搜索查询时,查询的典型处理可产生不充分数量的搜索结果。例如,由于内部查询约束产生太多结果,降低了任何结果满足外部查询约束的可能性,所以可发生这种情况,从而可生成很少或者不生成搜索结果。在特定的场景中,可使用反向约束,其中,结构化查询的元素解析生成产生不充分数量的搜索结果的查询命令。在特定的实施方式中,在结构化查询的解析期间,识别特定的查询约束时,可使用反向约束。特定的查询约束已经识别为适合于使用反向约束代替。换言之,特定的查询约束可被标记为可能识别过多对象,使得在其位置内使用反向约束。作为一个实例,并非通过限制的方式,社交网络系统160可储存(例如,在聚合器320中)查询约束列表,其中,由查询约束生成的组可能较大(例如,(users_from:<country>)或者(likers_of:<page>),用于具有大量喜欢的人的页面)。在查询解析期间识别在列表上的查询约束时,社交网络系统160可使用所列出的约束的反向约束,自动生成查询命令。在特定的实施方式中,在查询提示用于解析嵌套式搜索查询时,例如,在内部查询约束识别不满足外部查询约束的大量对象时,可使用反向约束。在结构化查询的初始解析产生具有请求不满足外部约束的大量对象的内部约束的查询命令的情况下,反向约束可特别有用。作为一个实例,并非通过限制的方式,社交网络系统160可确定满足第一查询约束的节点的数量。如果节点的数量大于节点的阈值数量,那么社交网络系统160可生成具有第一反向约束的查询命令。否则,社交网络系统160可生成具有第一查询约束的查询命令。换言之,如果结构化查询的初始解析产生识别太多对象的查询命令,那么可反而使用反向约束,以使所生成的结果的数量减少。作为另一个实例,并非通过限制的方式,社交网络系统160可根据结构化查询,生成初步查询命令。这个初步查询命令可包括第一查询约束和一个或多个第二查询约束。在这种场景中,初步查询命令可被视为结构化查询的默认或正常解析。然后,社交网络系统160可根据初步查询命令,生成第一组搜索结果。如果第一组搜索结果小于搜索结果的阈值数量,那么社交网络系统160可生成具有第一反向约束的查询命令,然后,根据具有第一反向约束的查询命令,生成第二组搜索结果(例如,通过识别与反向约束和外部约束匹配的几组新节点)。换言之,如果结构化查询的初始解析生成太少搜索结果,那么可使用反向约束,以使提高搜索结果。虽然本公开描述了通过特定的方式生成特定的查询命令,但是本公开预计通过任何合适的方式生成任何合适的查询命令。
图7示出了用于使用逆算子解析搜索查询的一个实例方法700。该方法可在步骤710中开始,其中,社交网络系统160可访问社交图谱200,包括多个节点(例如,用户节点202或概念节点204)以及连接所述节点的多个矢线206。在两个节点之间的每个矢线可表示在所述两个节点间的单个分离度。所述节点可包括第一节点(例如,第一用户节点202),其对应于与在线社交网络相关联的第一用户。所述节点还可包括多个第二节点,所述多个第二节点中的每个对应于与所述在线社交网络相关联的概念或第二用户。在步骤720中,社交网络系统160可从所述第一用户接收结构化查询,包括对所述多个节点中的一个或多个选择的节点和所述多个矢线中的一个或多个选择的矢线的引用。在步骤730中,社交网络系统160可解析结构化查询,以识别第一查询约束和一个或多个第二查询约束。在步骤740中,社交网络系统160可识别与第一查询约束相关联的第一反向约束。在步骤750中,社交网络系统160可根据结构化查询,生成查询命令。查询命令可包括第一反向约束和一个或多个第二查询约束。查询命令还可包括第一查询约束。在步骤760中,社交网络系统160可生成对应于查询命令的一个或多个搜索结果。每个搜索结果可对应于多个节点中的一个节点。在适当的情况下,特定的实施方式可重复图7的方法的一个或多个步骤。虽然本公开描述和显示了按照特定的顺序发生的图7的方法的特定步骤,但是本公开预计按照任何合适的顺序发生的图7的方法的任何合适的步骤。而且,虽然本公开描述和显示了执行图7的方法的特定步骤的特定元件、装置或系统,但是本公开预计执行图7的方法的任何合适的步骤的任何合适的元件、装置或系统的任何合适的组合。
根据意图生成搜索结果
在特定的实施方式中,响应于从查询用户接收的结构化查询,社交网络系统160可生成一个或多个搜索结果,其中,搜索结果对应于结构化查询。社交网络系统160可识别满足结构化查询或者与结构化查询匹配的对象(例如,用户、照片、配置文件页面(或配置文件页面的内容)等)。然后,可生成对应于每个已识别对象的搜索结果。作为一个实例,并非通过限制的方式,响应于结构化查询“Matt和Stephanie的照片”,社交网络系统160可识别照片,其中,用户“Matt”和“Stephanie”都在照片内标记。然后,可生成对应于这个照片的搜索结果,并且将其发送给用户。在特定的实施方式中,每个搜索结果可与一个或多个对象相关联,其中,结构化查询的每个查询约束由与该特定的搜索结果相关联的一个或多个对象满足。作为一个实例,并非通过限制的方式,继续先前的实例,响应于结构化查询“Matt和Stephanie的照片”,社交网络系统160可解析查询,以生成查询命令(intersect(photos_of:<Matt>)、(photos_of:<Stephanie>)),可以执行该命令,以生成对应于照片的搜索结果,其中,用户“Matt”和“Stephanie”(这两个用户都在结构化查询中引用)都在照片内标记(即,其用户节点202由标记类型的矢线206连接至对应于该照片的概念节点204)。换言之,(photos_of:<Matt>)和(photos_of:<Stephanie>)都由照片满足,这是因为该照片连接至用户“Matt”和“Stephanie”的用户节点202。虽然本公开描述了通过特定的方式生成搜索结果,但是本公开预计通过任何合适的方式生成搜索结果。
在特定的实施方式中,社交网络系统160可根据查询用户的搜索意图,生成搜索结果。根据由用于生成搜索结果的特定搜索算法确定的其与搜索查询的相对相关程度,可给搜索结果(例如,已识别节点或其相应配置文件页面)评分(或排名)并且向用户呈现。根据其与用户的相对相关程度,也可给搜索结果评分并且向用户呈现。在特定的实施方式中,用于给搜索结果评分的搜索算法可随着查询用户的搜索意图而改变。搜索意图表示查询用户相对于搜索查询的类型和/或用户所在的搜索模式的类型的意图。响应于搜索查询,社交网络系统160可确定搜索查询的一个或多个搜索意图。可通过各种方式,例如,根据在搜索查询内引用的社交图谱元素、在搜索查询内的项、与查询用户相关联的用户信息、查询用户的搜索历史、模式检测、与查询或用户相关的其他合适的信息、或其任何组合,确定搜索意图。可根据这些搜索意图,修改用于生成搜索结果的搜索算法,以便搜索结果响应于一个查询排名的方式可与搜索结果响应于另一个查询排名的方式不同。作为一个实例,并非通过限制的方式,如果查询用户对识别查询用户可能有兴趣约会的其他用户感兴趣,那么响应于具有约会意图的搜索查询生成的搜索结果可将结果排名,以便表示“单一”的用户比表示“具有关系”的用户排名更高。同样,如果查询用户对识别联网的用户感兴趣,以便找工作,那么响应于具有联网意图的搜索查询生成的搜索结果可排名,以便在与查询用户相同的地理区域内的公司上班的用户比在地理上不同的公司上班的用户排名更高。在特定的实施方式中,搜索结果可由搜索引擎实现的特定评分/排名算法评分或排名。作为一个实例,并非通过限制的方式,与搜索查询或者与用户更相关的搜索结果可比不太相关的资源评分更高。可根据由社交网络系统160识别的搜索意图,修改确定相关性的方式。在特定的实施方式中,社交网络系统160可将所述一个或多个搜索结果排名。例如,根据为搜索结果确定的得分,可将搜索结果排名。最相关的结果(例如,最高/最佳评分)可排名最高,剩余的结果具有与其得分/相关性相当的更低排名,以便最不相关的结果排名最低。虽然本公开描述了通过特定的方式根据搜索意图将搜索结果排名,但是本公开预计通过任何合适的方式根据搜索意图将搜索结果排名。
在特定的实施方式中,社交网络系统160可根据在结构化查询中引用的一个或多个所选节点或选择的矢线,确定一个或多个搜索意图。特定的社交图谱元素可对应于特定的搜索意图。在特定的实施方式中,社交网络系统160可确定特定的社交图谱元素对应于基于特定的搜索意图的社交图谱信息的概率。作为一个实例,并非通过限制的方式,在确定特定的搜索意图与特定的查询相关联的概率p时,该概率的计算也可包括社交图谱信息这一因素。因此,考虑特定的设计图元素X和查询q,对应于特定搜索意图I的概率可计算为p=(I|X,q)。在特定的实施方式中,社交网络系统160可识别对应于在结构化查询中引用的一个或多个节点或一个或多个矢线的一个或多个搜索意图。每个搜索意图可对应于一个或多个社交图谱元素。同样,特定的社交图谱元素可对应于一个或多个搜索意图。作为一个实例,并非通过限制的方式,对于结构化查询“在帕洛阿尔托的单身女士”,社交网络系统160可确定在结构化查询内引用的单身类型矢线206可对应于约会意图,表示查询用户对找出用于约会或者交往目的的用户感兴趣。同样,在结构化查询内引用的女性性别类型矢线206还可对应于约会的意图。换言之,由于查询用户提交引用对应于“单身”和/或“女士”的社交图谱元素的结构化查询,所以社交网络系统160能够确定查询用户尝试找出用于约会目的的对象,然后,能够随后根据其确定的意图,适当地给搜索结果评分/排名。作为另一个实例,并非通过限制的方式,对于结构化查询“在帕洛阿尔托担任软件工程师的人”,社交网络系统160可确定在结构化查询内引用的单身类型矢线206可对应于联网意图,表示查询用户对找出用于联网、招聘或者就业目的的用户感兴趣。虽然本公开描述了特定类型的搜索意图,但是本公开预计任何合适的类型的搜索意图。在特定的实施方式中,社交网络系统160可通过引用模式检测模型,识别一个或多个搜索意图。作为一个实例,并非通过限制的方式,社交网络系统160可访问索引对应于特定搜索意图的特定社交图谱元素的模式检测模型。例如,索引可表示特定的节点或节点类型或者特定的矢线或矢线类型单独或者共同对应于特定的搜索意图。然后,社交网络系统160可确定在结构化查询内引用的任何节点或矢线是否与在模式检测模型内索引的节点或矢线匹配。对于在索引中找出的每个匹配的节点或矢线,社交网络系统160可确定在模式检测模型内索引的搜索意图,对应于在结构化查询内引用的匹配节点或匹配矢线。虽然本公开描述了通过特定的方式确定特定的搜索意图,但是本公开预计通过任何合适的方式确定任何合适的搜索意图。
在特定的实施方式中,社交网络系统160可根据与查询用户相关联的用户配置文件页面的用户信息,确定一个或多个搜索意图。查询用户可与社交图谱200的特定用户节点202相关联,并且还可与特定的用户配置文件页面相关联。特定的用户信息可对应于特定的搜索意图。作为一个实例,并非通过限制的方式,在查询用户在其用户配置文件页面上指示该用户在感情状态字段中是“单身”(即,没有伴侣)的情况下,社交网络系统160可确定这个用户配置文件信息对应于约会意图。然后,社交网络系统160可确定来自这个查询用户的特定结构化查询更可能与约会搜索意图相关联。作为另一个实例,并非通过限制的方式,在查询用户在其用户配置文件页面上指示该用户在工作经历字段中是“待业”的情况下,社交网络系统160可确定这个用户配置文件信息对应于联网意图。然后,社交网络系统160可确定来自这个查询用户的特定结构化查询更可能与联网意图相关联。虽然本公开描述了通过特定的方式根据特定的用户信息确定搜索意图,但是本公开预计通过任何合适的方式根据任何合适的用户信息确定搜索意图。
在特定的实施方式中,社交网络系统160可根据响应于结构化查询生成的查询命令的一个或多个查询约束,确定一个或多个搜索意图。响应于从查询用户接收结构化查询,社交网络系统160可根据结构化查询,生成查询命令,其中,查询命令可包括一个或多个查询约束。特定的查询约束可对应于特定的搜索意图。作为一个实例,并非通过限制的方式,对于结构化查询“在帕洛阿尔托的单身女士”,社交网络系统160可生成查询命令,例如,(intersect(user_gender:<female>、user_location:<Palo Alto>、user_relationship_status:<single>))。然后,社交网络系统160可确定(user_gender:<female>)的查询约束对应于约会意图。虽然本公开描述了通过特定的方式根据特定的查询约束确定搜索意图,但是本公开预计通过任何合适的方式根据任何合适的查询约束确定搜索意图。
在特定的实施方式中,社交网络系统160可根据与查询用户相关联的搜索历史,确定一个或多个搜索意图。为查询用户预先确定的搜索意图更可能与查询用户的当前搜索查询的搜索意图匹配。作为一个实例,并非通过限制的方式,如果查询用户预先运行社交网络系统160确定对应于约会意图的搜索查询,那么在确定后续搜索查询对应于特定的搜索意图的概率时,社交网络系统160可确定约会意图具有对应于后续搜索查询的较高概率,这是因为查询用户预先运行了具有该意图的搜索查询。作为另一个实例,并非通过限制的方式,如果查询用户从未运行社交网络系统160确定对应于联网意图的搜索查询,那么在确定后续搜索查询对应于特定的搜索意图的概率时,社交网络系统160可确定联网意图具有对应于后续搜索查询的较低概率,这是因为查询用户从未运行具有该意图的搜索查询。虽然本公开描述了通过特定的方式根据特定的搜索历史信息确定搜索意图,但是本公开预计通过任何合适的方式根据任何合适的搜索历史信息确定搜索意图。
在特定的实施方式中,社交网络系统160可根据结构化查询的一个或多个n语法,确定一个或多个搜索意图。n语法可能是来自结构化查询的n个项目的任何连续序列,可包括字符串或社交图谱引用。特定的n语法可对应于特定的搜索意图。虽然本公开描述了通过特定的方式根据特定的查询项确定搜索意图,但是本公开预计通过任何合适的方式根据任何合适的查询项确定搜索意图。
在特定的实施方式中,社交网络系统160可根据搜索意图给所生成的搜索结果评分。搜索意图可表示应根据一个或多个因素(例如,搜索计数或比率、社交图谱信息、社交图谱亲和力、搜索历史、其他合适的因素或其任何组合),给搜索结果评分。还可根据广告赞助,给搜索结果评分。虽然本公开描述了通过特定的方式给搜索结果评分,但是本公开预计通过任何合适的方式给搜索结果评分。
在特定的实施方式中,社交网络系统160可根据一个或多个搜索意图给搜索结果评分。社交网络系统160可使用一个或多个评分算法,给搜索结果评分,其中,可根据其与搜索查询的相关性,给搜索结果评分。在某些情况下,用户可提交特定对象类型的搜索请求,例如,与某些查询约束匹配的照片或用户,但是与仅仅由静态排名确定的前面N个对象相比,可在搜索结果中期望更多的多样性。相反,查询用户可期望看到反应用户的搜索意图的搜索结果。相关性的确定以及因此搜索结果的评分可由为查询确定的搜索意图修改或定制。特定的评分算法可用于特定的搜索意图,并且可为特定的搜索意图或多或少加权评分算法的特定因素。作为一个实例,并非通过限制的方式,继续先前的实例,响应于结构化查询“在帕洛阿尔托担任软件工程师的人”,社交网络系统160可确定查询的一个搜索意图是用于联网。在为与这个查询匹配的已识别用户节点202评分时,社交网络系统160可通常根据社交图谱亲和力评分,并且给比更远连接更好的查询用户的第一程度连接评分。然而,如果用户为了联网目的查询,那么用户不关心在查询用户与已识别用户节点202之间的连接程度。对联网目的更有用的可能是识别(例如)具有担任软件工程师的更多经验的用户或者与也是软件工程师(尤其是也住在帕洛阿尔托的其他软件工程师)的其他用户连接的用户。因此,在根据联网搜索意图给搜索结果评分时,社交网络系统160可使用评分算法,该算法不太重视在社交图谱200内的用户的距离,并且更重视与用户的工作经历和相关的工作相关联系相关的社交图谱信息。虽然本公开描述了通过特定的方式给搜索结果评分,但是本公开预计通过任何合适的方式给搜索结果评分。
在特定的实施方式中,根据搜示意图给搜索结果评分,可包括根据满足搜索查询的查询约束的搜索结果的对象的计数或比率,给搜索结果评分。根据搜索查询的已识别搜索意图,在给搜索结果评分时,计数、比率或其任何组合可用作一个因素。对于特定的查询约束,所述约束可由特定的对象满足多次。虽然本公开描述了通过特定的方式根据搜索意图给搜索结果评分,但是本公开预计通过任何合适的方式根据搜索意图给搜索结果评分。
在特定的实施方式中,社交网络系统160可根据满足搜索查询的查询约束的搜索结果的对象的计数,给搜索结果评分。在某些情况下,与查询约束匹配的特定对象实际上可具有满足该约束的多个属性。作为一个实例,并非通过限制的方式,位置可具有用户的多次登记,照片可具有在这些位置内标记的多个用户,组可具有作为成员的多个用户,诸如此类。在这些类型的情况下,在将搜索结果排名时,可考虑满足特定的查询约束的次数的计数。作为一个实例,并非通过限制的方式,响应于结构化查询“我朋友的照片”,社交网络系统160可生成查询命令(photos_of(users:<friends>)),并且可确定这个查询的搜索意图在于查看用户的朋友的组照片。然而,例如,这个查询命令可由在照片内标记查询用户的仅仅一个朋友的照片满足,或者可由在照片内标记多个朋友的照片满足多次。因此,在给对应于照片的已识别概念节点204评分(用户的朋友在照片内标记)时,社交网络系统160可根据在照片内标记的用户的朋友的数量,更好地给照片评分。因此,在照片内仅仅标记一个朋友的照片(例如,用户的配置文件图片)可以比在照片内标记用户的几个朋友的照片具有更差的得分。作为另一个实例,并非通过限制的方式,响应于结构化查询“单身女士的照片”,社交网络系统160可确定这个查询的搜索意图在于查看单身女士的单独照片(即,在照片中的唯一用户是这个单身女士的照片)。然而,这个查询命令可(例如)由单身女士的组照片或者在照片内标记作为单身女士的仅仅一个用户的照片满足。因此,在给对应于照片的已识别概念节点204评分(单身女士在照片内标记)时,社交网络系统160可比一组单身女士的照片(或者单身女士和并非单身女士的一个或多个其他用户的照片)更好地给单独的单身女士的照片评分。而且,单身女士的配置文件图片可比单身女士的非配置文件图片更好地评分。虽然本公开描述了通过特定的方式根据搜索结果计数给搜索结果评分,但是本公开预计通过任何合适的方式根据搜索结果计数给搜索结果评分。
在特定的实施方式中,社交网络系统160可根据满足搜索查询的查询约束的搜索结果的对象的比率,给搜索结果评分。如上所述,与查询约束匹配的特定对象可具有满足该约束的多个属性。但是相同的对象也可具有不满足该约束的多个属性。在这些类型的情况下,在将搜索结果排名时,与不满足特定的查询约束的次数(即,比率)相比,可考虑满足特定的查询约束的次数的计数。作为一个实例,并非通过限制的方式,响应于结构化查询“我家人的照片”,社交网络系统160可生成查询命令(photos_of(users:<family>)),并且可确定这个查询的搜索意图在于查看显示用户的家人(没有其他人)的组照片。换言之,理想的匹配是满足查询约束的在照片内标记的人的比率尽可能接近1(即,在照片内仅仅标记用户的家庭成员,并且在照片内未标记其他用户)。然而,例如,这个查询命令可由在照片内具有用户的仅仅一个家庭成员以及几个其他用户的照片或者在照片内标记用户的所有家庭成员以及几个其他用户的照片满足。因此,在给对应于照片的已识别概念节点204评分(用户的家庭成员在照片内标记)时,社交网络系统160可根据属于用户家人的在照片内标记的用户的比率(即,对应于照片的概念节点204由标记类型的矢线206连接至对应于用户的一个或多个用户节点202,所述用户由家庭类型矢线206连接至查询用户),更好地给照片评分。因此,与仅仅显示用户的3个家庭成员(因此,更低计数)但是在照片内未标记其他用户(因此,更高的比率)的照片相比,显示了用户的4个家庭成员以及3个其他非家庭成员的照片可具有更差的得分。虽然本公开描述了通过特定的方式根据搜索结果定量给搜索结果评分,但是本公开预计通过任何合适的方式根据搜索结果定量给搜索结果评分。
在特定的实施方式中,社交网络系统可根据满足搜索查询的多个查询约束的搜索结果的对象的计数,给搜索结果评分。在搜索查询具有多个查询约束的情况下,包括满足多个查询约束的单个对象的搜索结果不可取。在某些情况下,与具有多个查询约束的查询命令匹配的特定对象可根据一个或多个属性,满足多个查询约束。在这些类型的情况下,在将搜索结果排名时,可考虑用于满足这些查询约束的对象/属性的数量的计数。对于某些查询,可取地使用不同的节点或矢线来满足具有多个约束的查询命令的每个查询约束。作为一个实例,并非通过限制的方式,响应于结构化查询“Mark和男士喜欢的餐厅”,社交网络系统160可解析结构化查询,作为查询命令,例如,(intersect(locations:<restaurants>)、(intersect(locations(liked_by:<Mark>)、locations(liked_by(user_gender:<male>))),并且可确定这个查询的搜索意图在于识别用户“Mark”以及也是男士的至少另一个人喜欢的餐厅。在这种情况下,假设用户“Mark”也是男士。社交网络系统160可识别与第一查询约束匹配的第一组对象,所述第一组对象是餐厅的位置(即,概念节点204,所述概念节点对应于由location_type矢线206连接至对应于“餐厅”的概念节点204的位置)。接下来。社交网络系统160可使这些结果与识别为与第二查询约束(本身具有多个约束)匹配的第二组对象相交,所述第二组对象是用户“Mark”和其他男士喜欢的位置。然而,由于用户“Mark”也是男士,所以“Mark”喜欢的位置也可在这个第二组对象内识别。在这种情况下,由于仅仅用户“Mark”喜欢的餐馆可在第一组和第二组对象内,所以社交网络系统160可以生成对应于喜欢该位置的唯一用户是用户“Mark”(或“Mark”以及仅仅女性用户)的位置的搜索结果。但是查询用户不可能希望查看仅仅对应于“Mark”喜欢的餐厅的搜索结果(在这种情况下,查询用户可以仅仅搜索“Mark喜欢的餐厅“)。用户更可能试图找出至少两个用户(“Mark”和至少另一个男士用户)喜欢的餐厅。因此,社交网络系统160可计算一个还是两个喜欢型矢线206用于满足查询命令(即,是否使用仅仅连接至“Mark”的喜欢型矢线206,或者如果使用至少两个不同的喜欢型矢线206:一个来自“Mark”,一个来自另一个用户)。因此,仅仅单个喜欢型矢线206用于满足这两个查询约束的餐厅可具有比两个不同的喜欢型矢线206用于满足所述约束的餐厅更差的得分。虽然本公开描述了通过特定的方式根据查询约束意图给搜索结果评分,但是本公开预计通过任何合适的方式根据查询约束给搜索结果评分。
在特定的实施方式中,社交网络系统160可根据与查询用户(或查询用户的用户节点202)相关联的社交图谱亲和力,给搜索结果评分。社交网络系统160可确定彼此的各种社交图谱实体的社交图谱亲和力(在本文中可称为“亲和力”)。亲和力可表示在与在线社交网络相关联的特定对象(例如,用户、概念、内容、活动、广告、与在线社交网络相关联的其他对象或其任何合适的组合)之间的兴趣关系或水平的强度。在特定的实施方式中,社交网络系统160可使用亲和力系数(在本文中可以称为“系数”)测量或量化社交图谱亲和力。系数可表示或量化在与在线社交网络相关联的特定对象之间的关系的强度。系数还可表示概率或功能,其根据用户对活动的兴趣测量用户执行特定的活动的预测概率。在特定的实施方式中,在给搜索结果评分时,社交图谱亲和力可用作一个因素。作为一个实例,并非通过限制的方式,响应于结构化查询“我朋友的照片”,社交网络系统160可生成查询命令(photos_of(users:<friends>)),并且可确定这个查询的搜索意图在于查看显示用户的朋友的组照片。在给对应于照片的已识别概念节点204评分(用户的朋友在照片内标记)时,社交网络系统160可根据在照片内标记的用户相对于查询用户的查询用户相应社交图谱亲和力(例如,由亲和力系数测量),更好地给照片评分。而且,由于在照片内标记更多的朋友,可提高查询用户相对于该特定照片的亲和力,所以显示查询用户的更多朋友的照片可比显示用户的更少朋友的照片更高地标记。虽然本公开描述了通过特定的方式根据亲和力给搜索结果评分,但是本公开预计通过任何合适的方式根据亲和力给搜索结果评分。而且,与社交图谱亲和力和亲和力系数相结合,特定实施方式可使用在于2006年8月11日提交的美国专利申请号11/503093、于2010年12月22日提交的美国专利申请号12/977027、于2010年12月23日提交的美国专利申请号12/978265以及于2012年10月1日提交的美国专利申请号13/632869中公开的一个或多个系统、元件、部件、功能、方法、操作或步骤,每个申请通过引证结合于此。
在特定的实施方式中,根据搜索意图给搜索结果评分,包括根据社交图谱信息给搜索结果评分,例如,在社交图谱200内的分离度、节点类型和矢线类型信息、社交图谱亲和力、其他合适的社交图谱信息、或其任何组合。作为一个实例,并非通过限制的方式,响应于结构化查询“在帕洛阿尔托的单身女士”,社交网络系统160可确定查询的一个搜索意图是约会。在为与这个查询匹配的已识别用户节点202评分时,社交网络系统160可根据社交图谱亲和力评分,并且给比更远连接更好的查询用户的第一程度连接评分。然而,如果用户为了约会目的查询,那么用户不可能希望查看第一程度连接(即,用户的朋友)。对约会目的更有用的可能是识别作为单身女士的第二程度的连接(即,朋友的朋友)。因此,在根据约会搜索意图给搜索结果评分时,社交网络系统160可使用评分算法,该算法比第一程度连接更好地给第二程度连接评分。作为另一个实例,并非通过限制的方式,继续先前的实例,在给与结构化查询“在帕洛阿尔托的单身女士”匹配的已识别用户节点202评分时,社交网络系统160可根据用户的配置文件图片具有的“喜欢”的数量,更好地给用户评分,其中,具有受欢迎的配置文件图片的用户(即,对应于配置文件图片的概念节点204通过喜欢型矢线206连接至多个用户节点202)可视为更吸引人的约会候选人。虽然本公开描述了通过特定的方式根据社交图谱信息给搜索结果评分,但是本公开预计通过任何合适的方式根据社交图谱信息给搜索结果评分。
在特定的实施方式中,根据搜索意图给搜索结果评分,可包括给搜索结果评分,以排除相反的搜索结果。由社交网络系统160识别的一个或多个搜索意图可包括排除相反的搜索结果的意图。在这种情况下,给搜索结果评分,可包括降低对应于在结构化查询中引用的至少一个所选节点的每个搜索结果的得分。在某些情况下,虽然引用的节点实际上可满足查询的约束,但是查询用户不可能希望查看查询用户刚刚传输给社交网络系统160的对应于在结构化查询中引用的节点的搜索结果。作为一个实例,并非通过限制的方式,响应于结构化查询“在我的照片内的人”,社交网络系统160可解析结构化查询,作为查询命令,例如,(users_tagged_in(photo_of(<me>))。然后,社交网络系统160可生成列出在照片内标记的在线社交网络的用户的搜索结果,在该照片内,也标记查询用户。在这种情况下,查询用户显然是在查询用户的照片内标记的人,但是查询用户不可能希望查看对应于其自身的搜索结果(实际上,由于在其自身的每张照片内,都标记了查询用户,所以该查询用户可能是该查询的最佳匹配)。因此,社交网络系统160可确定查询的一个搜索意图是排除作为在结构化查询内引用的搜索结果相应节点的相反搜索结果。继续先前的实例,相反结果是对应于查询用户的搜索结果。因此,即使查询用户(或者对应于查询用户的用户节点202)由查询命令识别,在给搜索结果评分时,对应于查询用户的搜索结果也可以降低,以便从实际上传输回查询用户的搜索结果中排除,或者所述搜索结果也可以至少评分,以便比其他结果排名更低。虽然本公开描述了通过特定的方式给特定的搜索结果评分,但是本公开预计通过任何合适的方式给任何合适的搜索结果评分。
在特定的实施方式中,根据搜索意图给搜索结果评分,可包括给搜索结果评分,以排除内部搜索结果。由社交网络系统160识别的一个或多个搜索意图可包括排除内部搜索结果的意图。在这种情况下,给搜索结果评分,可包括降低对应于识别为与内部约束匹配的节点的第一组的至少一个节点的每个搜索结果的得分。在某些情况下,查询用户不可能希望查看与内部和其他查询约束匹配的搜索结果。作为一个实例,并非通过限制的方式,响应于结构化查询“Facebook员工的朋友”,社交网络系统160可解析结构化查询,作为查询命令,例如,(friends_of(users_employed_by(<Facebook>)))。社交网络系统160可识别与内部查询约束匹配的第一组对象,所述第一组对象是作为Facebook员工的用户(即,由员工型矢线206连接至公司“Facebook”的概念节点204的用户节点202)。接下来,社交网络系统160可识别与外部查询约束匹配的第二组对象,所述第二组对象是作为第一组用户的朋友的用户(即,由朋友型矢线206连接至在第一组内的用户节点202的用户节点202)。在这种情况下,作为Facebook员工的朋友的很多用户(外部约束的匹配)也可能是Facebook员工(内部约束的匹配),但是查询用户不可能希望查看对应于Facebook员工的搜索结果(在这种情况下,查询用户可以仅仅搜索“作为Facebook员工的人”)。用户更可能试图识别是Facebook员工的朋友的非Facebook员工。因此,社交网络系统160可确定查询的一个搜索意图是排除作为与内部查询约束匹配的搜索结果的内部搜索结果。继续先前的实例,内部搜索结果是对应于Facebook员工的搜索结果。因此,即使很多Facebook员工是其他Facebook员工的朋友,对应于Facebook员工的搜索结果的得分也可以降低,以便从实际上传输回查询用户的搜索结果中排除,或者所述搜索结果也可以至少评分,以便比对应于作为Facebook员工的朋友的非Facebook员工的搜索结果排名更低。虽然本公开描述了通过特定的方式给特定的搜索结果评分,但是本公开预计通过任何合适的方式给任何合适的搜索结果评分。
在特定的实施方式中,根据搜索意图给搜索结果评分,可包括给搜索结果评分,以排除复制搜索结果。由社交网络系统160识别的一个或多个搜索意图可包括排除复制搜索结果的意图。在这种情况下,给搜索结果评分,可包括降低对应于与第一查询约束和第二查询约束匹配的节点的每个搜索结果的得分。在某些情况下,查询用户不可能希望查看对象的相同属性用于满足在查询命令中的两个不同的约束的搜索结果。作为一个实例,并非通过限制的方式,响应于结构化查询“Mark与Facebook员工的照片”,社交网络系统160可解析结构化查询,作为查询命令,例如,(intersect(photos_of:<Mark>),photos_of(users_employed_by:<Facebook>))。在这种情况下,假设用户“Mark”也是Facebook员工。社交网络系统160可识别与第一查询约束匹配的第一组对象,所述第一组对象是用户“Mark”的照片(即,对应于由标记型矢线206连接至对应于用户“Mark”的用户节点202的照片的概念节点204)。接下来,社交网络系统160可使这些结果与识别为与第二查询约束(即,嵌套式约束)匹配的第二组对象相交,所述第二组对象是作为Facebook员工的用户的照片。然而,由于用户“Mark”也是Facebook员工,所以也可在该第二组内识别“Mark”的照片。在这种情况下,由于仅仅标记用户“Mark”的照片在第一组和第二组对象内,所以社交网络系统160可以生成对应于在照片内标记的唯一用户是用户“Mark”的照片的搜索结果。但是查询用户不可能希望查看对应于仅仅“Mark”的照片的搜索结果(在这种情况下,查询用户可以仅仅搜索“Mark的照片”)。用户更可能试图识别包括至少两个用户(“Mark”和作为Facebook员工的至少另一个用户)的照片。因此,社交网络系统160可确定查询的一个搜索意图是排除复制搜索结果,所述复制搜索结果是搜索结果,其中,搜索结果的相同属性用于满足两个不同的查询约束。继续先前的实例,第一约束生成对应于照片Mark的搜索结果(在这个实例中,Mark碰巧是Facebook员工),并且第二约束生成对应于照片Facebook员工的搜索结果。换言之,由于用户节点202由雇佣型矢线206连接至公司“Facebook”的概念节点,所以通过仅仅由标记型矢线206连接至对应于用户“Mark”的单个用户节点202,对应于特定照片的概念节点204可满足这两个约束。因此,即使用户“Mark”是Facebook员工,在给搜索结果评分时,对应于仅仅“Mark”(或者甚至“Mark”和其他非Facebook员工)的照片的搜索结果也可以降低,以便从实际上传输回查询用户的搜索结果中排除,或者所述搜索结果也可以至少评分,以便比对应于用户“Mark”和也是Facebook员工的至少另一个用户的照片的搜索结果排名更低。虽然本公开描述了通过特定的方式给特定的搜索结果评分,但是本公开预计通过任何合适的方式给任何合适的搜索结果评分。
在特定的实施方式中,社交网络系统160可将一个或多个搜索结果发送给查询用户。可将搜索结果发送给用户,例如,在搜索结果网页上通过链接列表的形式,每个链接与包含一些已识别资源或内容的不同网页相关联。在特定的实施方式中,在搜索结果内的每个链接可具有统一资源定位符(URL)的形式,所述URL规定相应网页所在的位置以及用于检索的机构。然后,社交网络系统160可将搜索结果网页发送给在用户的客户端系统130上的网络浏览器132。然后,用户可点击URL链接或者从搜索结果网页中选择内容,以酌情从社交网络系统160中或者从外部系统(例如,第三方170)中访问内容。在特定的实施方式中,每个搜索结果可包括配置文件页面的链接以及配置文件页面(或者对应于该页面的节点)的描述或概述。搜索结果可作为搜索结果页面呈现和发送给查询用户。在生成搜索结果时,社交网络系统160可生成每个搜索结果的一个或多个片段,其中,片段是关于搜索结果的目标的上下文信息(即关于社交图谱实体、配置文件页面、或者对应于该特定搜索结果的其他内容的上下文信息)。在特定的实施方式中,社交网络系统160可仅仅发送具有超过特定的阈值得分/排名的得分/排名的搜索结果。作为一个实例,并非通过限制的方式,社交网络系统160可响应于特定的搜索查询,仅仅将顶部10个结果发送回查询用户。虽然本公开描述了通过特定的方式发送特定的搜索结果,但是本公开预计通过任何合适的方式发送任何合适的搜索结果。
在特定的实施方式中,社交网络系统160可根据一个或多个搜索意图,生成查询命令。可根据这些搜索意图,修改由社交网络系统160生成的查询命令的结构,以便响应于一个结构化查询生成查询命令的方式可与响应于另一个结构化查询生成查询命令的方式不同。同样,查询命令的一个或多个查询约束可基于这些查询意图。因此,作为根据搜索意图给搜索结果评分/排名的替换物或者除此以外,在执行查询命令时,方式搜索结果也由社交网络系统160识别。作为一个实例,并非通过限制的方式,在响应于由社交网络系统160接收的结构化查询生成查询命令(或查询命令的特定查询约束)时,可使用识别特定节点或节点类型、使用查询提示识别节点、使用逆算子识别节点、排除相反的搜索结果、排除内部搜索结果、排除复制结果的意图、其他合适的意图、或其任何组合。虽然本公开描述了通过特定的方式根据特定的搜索意图生成查询命令,但是本公开预计通过任何合适的方式根据任何合适的搜索意图生成查询命令。
图8示出了用于根据搜索意图生成搜索结果的一个实例方法800。该方法可在步骤810中开始,其中,社交网络系统160可访问社交图谱200,包括多个节点(例如,用户节点202或概念节点204)以及连接所述节点的多个矢线206。在两个节点之间的每个矢线可表示在所述两个节点间的单个分离度。所述节点可包括第一节点(例如,第一用户节点202),其对应于与在线社交网络相关联的第一用户。所述节点还可包括多个第二节点,所述多个第二节点中的每个对应于与所述在线社交网络相关联的概念或第二用户。在步骤820中,社交网络系统160可从所述第一用户接收结构化查询,包括对所述多个节点中的一个或多个选择的节点和所述多个矢线中的一个或多个选择的矢线的引用。在步骤830中,社交网络系统160可生成对应于结构化查询的一个或多个搜索结果。每个搜索结果可对应于多个节点中的一个节点。在步骤840中,社交网络系统160可根据在结构化查询中引用的一个或多个所选节点或一个或多个选择的矢线,确定一个或多个搜索意图。在步骤850中,社交网络系统160可根据一个或多个搜索意图,给搜索结果评分。在步骤860中,社交网络系统160可将一个或多个搜索结果发送给第一用户。在适当的情况下,特定的实施方式可重复图8的方法的一个或多个步骤。虽然本公开描述和显示了按照特定的顺序发生的图8的方法的特定步骤,但是本公开预计按照任何合适的顺序发生的图8的方法的任何合适的步骤。而且,虽然本公开描述和显示了执行图8的方法的特定步骤的特定元件、装置或系统,但是本公开预计执行图8的方法的任何合适的步骤的任何合适的元件、装置或系统的任何合适的组合。
在于2012年12月31日提交的美国专利申请号13/731939中,可以找出关于生成搜索结果的更多信息,该申请通过引证结合于此。
广告
在特定的实施方式中,广告可能是文本(这可能是HTML链接的)、一个或多个图像(这可能是HTML链接的)、一个或多个视频、音频、一个或多个ADOBE FLASH文件、这些的适当组合、或在一个或多个网页上、在一个或多个电子邮件中或者与用户请求的搜索结果相结合地呈现的具有任何合适的数字格式的任何其他合适的广告。此外或者作为替换,广告可能是一个或多个赞助的存储器(例如,在社交网络系统160上的新闻递送或自动收报机项目)。赞助的存储器可能是广告商推动的用户的社会活动(例如,“喜欢”页面、“喜欢”或者评论在页面上的帖子、RSVP与页面相关的活动、投票表决在页面上张贴的问题、登记一个地点、使用应用程序或者玩游戏、或者“喜欢”或共享网站),例如,通过在用户的配置文件页面或其他页面的预定区域内呈现、通过与广告商相关联的额外信息呈现、在其他用户的新闻递送或自动收报机内提升或者突出、或者推动社会活动。广告商可支付推动社会活动。作为一个实例,并非通过限制的方式,广告可包含在搜索结果页面的搜索结果之中,其中,在非赞助内容之上推动赞助内容。作为另一个实例,并非通过限制的方式,广告可包含在建议的搜索查询之中,其中,可在非赞助查询之上推动引用广告商或其内容/产品的建议的查询。在特定的实施方式中,社交网络系统160可根据与从用户接收的搜索查询相关联的搜索意图,选择向用户显示的广告。可根据用户的搜索意图,向用户显示不同的广告(或广告类型)。
在特定的实施方式中,可请求在社交网络系统网页、第三方网页或其他页面内显示广告。可在页面的专用部分内,例如,在页面顶部的醒目区域内、在页面侧边的专栏内、在页面的GUI内、在弹出窗口内、在下拉菜单内、在页面的输入字段内、在页面内容的顶部上、或者在页面的其他地方,显示广告。此外或者作为替换,可在应用程序内显示广告。可在专用页面内显示广告,在用户可访问页面或者使用应用程序之前,要求用户与广告相互作用或者观看广告。例如,用户可通过网络浏览器查看广告。
用户可通过任何合适的方式与广告相互作用。用户可点击或者选择广告。通过选择广告,可将用户引向(或者由用户使用浏览器或其他应用程序)与广告相关联的页面。在与广告相关联的页面上,用户可采取额外措施,例如,购买与广告相关联的产品或服务、接收与广告相关联的信息、或者订阅与广告相关联的新闻通讯。通过选择广告的元件(与“播放按钮”一样),可显示具有音频或视频的广告。可替换地,通过选择广告,社交网络系统160可执行或修改用户的特定活动。
广告可包括可与用户相互作用的社交网络系统功能。例如,通过选择与支持相关联的图标或链接,广告可使用户能够“喜欢”或者支持广告。作为另一个实例,广告可使用户能够搜索(例如,通过执行查询)与广告商相关的内容。同样,用户可与另一个用户(例如,通过社交网络系统160)或RSVP(例如,通过社交网络系统160)共享广告,用于与广告相关联的活动。此外或者作为替换,广告可包括引向用户的社交网络系统上下文。例如,广告可显示关于采取与广告的主题相关联的措施的在社交网络系统160内的用户的朋友的信息。
系统和方法
图9示出了一个实例计算机系统900。在特定的实施方式中,一个或多个计算机系统900执行在本文中描述或显示的一个或多个方法的一个或多个步骤。在特定的实施方式中,一个或多个计算机系统900提供在本文中描述或显示的功能。在特定的实施方式中,在一个或多
个计算机系统900上运行的软件执行在本文中描述或显示的一个或多个方法的一个或多个步骤,或者提供在本文中描述或显示的功能。特定的实施方式包括一个或多个计算机系统900的一个或多个部分。在本文中,在适当的情况下,计算机系统的引用可以包括计算装置,反之亦然。而且,在适当的情况下,计算机系统的引用可以包括一个或多个计算机系统。
本公开预计具有任何适当数量的计算机系统900。本公开预计具有采用任何合适的物理形式的计算机系统900。作为实例,并非通过限制的方式,计算机系统900可为嵌入式计算机系统、片上系统(SOC)、单板计算机系统(SBC)(例如,计算机模块(COM)或系统模块(SOM))、台式电脑系统、膝上型或笔记本式电脑系统、交互式自助服务机、主机、计算机系统的网格、移动电话、个人数字助理(PDA)、服务器、平板电脑系统、或其中的两个或多个的组合。在适当的情况下,计算机系统900可包括一个或多个计算机系统900;可为单一式或分布式;跨过多个位置;跨过多台机器;或者位于云中,其在一个或多个网络中可包括一个或多个云元件。在适当的情况下,一个或多个计算机系统900可执行在本文中描述或显示的一个或多个方法的一个或多个步骤,无需大量空间或时间限制。作为实例,并非通过限制的方式,一个或多个计算机系统900可实时或以成批的方式执行在本文中描述或显示的一个或多个方法的一个或多个步骤。在适当的情况下,一个或多个计算机系统900可在不同的时间或者在不同的位置执行在本文中描述或显示的一个或多个方法的一个或多个步骤。
在特定的实施方式中,计算机系统900包括处理器902、存储器904、存储介质906、输入/输出(I/O)接口908、通信接口910以及总线912。虽然本公开描述和显示了在特定的设置中具有特定数量的特定元件的特定计算机系统,但是本公开预计在任何合适的设置中具有任何合适的数量的任何合适的元件的任何合适的计算机系统。
在特定的实施方式中,处理器902包括用于执行指令的硬件,例如,构成计算机程序的那些指令。作为实例,并非通过限制的方式,为了执行指令,处理器902可从内部寄存器、内部高速缓存、存储器904或存储介质906中检索(或提取)指令;将这些指令解码并且执行这些指令;然后将一个或多个结果写入内部寄存器、内部高速缓存、存储器904或存储介质906中。在特定的实施方式中,处理器902可以包括用于数据、指令或地址的一个或多个内部高速缓存。本公开预计处理器902在适当的情况下包括任何合适数量的任何合适的内部高速缓存。作为实例,并非通过限制的方式,处理器902可以包括一个或多个指令高速缓存、一个或多个数据高速缓存、以及一个或多个转译后备缓冲器(TLB)。在指令高速缓存内的指令可以是在存储器904或存储介质906内的指令的副本,并且指令高速缓存可以加速由处理器902检索那些指令。在数据高速缓存内的数据可以是在存储器904或存储介质906内的数据的副本,用于要起作用的的在处理器902上执行的指令;在处理器902上执行的先前指令的结果由在处理器902上执行的后续指令访问或者写入存储器904或存储介质906内;或者其他合适的数据。数据高速缓存可以加速处理器902的读取或写入操作。TLB可以加速处理器902的虚拟地址转译。在特定的实施方式中,处理器902可以包括用于数据、指令或地址的一个或多个内部寄存器。在适当的情况下,本公开预计处理器902包括任何合适数量的任何合适的内部寄存器。在适当的情况下,处理器902可以包括一个或多个算术逻辑单元(ALU);是多核处理器;或者包括一个或多个处理器902。虽然本公开描述和显示了特定的处理器,但是本公开预计任何合适的处理器。
在特定的实施方式中,存储器904包括主存储器,用于储存要执行的处理器902的指令或者要起作用的处理器902的数据。作为实例,并非通过限制的方式,计算机系统900可将指令从存储介质906或另一个源(例如,另一个计算机系统900)中装载到存储器904中。然后,处理器902可将指令从存储器904中装载到内部寄存器或内部高速缓存中。为了执行这些指令,处理器902可从内部寄存器或内部高速缓存中检索指令,并且将这些指令解码。在执行指令期间或之后,处理器902可将一个或多个结果(这些结果可为中间或最终结果)写入内部寄存器或内部高速缓存中。然后,处理器902可将这些结果中的一个或多个写入存储器904中。在特定的实施方式中,存储器904仅仅执行在一个或多个内部寄存器或内部高速缓存内或者在存储器904内(与存储介质906相反或者在别处)的指令,并且仅仅操作在一个或多个内部寄存器或内部高速缓存内或者在存储器904内(与存储介质906相反或者在别处)的数据。一个或多个内存总线(这些总线均可包括地址总线和数据总线)可使处理器902与存储器904耦接。如下所述,总线912可包括一个或多个内存总线。在特定的实施方式中,一个或多个内存管理单元(MMU)位于处理器902与存储器904之间,并且有助于访问由处理器902请求的存储器904。在特定的实施方式中,存储器904包括随机存取存储器(RAM)。在适当的情况下,该RAM可为易失性存储器。在适当的情况下,该RAM可为动态RAM(DRAM)或静态RAM(SRAM)。而且,在适当的情况下,该RAM可为单端口或多端口RAM。本公开预计任何合适的RAM。在适当的情况下,存储器904可以包括一个或多个存储器904。虽然本公开描述和显示了特定的存储器,但是本公开预计任何合适的存储器。
在特定的实施方式中,存储介质906包括用于数据或指令的大容量存储器。作为实例,并非通过限制的方式,存储介质906可包括HDD、软盘驱动器、闪速存储器、光盘、磁光盘、磁带或通用串行总线(USB)驱动器或其中的两个或多个的组合。在适当的情况下,存储介质906可包括可移动或固定的(或固定的)介质。在适当的情况下,存储介质906可位于计算机系统900的内部或外部。在特定的实施方式中,存储介质906是非易失性固态存储器。在特定的实施方式中,存储介质906包括只读存储器(ROM)。在适当的情况下,该ROM可为掩膜编程的ROM、可编程的ROM(PROM)、可擦PROM(EPROM)、电可擦PROM(EEPROM)、电可改写ROM(EAROM)、或闪速存储器或其中的两个或多个的组合。本公开预计采用任何合适的物理形式的大容量存储介质906。在适当的情况下,存储介质906可以包括促进在处理器902与存储介质906之间通信的一个或多个储存控制单元。在适当的情况下,存储介质906可以包括一个或多个存储介质906。虽然本公开描述和显示了特定的储存器,但是本公开预计任何合适的储存器。
在特定的实施方式中,I/O接口908包括硬件和/或软件,其提供一个或多个接口,用于在计算机系统900与一个或多个I/O装置之间进行通信。在适当的情况下,计算机系统900可包括这些I/O装置中的一个或多个。这些I/O装置中的一个或多个能够在个人与计算机系统900之间进行通信。作为实例,并非通过限制的方式,I/O装置可包括键盘、按键、麦克风、显示器、鼠标、打印机、扫描仪、扬声器、静物照相机、唱针、平板电脑、触摸式屏幕、轨迹球、摄影机、另一个合适的I/O装置或其中的两个或多个的组合。I/O装置可包括一个或多个传感器。本公开预计具有任何合适的I/O装置以及用于这些I/O装置的任何合适的I/O接口908。在适当的情况下,I/O接口908可包括一个或多个装置或软件驱动器,其能够允许处理器902驱动这些I/O装置中的一个或多个。在适当的情况下,I/O接口908可包括一个或多个I/O接口908。虽然本公开描述和显示了特定的I/O接口,但是本公开预计具有任何合适的I/O接口。
在特定的实施方式中,通信接口910包括硬件和/或软件,其提供一个或多个接口,用于在计算机系统900与一个或多个其他计算机系统900或一个或多个网络之间进行通信(例如,基于分组的通信)。作为实例,并非通过限制的方式,通信接口910可包括网络接口控制器(NIC)、或用于与以太网或其他有线网络或无线NIC(WNIC)进行通信的网络适配器、或用于与无线网络(例如,WI-FI网络)进行通信的网络适配器。本公开预计具有任何合适的网络以及用于该网络的任何合适的通信接口910。作为实例,并非通过限制的方式,计算机系统900可与自组织网络、个人区域网络(PAN)、局域网(LAN)、广域网(WAN)、城域网(MAN)、或互联网的一个或多个部分或其中的两个或多个的组合进行通信。这些网络中的一个或多个的一个或多个部分可为有线或无线部分。作为一个实例,计算机系统900可与无线PAN(WPAN)(例如,BLUETOOTH WPAN)、WI-FI网络、WI-MAX网络、蜂窝电话网络(例如,全球移动通讯系统(GSM)网络)、或其他合适的无线网络或其中的两个或多个的组合进行通信。在适当的情况下,计算机系统900可以包括用于这些网络中的任一个的任何合适的通信接口910。在适当的情况下,通信接口910可以包括一个或多个通信接口910。虽然本公开描述和显示了特定的通信接口,但是本公开预计具有任何合适的通信接口。
在特定的实施方式中,总线912包括硬件和/或软件,其使计算机系统900的元件彼此耦接。作为实例,并非通过限制的方式,总线912可包括加速图形端口(AGP)或其他图形总线、增强型工业标准架构(EISA)总线、前端总线(FSB)、超传输(HT)互连、工业标准结构(ISA)总线、无限带宽互连、低脚位(LPC)总线、内存总线、微通道结构(MCA)总线、外围组件互连(PCI)总线、PCI高速(PCIe)总线、串行高级技术附件(SATA)总线、视频电子标准协会本地(VLB)总线、或另一个合适的总线或其中的两个或多个的组合。在适当的情况下,总线912可包括一个或多个总线912。虽然本公开描述和显示了特定的总线,但是本公开预计具有任何合适的总线或互连。
在本文中,在适当的情况下,计算机可读非暂时性存储介质的引用可包括基于半导体的或者其他集成电路(IC)(例如,现场可编程门阵列(FPGA)或专用IC(ASIC))、硬盘驱动器HDD、混合硬盘驱动器(HHD)、光盘、光盘驱动器(ODD)、磁光盘、磁光驱动器、软盘、软盘驱动器(FDD)、磁带、固态驱动器(SSD)、RAM驱动器、安全数字卡、安全数字卡或驱动器、另一个合适的计算机可读非暂时性存储介质、或者其中的一个合适的组合。在适当的情况下,计算机可读非暂时性存储介质可为易失性、非易失性或者易失性和非易失性的组合。
杂项
在本文中,除非另有明确规定或者在上下文中另有明确规定,否则“或”具有包括而非排除的意思。因此,在本文中,除非另有明确规定或者在上下文中另有明确规定,否则“A或B”表示“A和/或B”。而且,除非另有明确规定或者在上下文中另有明确规定,否则“和”具有共同和单独的意思。因此,在本文中,除非另有明确规定或者在上下文中另有明确规定,否则“A和B”表示“共同或单独的A和B”。
本公开的范围包括本领域的技术人员会理解的在本文中描述或显示的实例实施方式的所有变化、替换、变动、变更以及修改。本公开的范围不限于在本文中描述或显示的实例实施方式。而且,虽然本公开描述和显示了在本文中相应的实施方式包括特定的元件、部件、功能、操作或步骤,但是这些实施方式中的任一个可以包括本领域的技术人员会理解的在本文中的任何地方描述或显示的任何元件、部件、功能、操作或步骤的任何组合或排列。而且,只要适合于、被设置为、能够、配置为、启用、可用于或者有效地执行一个特定的功能的设备、系统、或设备或系统的元件这样适合、设置、能干、配置、启用、可用或者有效,就无论是否激活、打开或开启该设备、系统、元件或该特定的功能,在所附权利要求中引用该设备、或系统、或元件都包括该设备、系统、元件。

Claims (20)

1.一种用于查询的方法,包括:
从在线社交网络的第一用户的客户端设备,接收包括对与所述在线社交网络相关联的一个或多个选择的对象的引用的结构化查询,其中,所述在线社交网络与社交图谱相关联,所述社交图谱包括多个节点和连接所述节点的多条矢线,并且其中,选择的对象对应于所述社交图谱的节点或矢线;
解析所述结构化查询,以识别第一查询约束和一个或多个第二查询约束;
如果所述第一查询约束已被标记为识别的对象的数量大于对象的阈值数量,则识别与所述第一查询约束相关联的反向约束;并且
基于所述结构化查询生成查询命令,其中,所述查询命令包括所述反向约束和所述一个或多个第二查询约束。
2.根据权利要求1所述的方法,还包括:
在接收所述结构化查询前访问包括多个节点和连接所述节点的多条矢线的社交图谱,两个所述节点之间的所述矢线中的每一条表示在两个所述节点之间的单一的分离度,所述节点包括:
第一节点,对应于所述第一用户;和
多个第二节点,分别对应于与所述在线社交网络相关联的多个对象。
3.根据权利要求2的所述方法,其中,所述结构化查询包括对一个或多个从所述多个节点选择的节点和一条或多条从所述多条矢线选择的矢线的引用。
4.根据权利要求3所述的方法,其中:
所述第一查询约束用于第一对象类型,所述第一对象类型对应于第一节点类型的一个或多个节点,所述第一节点类型的一个或多个节点各自通过在所述结构化查询中引用的所选择的矢线中的一条连接到第二节点类型的一个或多个节点;并且
所述反向约束用于第二对象类型,所述第二对象类型对应于所述第二节点类型的一个或多个节点,所述第二节点类型的一个或多个节点通过在所述结构化查询中引用的所选择的矢线中的一条连接到所述第一节点类型的一个或多个节点。
5.根据权利要求1所述的方法,其中,所述第一查询约束用于第一对象类型,并且所述反向约束用于第二对象类型。
6.根据权利要求1所述的方法,其中,所述第一查询约束用于第一对象类型,并且所述反向约束用于第一对象类型。
7.根据权利要求1所述的方法,其中,所述反向约束用于第一对象类型,并且所述一个或多个第二查询约束用于一个或多个第二对象类型。
8.根据权利要求1所述的方法,其中:
所述第一查询约束包括内部约束和外部约束;并且
所述查询命令包括所述反向约束与所述内部约束的交集。
9.根据权利要求1所述的方法,另外:
所述第一查询约束用于第一对象类型,所述第一查询约束对应于反向索引,所述反向索引将所述第一对象类型映射到第二对象类型;并且
所述反向约束用于所述第二对象类型,所述反向约束对应于正向索引,所述正向索引将所述第二对象类型映射到所述第一对象类型。
10.根据权利要求1所述的方法,还包括:
识别匹配所述反向约束的第一组对象;
识别匹配所述一个或多个第二查询约束的第二组对象;并且
基于所述第一组对象和所述第二组对象生成一个或多个搜索结果,其中,每个搜索结果对应于与所述在线社交网络相关联的多个对象中的一个对象。
11.根据权利要求10所述的方法,其中,基于所述第一组对象和所述第二组对象生成所述一个或多个搜索结果包括生成对应于在所述第一组对象和所述第二组对象两者中识别的每个对象的搜索结果。
12.根据权利要求10所述的方法,其中,每个搜索结果对应于所述第二组对象中的对象,所述第二组对象被连接到所述第一组对象中一个或多个对象。
13.根据权利要求10所述的方法,其中,每个搜索结果对应于所述第一组对象中的对象,所述第一组对象被连接到所述第二组对象中的一个或多个对象。
14.根据权利要求10所述的方法,其中,识别匹配所述一个或多个第二查询约束的所述第二组对象包括识别与所述在线社交网络相关联的多个对象中的被连接到在所述第一组对象中的一个或多个对象的一个或多个对象。
15.根据权利要求1所述的方法,还包括:
确定满足所述第一查询约束的对象的数量;并且
如果对象的数量大于对象的阈值数量,那么生成具有所述反向约束的所述查询命令。
16.根据权利要求1所述的方法,还包括:
基于所述结构化查询生成初步查询命令,其中,所述初步查询命令包括所述第一查询约束和所述一个或多个第二查询约束;
基于所述初步查询命令,生成第一组搜索结果;并且
如果所述第一组搜索结果中的搜索结果的数量少于搜索结果的阈值数量,那么生成具有所述反向约束的所述查询命令,并且基于具有所述反向约束的所述查询命令,生成第二组搜索结果。
17.根据权利要求1所述的方法,还包括:
通过以下生成第一组搜索结果,其中,每个搜索结果对应于与所述在线社交网络相关联的多个对象中的对象:
识别匹配所述第一查询约束的第一组对象;并且
识别第二组对象,所述第二组对象包括来自所述第一组对象的匹配所述一个或多个第二查询约束的一个或多个对象;并且
如果所述第二组对象中的对象的数量少于对象的阈值数量,那么通过以下生成第二组搜索结果:
识别匹配所述反向约束的第三组对象;并且
识别第四组对象,所述第四组对象包括来自所述第三组对象的匹配所述一个或多个第二查询约束的一个或多个对象。
18.根据权利要求1所述的方法,还包括:
在接收所述结构化查询前,标记一个或多个查询约束,其中,每个标记的查询约束被识别为当执行时识别的对象的数量大于对象的阈值数量。
19.一种计算机可读非临时性存储介质,包括软件,所述软件在被执行时能操作以:
从在线社交网络的第一用户的客户端设备,接收包括对与所述在线社交网络相关联的一个或多个选择的对象的引用的结构化查询,其中,所述在线社交网络与社交图谱相关联,所述社交图谱包括多个节点和连接所述节点的多条矢线,并且其中,选择的对象对应于所述社交图谱的节点或矢线;
解析所述结构化查询,以识别第一查询约束和一个或多个第二查询约束;
如果所述第一查询约束已被标记为识别的对象的数量大于对象的阈值数量,则识别与所述第一查询约束相关联的反向约束;并且
基于所述结构化查询生成查询命令,其中,所述查询命令包括所述反向约束和所述一个或多个第二查询约束。
20.一种用于查询的系统,包括:一个或多个处理器;和耦接至所述处理器的包括能由所述处理器执行的指令的存储器,所述处理器在执行所述指令时能操作以:
从在线社交网络的第一用户的客户端设备,接收包括对与所述在线社交网络相关联的一个或多个选择的对象的引用的结构化查询,其中,所述在线社交网络与社交图谱相关联,所述社交图谱包括多个节点和连接所述节点的多条矢线,并且其中,选择的对象对应于所述社交图谱的节点或矢线;
解析所述结构化查询,以识别第一查询约束和一个或多个第二查询约束;
如果所述第一查询约束已被标记为识别的对象的数量大于对象的阈值数量,则识别与所述第一查询约束相关联的反向约束;并且
基于所述结构化查询生成查询命令,其中,所述查询命令包括所述反向约束和所述一个或多个第二查询约束。
CN201710476439.5A 2013-05-03 2014-04-30 方法、计算机可读非临时性存储介质和系统 Active CN107256269B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/887,068 US9367536B2 (en) 2013-05-03 2013-05-03 Using inverse operators for queries on online social networks
US13/887,068 2013-05-03
CN201480038225.4A CN105378727B (zh) 2013-05-03 2014-04-30 将逆算子用于在在线社交网络上查询

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201480038225.4A Division CN105378727B (zh) 2013-05-03 2014-04-30 将逆算子用于在在线社交网络上查询

Publications (2)

Publication Number Publication Date
CN107256269A CN107256269A (zh) 2017-10-17
CN107256269B true CN107256269B (zh) 2019-10-29

Family

ID=51842061

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201710476439.5A Active CN107256269B (zh) 2013-05-03 2014-04-30 方法、计算机可读非临时性存储介质和系统
CN201480038225.4A Active CN105378727B (zh) 2013-05-03 2014-04-30 将逆算子用于在在线社交网络上查询

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201480038225.4A Active CN105378727B (zh) 2013-05-03 2014-04-30 将逆算子用于在在线社交网络上查询

Country Status (11)

Country Link
US (4) US9367536B2 (zh)
EP (2) EP2992464B1 (zh)
JP (4) JP5938153B1 (zh)
KR (3) KR101842632B1 (zh)
CN (2) CN107256269B (zh)
AU (1) AU2014259935B2 (zh)
BR (1) BR112015027756A8 (zh)
CA (2) CA2919447C (zh)
IL (2) IL242366A (zh)
MX (1) MX347812B (zh)
WO (1) WO2014179427A1 (zh)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9910887B2 (en) * 2013-04-25 2018-03-06 Facebook, Inc. Variable search query vertical access
US9367880B2 (en) 2013-05-03 2016-06-14 Facebook, Inc. Search intent for queries on online social networks
US9367625B2 (en) 2013-05-03 2016-06-14 Facebook, Inc. Search query interactions on online social networks
US9367536B2 (en) 2013-05-03 2016-06-14 Facebook, Inc. Using inverse operators for queries on online social networks
US10445840B2 (en) * 2013-08-07 2019-10-15 Microsoft Technology Licensing, Llc System and method for positioning sponsored content in a social network interface
US11238056B2 (en) 2013-10-28 2022-02-01 Microsoft Technology Licensing, Llc Enhancing search results with social labels
US9692633B2 (en) * 2013-11-15 2017-06-27 Sap Se Role-based resource navigation
US11645289B2 (en) * 2014-02-04 2023-05-09 Microsoft Technology Licensing, Llc Ranking enterprise graph queries
US9870432B2 (en) 2014-02-24 2018-01-16 Microsoft Technology Licensing, Llc Persisted enterprise graph queries
CN103838834B (zh) * 2014-02-25 2020-06-19 北京智谷睿拓技术服务有限公司 一种提及推荐方法、信息处理方法及系统
US11657060B2 (en) 2014-02-27 2023-05-23 Microsoft Technology Licensing, Llc Utilizing interactivity signals to generate relationships and promote content
US10757201B2 (en) 2014-03-01 2020-08-25 Microsoft Technology Licensing, Llc Document and content feed
US10255563B2 (en) 2014-03-03 2019-04-09 Microsoft Technology Licensing, Llc Aggregating enterprise graph content around user-generated topics
US10394827B2 (en) 2014-03-03 2019-08-27 Microsoft Technology Licensing, Llc Discovering enterprise content based on implicit and explicit signals
US10169457B2 (en) 2014-03-03 2019-01-01 Microsoft Technology Licensing, Llc Displaying and posting aggregated social activity on a piece of enterprise content
US20150347357A1 (en) * 2014-05-30 2015-12-03 Rovi Guides, Inc. Systems and methods for automatic text recognition and linking
US10061826B2 (en) 2014-09-05 2018-08-28 Microsoft Technology Licensing, Llc. Distant content discovery
US20160148264A1 (en) * 2014-11-24 2016-05-26 Facebook, Inc. Searching for Offers and Advertisements on Online Social Networks
US9965560B2 (en) * 2015-02-02 2018-05-08 Samsung Electronics Co., Ltd. Social-distance permission-based search algorithm
US20160292247A1 (en) * 2015-03-31 2016-10-06 Kenneth Scott Kaufman Method of retrieving categorical data entries through an interactive graphical abstraction
US10541958B2 (en) * 2015-08-05 2020-01-21 Facebook, Inc. Controlling a device cloud
US10567479B2 (en) * 2015-08-05 2020-02-18 Facebook, Inc. Managing a device cloud
US10412160B2 (en) * 2015-08-05 2019-09-10 Facebook, Inc. Controlling a device cloud
US10348798B2 (en) * 2015-08-05 2019-07-09 Facebook, Inc. Rules engine for connected devices
US10425392B2 (en) * 2015-08-05 2019-09-24 Facebook, Inc. Managing a device cloud
US10162899B2 (en) * 2016-01-15 2018-12-25 Facebook, Inc. Typeahead intent icons and snippets on online social networks
US9836451B2 (en) * 2016-02-18 2017-12-05 Sap Se Dynamic tokens for an expression parser
US20170277750A1 (en) * 2016-03-28 2017-09-28 Futurewei Technologies, Inc. Querying big data by accessing small data
US10423683B2 (en) * 2016-05-02 2019-09-24 Microsoft Technology Licensing, Llc Personalized content suggestions in computer networks
AU2017264388B2 (en) * 2016-05-13 2022-04-21 Equals 3 LLC Searching structured and unstructured data sets
CN106126521B (zh) 2016-06-06 2018-06-19 腾讯科技(深圳)有限公司 目标对象的社交账号挖掘方法及服务器
CN108446281B (zh) * 2017-02-13 2021-03-12 北京嘀嘀无限科技发展有限公司 确定用户亲密度的方法、装置及存储介质
CN106980644B (zh) * 2017-02-20 2019-08-13 浙江大学 一种异构城市数据的个体人际关系可视推理方法
JP6893005B2 (ja) * 2017-03-31 2021-06-23 ネット株式会社 遊技機
US10664472B2 (en) * 2018-06-27 2020-05-26 Bitdefender IPR Management Ltd. Systems and methods for translating natural language sentences into database queries
CN108804711B (zh) * 2018-06-27 2022-12-06 郑州云海信息技术有限公司 一种数据处理的方法、装置和计算机可读存储介质
CN110110013B (zh) * 2019-05-10 2020-03-24 成都信息工程大学 一种基于时空属性的实体竞争关系数据挖掘方法
CN112100391B (zh) * 2019-05-31 2023-06-13 阿里巴巴集团控股有限公司 用户意图识别方法、装置、服务端、客户端及终端设备
US20220158965A1 (en) * 2020-11-13 2022-05-19 AMI Holdings Limited Generating curated matches among individuals
US20220318426A1 (en) * 2021-03-31 2022-10-06 Microsoft Technology Licensing, Llc Knowledge graph privacy management
US11966485B2 (en) 2021-06-09 2024-04-23 Microsoft Technology Licensing, Llc Property-level visibilities for knowledge-graph objects
CN113656927B (zh) * 2021-10-20 2022-02-11 腾讯科技(深圳)有限公司 数据处理方法、相关设备及计算机存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1497474A (zh) * 2002-10-03 2004-05-19 �Ҵ���˾ 带有正向和反向轴的流式xpath处理的方法
US8185558B1 (en) * 2010-04-19 2012-05-22 Facebook, Inc. Automatically generating nodes and edges in an integrated social graph

Family Cites Families (74)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61220027A (ja) 1985-03-27 1986-09-30 Hitachi Ltd 文書ファイリングシステム及び情報記憶検索システム
JP2839555B2 (ja) 1989-06-14 1998-12-16 株式会社日立製作所 情報検索方法
JPH05128157A (ja) 1991-11-08 1993-05-25 Ricoh Co Ltd 文書検索装置
JPH0744573A (ja) 1993-07-27 1995-02-14 Fujitsu Ltd 電子ファイリング装置
US7631012B2 (en) * 1997-05-22 2009-12-08 Computer Associates Think, Inc. System and method of operating a database
JP2000187663A (ja) 1998-12-22 2000-07-04 Hitachi Zosen Corp ファイル管理装置およびファイル管理方法並びにそのプログラムを記録した記録媒体
US7752326B2 (en) 2001-08-20 2010-07-06 Masterobjects, Inc. System and method for utilizing asynchronous client server communication objects
US8112529B2 (en) 2001-08-20 2012-02-07 Masterobjects, Inc. System and method for asynchronous client server session communication
US20090006543A1 (en) 2001-08-20 2009-01-01 Masterobjects System and method for asynchronous retrieval of information based on incremental user input
US20030225761A1 (en) 2002-05-31 2003-12-04 American Management Systems, Inc. System for managing and searching links
JP2004078631A (ja) * 2002-08-20 2004-03-11 Fujitsu Ltd オブジェクト指向データベースにおける検索装置及び検索方法
CN1809829A (zh) 2003-04-25 2006-07-26 惠普开发有限公司 数据库装置和作成方法、数据库检索装置及检索方法
US20050131872A1 (en) 2003-12-16 2005-06-16 Microsoft Corporation Query recognizer
US7836044B2 (en) 2004-06-22 2010-11-16 Google Inc. Anticipated query generation and processing in a search engine
US7499940B1 (en) 2004-11-11 2009-03-03 Google Inc. Method and system for URL autocompletion using ranked results
US7333981B2 (en) 2004-12-17 2008-02-19 International Business Machines Corporation Transformation of a physical query into an abstract query
EP1958338A4 (en) 2005-12-07 2011-01-05 METHOD AND SYSTEM FOR USER INPUT SOLUTION FOR A LIMITED TELECOMMUNICATION DEVICE
US7702689B2 (en) * 2006-07-13 2010-04-20 Sap Ag Systems and methods for querying metamodel data
US7636712B2 (en) 2006-11-14 2009-12-22 Microsoft Corporation Batching document identifiers for result trimming
US7840538B2 (en) 2006-12-20 2010-11-23 Yahoo! Inc. Discovering query intent from search queries and concept networks
US8281010B2 (en) 2006-12-29 2012-10-02 Prodea Systems, Inc. System and method for providing network support services and premises gateway support infrastructure
US7904461B2 (en) 2007-05-01 2011-03-08 Google Inc. Advertiser and user association
US20090171929A1 (en) 2007-12-26 2009-07-02 Microsoft Corporation Toward optimized query suggeston: user interfaces and algorithms
US20090228296A1 (en) 2008-03-04 2009-09-10 Collarity, Inc. Optimization of social distribution networks
US8645406B2 (en) * 2008-04-11 2014-02-04 Microsoft Corporation Exploiting conditions to optimize expensive database queries
US8417698B2 (en) 2008-05-06 2013-04-09 Yellowpages.Com Llc Systems and methods to provide search based on social graphs and affinity groups
US8027990B1 (en) 2008-07-09 2011-09-27 Google Inc. Dynamic query suggestion
US8386506B2 (en) 2008-08-21 2013-02-26 Yahoo! Inc. System and method for context enhanced messaging
US8370329B2 (en) 2008-09-22 2013-02-05 Microsoft Corporation Automatic search query suggestions with search result suggestions from user history
US9607052B2 (en) 2008-12-29 2017-03-28 Technion Research & Development Foundation Limited Query networks evaluation system and method
US8412749B2 (en) 2009-01-16 2013-04-02 Google Inc. Populating a structured presentation with new values
US20100235354A1 (en) 2009-03-12 2010-09-16 International Business Machines Corporation Collaborative search engine system
JP2010218376A (ja) 2009-03-18 2010-09-30 Nomura Research Institute Ltd ユーザ関心ジャンル分析システム
BRPI0922495B1 (pt) 2009-08-31 2019-07-16 José Da Conceição Carvalho Controlador de fluxo esofagiano
US20110078166A1 (en) 2009-09-29 2011-03-31 Nokia Corporation Method and apparatus for creating and utilizing information representation of queries
JP5292250B2 (ja) 2009-10-13 2013-09-18 日本電信電話株式会社 文書検索装置、文書検索方法、文書検索プログラム
US20110087534A1 (en) 2009-10-14 2011-04-14 Wantsa Media (Canada), Inc. Search queries and advertising platforms utilizing at least one social graph
US8239364B2 (en) 2009-12-08 2012-08-07 Facebook, Inc. Search and retrieval of objects in a social networking system
KR101123697B1 (ko) 2010-01-22 2012-03-20 유플리트 주식회사 공통 관심 사용자 검색장치 및 방법
US8595297B2 (en) 2010-02-08 2013-11-26 At&T Intellectual Property I, L.P. Searching data in a social network to provide an answer to an information request
US8527496B2 (en) 2010-02-11 2013-09-03 Facebook, Inc. Real time content searching in social network
JP2011170471A (ja) 2010-02-17 2011-09-01 Nippon Telegr & Teleph Corp <Ntt> ソーシャルグラフ生成方法、ソーシャルグラフ生成装置、およびプログラム
US8180804B1 (en) 2010-04-19 2012-05-15 Facebook, Inc. Dynamically generating recommendations based on social graph information
US8386471B2 (en) 2010-05-27 2013-02-26 Salesforce.Com, Inc. Optimizing queries in a multi-tenant database system environment
JP2012038023A (ja) 2010-08-05 2012-02-23 Nippon Telegr & Teleph Corp <Ntt> クエリ生成装置およびその動作方法
US20120059708A1 (en) 2010-08-27 2012-03-08 Adchemy, Inc. Mapping Advertiser Intents to Keywords
US8538978B2 (en) 2010-11-22 2013-09-17 International Business Machines Corporation Presenting a search suggestion with a social comments icon
US8364709B1 (en) 2010-11-22 2013-01-29 Google Inc. Determining word boundary likelihoods in potentially incomplete text
KR101073602B1 (ko) 2010-11-30 2011-10-14 중앙대학교 산학협력단 소셜 신뢰도 모델 생성 시스템 및 방법
US20120150850A1 (en) 2010-12-08 2012-06-14 Microsoft Corporation Search result relevance by determining query intent
US20120278127A1 (en) 2011-04-28 2012-11-01 Rawllin International Inc. Generating product recommendations based on dynamic product context data and/or social activity data related to a product
EP2521066A1 (en) 2011-05-05 2012-11-07 Axiomatics AB Fine-grained relational database access-control policy enforcement using reverse queries
US20120311034A1 (en) 2011-06-03 2012-12-06 Cbs Interactive Inc. System and methods for filtering based on social media
US8601027B2 (en) 2011-06-20 2013-12-03 Google Inc. Query-based user groups in social networks
US20130031106A1 (en) 2011-07-29 2013-01-31 Microsoft Corporation Social network powered query suggestions
US8538960B2 (en) 2011-08-05 2013-09-17 Microsoft Corporation Providing objective and people results for search
US8495058B2 (en) 2011-08-05 2013-07-23 Google Inc. Filtering social search results
US20130041876A1 (en) 2011-08-08 2013-02-14 Paul Alexander Dow Link recommendation and densification
US8504561B2 (en) 2011-09-02 2013-08-06 Microsoft Corporation Using domain intent to provide more search results that correspond to a domain
US11620719B2 (en) 2011-09-12 2023-04-04 Microsoft Technology Licensing, Llc Identifying unseen content of interest
US8918354B2 (en) 2011-10-03 2014-12-23 Microsoft Corporation Intelligent intent detection from social network messages
US8949232B2 (en) * 2011-10-04 2015-02-03 Microsoft Corporation Social network recommended content and recommending members for personalized search results
US8977611B2 (en) 2011-10-18 2015-03-10 Facebook, Inc. Ranking objects by social relevance
US8321364B1 (en) 2012-02-08 2012-11-27 Google Inc. Method and system for including robots into social networks
JP2013242675A (ja) 2012-05-18 2013-12-05 Nippon Telegr & Teleph Corp <Ntt> 分散情報制御装置、分散情報検索方法、データ分散配置方法、及びプログラム
KR101550327B1 (ko) * 2012-07-23 2015-09-04 페이스북, 인크. 소셜-그래프 정보에 기반한 구조화된 검색 질의
US9158801B2 (en) 2012-07-27 2015-10-13 Facebook, Inc. Indexing based on object type
US8983991B2 (en) 2012-07-27 2015-03-17 Facebook, Inc. Generating logical expressions for search queries
US8935271B2 (en) 2012-12-21 2015-01-13 Facebook, Inc. Extract operator
EP2784697A1 (en) 2013-03-28 2014-10-01 Fujitsu Limited Graph database query handling method and apparatus
US9367880B2 (en) 2013-05-03 2016-06-14 Facebook, Inc. Search intent for queries on online social networks
US9367625B2 (en) 2013-05-03 2016-06-14 Facebook, Inc. Search query interactions on online social networks
US9367536B2 (en) 2013-05-03 2016-06-14 Facebook, Inc. Using inverse operators for queries on online social networks
KR20150003977A (ko) * 2013-07-01 2015-01-12 현대중공업 주식회사 클린엔진 인테이크 에어챔버와 실린더 헤드의 연결구조

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1497474A (zh) * 2002-10-03 2004-05-19 �Ҵ���˾ 带有正向和反向轴的流式xpath处理的方法
US8185558B1 (en) * 2010-04-19 2012-05-22 Facebook, Inc. Automatically generating nodes and edges in an integrated social graph

Also Published As

Publication number Publication date
JP2017068861A (ja) 2017-04-06
JP2017199418A (ja) 2017-11-02
US10417222B2 (en) 2019-09-17
CA2910869C (en) 2016-04-12
EP2992464A1 (en) 2016-03-09
CA2919447A1 (en) 2014-11-06
AU2014259935A1 (en) 2015-12-10
EP2992464B1 (en) 2017-10-11
BR112015027756A2 (pt) 2017-07-25
CN107256269A (zh) 2017-10-17
KR20160124924A (ko) 2016-10-28
US9690826B2 (en) 2017-06-27
KR101671878B1 (ko) 2016-11-03
AU2014259935B2 (en) 2016-01-21
KR102048216B1 (ko) 2019-11-25
CA2910869A1 (en) 2014-11-06
EP2992464A4 (en) 2017-01-11
CA2919447C (en) 2018-09-18
EP3267334B1 (en) 2019-03-06
JP2016524741A (ja) 2016-08-18
JP5938153B1 (ja) 2016-06-22
US9367536B2 (en) 2016-06-14
JP6055950B2 (ja) 2016-12-27
MX2015015260A (es) 2016-05-05
KR101842632B1 (ko) 2018-03-27
US20140330809A1 (en) 2014-11-06
JP6174228B2 (ja) 2017-08-02
MX347812B (es) 2017-05-15
CN105378727B (zh) 2017-07-11
BR112015027756A8 (pt) 2019-12-24
CN105378727A (zh) 2016-03-02
WO2014179427A1 (en) 2014-11-06
KR20150139984A (ko) 2015-12-14
KR20180031826A (ko) 2018-03-28
US20160132597A1 (en) 2016-05-12
US20170286481A1 (en) 2017-10-05
IL242366A (en) 2016-09-29
EP3267334A1 (en) 2018-01-10
US20170031979A1 (en) 2017-02-02
JP2016164809A (ja) 2016-09-08
JP6419905B2 (ja) 2018-11-07
IL247467B (en) 2018-04-30
US9495354B2 (en) 2016-11-15

Similar Documents

Publication Publication Date Title
CN107256269B (zh) 方法、计算机可读非临时性存储介质和系统
CN107403388B (zh) 用于结构化搜索查询的语法模型
CN107766479B (zh) 用于在线社交网络的客户端搜索模板
JP6087015B2 (ja) オンライン・ソーシャル・ネットワーク上での検索クエリ対話
KR101648533B1 (ko) 온라인 소셜 네트워크에서 질의를 위한 검색 의도
CN105144151B (zh) 结构化搜索查询的自然语言渲染
CN105027118B (zh) 在线社交网络上的修改结构化搜索查询
KR101997541B1 (ko) 온라인 소셜 네트워크에서 외부 컨텐츠의 순위화
JP2018010667A (ja) オンライン・ソーシャル・ネットワーク上の示唆クエリをフィルタリング
CN109791680A (zh) 在线社交网络上的视频关键帧显示
CN109983455A (zh) 在在线社交网络上多样化媒体搜索结果
CN107368509B (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
CP01 Change in the name or title of a patent holder

Address after: California, USA

Patentee after: Yuan platform Co.

Address before: California, USA

Patentee before: Facebook, Inc.

CP01 Change in the name or title of a patent holder