连接设备的规则引擎的制作方法

文档序号:14655296发布日期:2018-06-08 23:26阅读:355来源:国知局
连接设备的规则引擎的制作方法

本公开一般涉及嵌入有电子设备和软件以使对象能够与系统交换数据的对象的网络。



背景技术:

可包括社交网站的社交网络系统可使其用户(诸如个人或组织)与它交互或通过它与彼此进行交互。社交网络系统可通过用户的输入在社交网络系统中创建和存储与用户相关联的用户简档。用户简档可包括人口统计信息、通信信道信息以及关于用户的个人兴趣的信息。社交网络系统还可通过用户的输入来创建并存储用户与社交网络系统的其他用户的关系的记录,并且提供服务(例如,墙贴、照片共享、事件组织、消息、游戏或广告)以促进用户之间的社交互动。

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

移动计算设备——诸如智能手机、平板计算机或膝上型计算机——可包括用于确定其位置、方向或取向的功能,诸如GPS接收器、罗盘、陀螺仪或加速度计。这样的设备还可包括用于无线通信的功能,诸如蓝牙通信、近场通信(NFC)或红外(JR)通信或与无线局域网(WLAN)或蜂窝电话网络进行通信。这样的设备还可包括一个或多个相机、扫描仪、触摸屏、麦克风或扬声器。移动计算设备也可执行软件应用,诸如游戏、网页浏览器或社交网络应用。借助社交网络应用,用户可在社交网络中与其他用户进行连接、交流和共享信息。



技术实现要素:

在具体实施例中,系统接收网络上连接的设备的事件通知。事件可能是与连接的设备相关联的事件。系统评估包括在特定时间段内发生的两个以上事件的事件序列,并且基于评估的序列生成规则。事件序列的特定时间段可以是预先确定的,或者可使用历史数据来确定。在某些实施例中,可对事件序列进行评分,并且可基于得分为事件序列生成规则。在一些实施例中,可仅为具有大于阈值的得分的那些事件序列生成规则。一旦生成规则,将新事件通知与规则进行比较,以确定是否基于新事件触发了特定规则。如果是,则根据触发的规则将指令发送到连接的设备。

以下公开的实施例仅仅是实例,并且本公开的范围不限于它们。具体实施例可包括以上公开的实施例的组件、元件、特征、功能、操作或步骤的全部、一些或者不包括。根据本发明的实施例具体在涉及方法、存储介质、系统和计算机程序产品的所附权利要求中公开,其中在一个权利要求类别,例如,方法,中提及的任何特征也可在另一个权利要求类别,例如,系统中请求保护。所附权利要求中的从属关系或引用仅为正式原因选择。然而,也可请求保护从任何以前的权利要求(特别是多个从属关系)的有意回参产生的任何主题,以便权利要求及其特征的任何组合被公开并且可被要求保护,而不管在所附权利要求中选择的从属关系。可要求保护的主题不仅包括在所附权利要求中提出的特征的组合,而且还包括在权利要求中的特征的任何其他组合,其中权利要求中提及的每个特征可与任何其他特征或者权利要求中的其他特征组合。此外,本文描述或描绘的任何实施例和特征可在单独的权利要求中请求保护和/或与本文描述或描绘的任何实施例或特征组合请求保护或与所附权利要求的任何特征组合请求保护。

附图说明

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

图2示出了实例社交图。

图3示出了用于管理设备云的实例体系结构。

图4示出了用于为网络上的连接设备生成并执行基于行为的规则的实例方法。

图5示出了实例计算机系统。

具体实施方式

图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)、无线局域网(WLAN)、广域网(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的组合。链路150在整个网络环境100中不一定是相同的。一个或多个第一链接150可在一个或多个方面与一个或多个第二链接150不同。

在具体实施例中,客户端系统130可以是包括硬件、软件或嵌入式逻辑组件或者两个以上这种组件的组合并且能够执行由客户端系统130实现或支持的适当功能的电子设备。作为实例,客户端系统130可包括计算机系统,诸如台式计算机、笔记本或膝上型计算机、上网本、平板计算机、电子书阅读器、GPS设备、照相机、个人数字助理(PDA)、手持电子设备、蜂窝电话、智能手机、增强/虚拟现实设备,其他合适的电子设备,或其任何适当的组合。本公开考虑任何合适的客户端系统130。客户端系统130可使客户端系统130处的网络用户能够访问网络110。客户端系统130可使其用户能够与其他客户端系统130处的其他用户通信。

在具体实施例中,客户端系统130可包括网页浏览器132,诸如MICROSOFT INTERNET EXPLORER、GOOGLE CHROME或MOZILLA FIREFOX,并且可具有一个或多个附加件、插件或其他扩展,诸如TOOLBAR或YAHOO TOOLBAR。客户端系统130处的用户可输入将网页浏览器132指向特定服务器(诸如服务器162或与第三方系统170相关联的服务器)的统一资源定位符(URL)或其他地址,并且网页浏览器132可生成超文本传输协议(HTTP)请求并将该HTTP请求传送给服务器。服务器可接受HTTP请求并响应于HTTP请求将一个或多个超文本标记语言(HTML)文件传送到客户端系统130。客户端系统130可基于来自服务器的HTML文件呈现网页以呈现给用户。本公开考虑任何合适的网页文件。例如,根据特定需求,网页可从HTML文件、可扩展超文本标记语言(XHTML)文件或可扩展标记语言(XML)文件呈现。这些页面还可执行脚本,诸如例如但不限于以JAVASCRIPT、JAVA、MICROSOFT SILVERLIGHT,标记语言和脚本的组合,诸如AJAX(异步JAVASCRIPT和XML)等,编写的脚本。在本文中,在适当的情况下,对网页的引用包含一个或多个对应的网页文件(浏览器可用来呈现网页),反之亦然。

在具体实施例中,社交网络系统160可以是可托管在线社交网络的网络可寻址计算系统。社交网络系统160可生成、存储、接收和发送社交网络数据,诸如例如用户简档数据、概念简档数据、社交图信息或与在线社交网络相关的其他合适的数据。社交网络系统160可由网络环境100的其他组件访问,直接地或者经由网络110。作为实例,客户端系统130可使用网页浏览器132或者与社交网络系统160相关联的本地应用(例如,移动社交网络应用程序、消息收发应用,另一个合适的应用或其任何组合)访问社交网络系统160,直接地或者经由网络110。在具体实施例中,社交网络系统160可包括一个或多个服务器162。每个服务器162可以是跨越多个计算机或多个数据中心的统一服务器或分布式服务器。服务器162可以是各种类型的,诸如例如但不限于网络服务器、新闻服务器、邮件服务器、消息服务器、广告服务器、文件服务器、应用服务器、交换服务器、数据库服务器、代理服务器,用于执行本文描述的功能或过程的另一服务器,或其任何组合。在具体实施例中,每个服务器162可包括用于执行由服务器162实现或支持的适当功能的硬件、软件或嵌入式逻辑组件或者两个以上这种组件的组合。在具体实施例中,社交网络系统160可包括一个或多个数据存储器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的一个或多个接口、一个或多个网络服务、一个或多个内容源、一个或多个网络,或者任何其他合适的组件,例如服务器可与之通信。第三方系统170可由与运行社交网络系统160的实体不同的实体来操作。然而,在具体实施例中,社交网络系统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上或者在社交网络系统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中的节点可表示网页(可被称为“简档页面”)或由网页表示。简档页面可由社交网络系统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作为社交图信息存储在一个或多个数据存储器164中。在图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可在社交图200中在用户节点202和概念节点204之间创建边206。作为实例,观看概念简档页面的用户(诸如例如,通过使用网页浏览器或由用户的客户端系统130托管的专用应用)可通过点击或选择“喜欢”图标来指示他或她喜欢由概念节点204表示的概念,这可能导致用户的客户端系统130向社交网络系统160发送指示用户喜欢与概念简档页面相关联的概念的消息。响应于该消息,社交网络系统160可在与用户相关联的用户节点202和概念节点204之间创建边206,如用户和概念节点204之间的“喜欢”边206所示。在具体实施例中,社交网络系统160可将边206存储在一个或多个数据存储器中。在具体实施例中,边206可由社交网络系统160响应于特定的用户动作而自动形成。作为实例,如果第一用户上传图片、观看电影或收听歌曲,则可在对应于第一用户的用户节点202与对应于这些概念的概念节点204之间形成边206。尽管本公开描述了以特定方式形成特定边206,但是本公开考虑以任何合适的方式形成任何合适的边206。

在具体实施例中,广告可以是文本(其可以是HTML链接的)、一个或多个图像(其可以是HTML链接的)、一个或多个视频、音频、其他合适的数字对象文件、这些文件的适当组合,或呈现在一个或多个网页上、以一个或多个电子邮件或结合用户所请求的搜索结果的任何适当的数字格式的任何其他合适的广告。另外或作为替代,广告可以是一个或多个赞助故事(例如,社交网络系统160上的新闻馈送或股票行情项目)。赞助故事可以是广告商促进的用户的社交动作(例如“喜欢”页面、“喜欢”或者对页面上的帖子进行评论、对与页面关联的事件RSVP、对发布在页面上的问题进行投票、在某个地方签到、使用应用或玩游戏,或者“喜欢”或分享网站),例如通过使社交动作呈现在用户的简档页面的预定区域内或其他页面,呈现与广告商相关联的附加信息,在其他用户的新闻馈送或自动收报机中提高或以其他方式突出显示,或以其他方式促进。广告商可能会付钱来促进社交动作。社交动作可在社交网络系统160内或社交网络系统160上被促进。另外或作为替代,社交动作可在适当的情况下在社交网络系统160之外或之外被促进。在具体实施例中,页面可以是促进其故事分享和与人们连接的商业、组织或品牌的在线呈现(诸如社交网络系统160内部或外部的网页或网站)。例如,可通过添加应用程序、发布故事或托管事件来定制页面。

当查看与社交网络系统160相关联的网页时,赞助故事可从用户的新闻馈送中的故事中生成,并且被提升到用户的网页浏览器的显示内的特定区域。赞助故事更可能被用户观看,至少部分是因为赞助故事通常涉及用户的好友、爱好者页面或其他连接的交互或建议。关于赞助故事,具体实施例可利用以下文献中公开的一个或多个系统、组件、元件、功能、方法、操作或步骤:2011年12月15日提交的题为“Sponsored Stories Unit Creation from Organic Activity Stream”的美国专利申请号13/327557;2012年2月3日提交的题为“Sponsored Stories Unit Creation from Organic Activity Stream”的美国专利申请公开号2012/0203831其美国专利申请号为13/020745或2011年3月9日提交的题为“Endorsement Subscription for Sponsored Stories”的美国专利申请公开号2012/0233009,其美国专利申请号为13/044506,这些专利申请全部以引用方式并入本文作为实例。在具体实施例中,赞助故事可利用计算机视觉算法来检测上载图像中的产品或者与广告商没有明确连接的照片,如2011年8月18日提交的题为“Computer-Vision Content Detection for Sponsored Stories”的美国专利申请13/212356中所公开的,其以引用的方式并入本文作为实例。

如上所述,广告可以是文本(其可以是HTML链接的),一个或多个图像(其可以是HTML链接的)、一个或多个视频、音频、一个或多个ADOBE FLASH文件、这些合适的组合,或以任何合适的数字格式的任何其他合适的广告。在具体实施例中,可请求在第三方网页、社交网络系统网页或其他页面中显示广告。广告可显示在页面的专用部分中,诸如在页面顶部的横幅区域中、在页面的侧面的列中、在页面的GUI中、在弹出窗口中、在页面内容的顶部,或者在页面的其他地方。另外或者作为替代,广告可被显示在应用内或游戏内。广告可在专用页面内显示,要求用户在用户可访问页面、利用应用或玩游戏之前与广告交互或观看广告。用户可例如通过网页浏览器查看广告。

用户可以以任何合适的方式与广告交互。用户可点击或以其他方式选择广告,并且广告可指导用户(或者用户正在使用的浏览器或其他应用)到与广告相关联的页面。在与广告相关联的页面上,用户可采取另外的动作,诸如购买与广告相关联的产品或服务、接收与广告相关联的信息或者订阅与广告相关联的时事通讯。具有音频或视频的广告可通过选择广告的组件(比如“播放按钮”)来播放。在具体实施例中,广告可包括用户或其他应用可结合广告播放的一个或多个游戏。广告可包括用于响应广告中的投票或问题的功能。

广告可包括用户可与之交互的社交网络系统功能。例如,广告可使用户能够通过选择与批注相关联的图标或链接来“喜欢”或以其他方式支持广告。类似地,用户可与另一个用户(例如,通过社交网络系统160)或RSVP(例如,通过社交网络系统160)共享广告到与广告相关联的事件。另外或作为替代,广告可包括针对用户的社交网络系统内容。例如,广告可显示关于已经采取了与广告的主题相关联的动作的社交网络系统160内的用户的好友的信息。

社交网络系统功能或内容可以以任何合适的方式与广告相关联。例如,广告系统(其可包括硬件、软件或两者用于接收对广告的出价以及作为响应选择广告)可从社交网络系统160检索社交网络功能或内容,并且在将广告提供给用户之前将检索到的社交网络功能内容合并广告中。在以下文献中公开了为社交网络系统功能或内容选择和提供广告的实例:2010年10月5日提交题为“Providing Social Endorsements with Online Advertising”的美国专利申请公开号2012/0084160,其美国专利申请号为12/898662;以及2011年3月8日提交的题为“Selecting Social Endorsement Information for an Advertisement for Display to a Viewing User”的美国专利申请公开号2012/0232998,其美国专利号为13/043424,两个文献通过引用合并到本文中作为实例。和与社交网络系统功能或内容相关联的广告交互可使关于交互的信息显示在社交网络系统160中的用户的简档页面中。

具体实施例可促进将广告递送给更有可能觉得其广告更相关或有用的用户。例如,广告商可通过识别和定位更有可能觉得其广告更相关或有用的用户来实现更高的转换率(并且因此从广告中获得更高的投资回报(ROI))。广告商可使用社交网络系统160中的用户简档信息来识别那些用户。另外或作为替代,社交网络系统160可使用社交网络系统160中的用户简档信息来识别广告商的那些用户。作为实例,具体实施例可用以下内容来针对用户:事件的邀请或建议;关于优惠券、交易或愿望清单项目的建议;关于好友的生活事件的建议;关于团体的建议;广告;或社交广告。这样的定向在适当的情况下可在社交网络系统160上或社交网络系统160内发生;在社交网络系统160外或社交网络系统160之外发生或在用户的移动计算设备上发生。当在社交网络系统160上或在社交网络系统160内时,这样的定向可针对用户的新闻馈送、搜索结果、电子邮件或其他收件箱或通知信道,或可出现在社交网络系统160的网页的特定区域,诸如门房或者分组区域中网页的右侧(其可沿着与相同的概念、节点或者对象相关联的右侧栏广告进行分组)或者网络自我区域(可基于用户在网页上查看的内容和用户的当前新闻馈送)。当在社交网络系统160外或在社交网络系统160之外时,可通过例如涉及广告交换或社交插件的第三方网站来提供这种定向。当在用户的移动计算设备上时,可通过向移动计算设备推送通知提供这种定向。

用于识别和定向用户的定向标准可包括社交网络系统160上显式的,陈述的用户兴趣或用户与社交网络系统160上的节点、对象、实体、品牌或页面的显式连接。另外或作为替代地,这样的定向标准可包括隐式或推断的用户兴趣或连接(其可包括分析用户的历史、人口统计、社交或其他活动、好友的社交活动或其他活动、订阅或者与用户相似的其他用户的前述任一种(例如基于共享的兴趣、连接或事件))。具体实施例可利用平台定向,其可涉及平台和“喜欢”印象数据;语境信号(例如,“谁正在查看或最近查看了可口可乐的页面?”);轻量级连接(例如“签到”);连接相似性(lookalikes);爱好者;提取关键字;EMU广告;推理广告;系数;亲和度或其他社交图信息;好友的好友连接;固定或助推;交易;调查;家庭收入、社会群体或群体;在图像或其他媒体中检测到的产品;社交图或开放图边类型;地理预测;简况或页面的意见;状态更新或其他用户帖子(其分析可能涉及自然语言处理或关键字提取);事件信息;或协作过滤。识别和定向用户在适当的情况下还可能包括隐私设置(诸如用户选择退出)、数据散列或数据匿名化。

为了以广告为定向用户,具体实施例可利用以下文献中公开的一个或多个系统、组件、元件、功能、方法、操作或步骤,这些文献全部以引用的方式并入本文作为实例:于2008年8月18日提交的题为“Social Advertisements and Other Informational Messages on a Social Networking Website and Advertising Model for Same”的美国专利申请公开号2009/0119167,其美国专利申请号为12/193702;于2008年8月20日提交的题为“Targeting Advertisements in a Social Network”的美国专利申请公开第2009/0070219,其美国专利申请号为12/195321;于2010年12月15日提交的题为“Targeting Social Advertising to Friends of Users Who Have Interacted With an Object Associated with the Advertising”的美国专利申请公开2012/0158501,其美国专利申请号为12/968786;或于2010年12月23日提交的题为“Contextually Relevant Affinity Prediction in a Social-Networking System”的美国专利申请公开号2012/0166532,其美国专利申请号为12/978265。

广告可被呈现或以其他方式递送,使用用于网页浏览器或其他应用的插件、内帧元素、新闻馈送、自动收报机、通知(其可包括例如电子邮件,短消息服务(SMS)消息或通知),或其他方式。广告可在用户的移动设备或其他计算设备上呈现或以其他方式递送给用户。关于递送广告,具体实施例可利用以下文献中公开的一个或多个系统、组件、元件、功能、方法、操作或步骤,这些文献全部通过引用并入本文作为实例:于2010年12月15日提交的题为“Comment Plug-In for Third-Party System”的美国专利申请公开号2012/0159635,其美国专利申请号为12/969368;于2010年12月15日提交的题为“Comment Ordering System”的美国专利申请公开号2012/0158753,其美国专利申请号为12/969408;于2006年8月11日提交的题为“Dynamically Providing a News Feed About a User of a Social Network”的美国专利号7,669,123,其美国专利申请号为11/503242;于2006年8月11日提交的题为“Providing a Newsfeed Based on User Affinity for Entities and Monitored Actions in a Social Network Environment”的美国专利号8,402,094,其美国专利申请号为11/503093;于2010年9月16日提交的题为“Action Clustering for News Feeds”的美国专利申请公开号2012/0072428,其美国专利申请号为12/884010;于2009年7月1日提交的题为“Gathering Information about Connections in a Social Networking Service”的美国专利申请公开号2011/0004692,其美国专利申请号为12/496606;于2006年9月12日提交的题为“Method and System for Tracking Changes to User Content in an Online Social Network”的美国专利申请公开号2008/0065701其美国专利申请号为11/531154;于2007年1月17日提交的题为“Feeding Updates to Landing Pages of Users of an Online Social Network from External Sources”的美国专利申请公开号2008/0065604,其美国专利申请号为11/624088;于2010年4月19日提交的题为“Integrated Social-Network Environment”的美国专利号8,244,848,其美国专利申请号为12/763171;于2009年10月6日提交的题为“Sharing of Location-Based Content Item in Social-Networking Service”的美国专利申请公开号2011/0083101,其美国专利申请号为12/574614;于2010年8月18日提交的题为“Location Ranking Using Social-Graph Information”的美国专利号8,150,844,其美国专利申请号为12/858718;于2011年3月18日提交的题为“Sending Notifications to Users Based on Users'Notification Tolerance Levels”的美国专利申请号13/051286;于2011年4月28日提交的题为“Managing Notifications Push to User Devices”的美国专利申请号13/096184;于2011年10月18日提交的题为“Platform-Specific Notification Delivery Channel”的美国专利申请号13/276248;或于2011年2月1日提交的题为“Mobile Advertisement with Social Component for Geo-Social Networking System”的美国专利申请公开第2012/0197709,其美国专利申请号为13/019061。虽然本公开描述或示出了以特定方式并结合特定内容递送的特定广告,但是本公开考虑以任何合适的方式并结合任何合适的内容递送的任何合适的广告。

在具体实施例中,社交网络系统160可确定各个社交图实体彼此之间的社交图亲和度(在此可被称为“亲和度”)。亲和度可表示与在线社交网络相关联的特定对象之间的关系或兴趣水平的强度,所述对象诸如用户、概念、内容、动作、广告、与在线社交网络相关联的其它对象或其任何适当的组合。也可关于与第三方系统170或其他合适的系统相关联的对象来确定亲和度。可建立针对每个用户、主题或者内容的类型的社交图实体的总体亲和度。总体亲和度可基于对与社交图实体相关联的动作或关系的持续监视而改变。尽管本公开描述了以特定方式确定特定的亲和度,但是本公开考虑以任何合适的方式确定任何适合的亲和度。

在具体实施例中,社交网络系统160可使用亲和度系数(其在本文中可被称为“系数”)来测量或量化社交图亲和度。系数可表示或量化与在线社交网络相关联的特定对象之间的关系的强度。系数还可表示测量用户基于用户对动作的兴趣来执行特定动作的预测概率的概率或函数。以这种方式,可基于用户先前的动作来预测用户的将来的动作,其中可至少部分地根据用户的动作的历史来计算该系数。可使用系数来预测可能在在线社交网络之内或之外的任何数量的动作。作为实例,这些动作可包括各种类型的通信,诸如发送消息、发布内容或评论内容;各种类型的观察动作,诸如访问或观看简档页面、媒体或其他合适的内容;关于两个以上社交图实体的各种类型的重合信息,诸如在相同的组中、在相同的照片中被标记、在相同的位置签到或出席相同的事件;或其他合适的动作。尽管本公开以特定的方式描述了测量亲和度,但是本公开考虑以任何合适的方式测量亲和度。

在具体实施例中,社交网络系统160可使用各种因素来计算系数。这些因素可包括例如用户动作、对象之间的关系的类型、位置信息、其他合适的因素或其任何组合。在具体实施例中,当计算系数时,不同的因素可被不同地加权。每个因素的权重可以是静态的,或者权重可根据例如用户、关系的类型、动作的类型、用户的位置等而改变。这些因素的评级可根据它们的权重进行组合以确定用户的总体系数。作为实例,特定用户动作可被分配评级和权重,而与特定用户动作相关联的关系被分配评级和相关权重(例如,权重总和100%)。为了计算用户对特定对象的系数,分配给用户的动作的等级可包括例如总系数的60%,而用户和对象之间的关系可包括总系数的40%。在具体实施例中,当确定用于计算系数的各种因素的权重时,社交网络系统160可考虑各种变量,诸如例如自从信息被访问以来的时间、衰减因子、访问频率、与信息的关系或与关于信息被访问的对象的关系、与连接到对象的社交图实体的关系、用户动作的短期或长期平均、用户反馈、其他合适的变量或其任何组合。作为实例,系数可包括衰减因子,衰减因子使得由特定动作提供的信号的强度随着时间衰减,使得当计算系数时更近的动作更相关。评级和权重可基于对系数所基于的动作的持续跟踪而不断更新。可采用任何类型的过程或算法来分配、组合、平均等,对每个因素的评级和分配给这些因素的权重。在具体实施例中,社交网络系统160可确定系数,使用在历史动作和过去的用户反应上训练的机器学习算法,或者通过将用户暴露于各种选项并测量响应的来自用户数据。尽管本公开以特定方式描述了计算系数,但是本公开考虑以任何适当的方式计算系数。

在具体实施例中,社交网络系统160可基于用户的动作来计算系数。社交网络系统160可在在线社交网络上、在第三方系统170上、在其他合适的系统上或其任何组合上监视这样的动作。可跟踪或监视任何适当类型的用户动作。典型的用户动作包括查看简档页面、创建或发布内容、与内容交互、在图像中标记或被标记、加入群组、列出和确认参与事件、在地点签到、喜欢特定页面、创建页面以及执行其他促进社交动作的任务。在具体实施例中,社交网络系统160可基于用户对特定类型的内容的动作来计算系数。内容可与在线社交网络、第三方系统170或另一合适的系统相关联。内容可包括用户、简档页面、帖子、新闻报道、标题、即时消息、聊天室对话、电子邮件、广告、图片、视频、音乐、其他合适的对象或其任何组合。社交网络系统160可分析用户的动作以确定一个或多个动作是否指示对主题、内容、其他用户等的亲和度。作为实例,如果用户可频繁发布与“咖啡”或其变体有关的内容,则社交网络系统160可确定用户具有关于概念“咖啡”的高系数。特定动作或动作类型可被分配比其他动作更高的权重和/或评级,这可能影响整体计算的系数。作为实例,如果第一用户向第二用户发送电子邮件,则与如果第一用户简单地查看第二用户的用户简档页面的情况相比,动作的权重或评级可更高。

在具体实施例中,社交网络系统160可基于特定对象之间的关系的类型来计算系数。参考社交图200,当计算系数时,社交网络系统160可分析连接特定用户节点202和概念节点204的边206的数量和/或类型。作为实例,通过配偶型边(表示两个用户已婚)连接的用户节点202可被分配比通过好友型边连接的用户节点202更高的系数。换句话说,根据分配给特定用户的动作和关系的权重,相比于关于用户好友的内容,可确定整体亲和度对于关于用户的配偶的内容更高。在具体实施例中,用户与另一个对象的关系可影响关于计算该对象的系数的用户的动作的权重和/或评级。作为实例,如果用户在第一张照片中被标记,但是仅仅喜欢第二张照片,则社交网络系统160可确定用户相对于第一张照片具有比第二张照片更高的系数,因为具有与内容具有标记型关系可被分配比具有与内容的喜欢型关系更高的权重和/或评级。在具体实施例中,社交网络系统160可基于一个或多个第二用户与特定对象的关系来计算第一用户的系数。换句话说,其他用户与对象的连接和系数可能会影响第一个用户与对象的系数。作为实例,如果第一用户连接到一个或多个第二用户或者对一个或多个第二用户具有高系数,并且这些第二用户连接到或具有用于特定对象的高系数,则社交网络系统160可确定第一用户对于特定对象也应该具有相对较高的系数。在具体实施例中,系数可基于特定对象之间的分离程度。较低系数可表示第一用户将共享对社交图200中的间接连接到第一用户的用户的内容对象的兴趣的降低的可能性。作为实例,与在社交与社交图200中进一步分离的实例相比,在社交与社交图200中较近的社交图实体(例如,更少的分离度)可具有更高的系数。

在具体实施例中,社交网络系统160可基于位置信息来计算系数。与更远的对象相比,在地理上彼此接近的对象可被认为是彼此更相关或更感兴趣。在具体实施例中,用户朝向特定对象的系数可基于对象的位置和与用户相关联的当前位置(或用户的客户端系统130的位置)的接近度。第一个用户可能对更接近第一个用户的其他用户或概念更感兴趣。作为实例,如果用户离机场一英里并且距加油站两英里,则社交网络系统160可基于机场到用户的接近度,确定用户对于机场的系数大于对于加油站的系数。

在具体实施例中,社交网络系统160可基于系数信息来执行关于用户的特定动作。可使用系数来预测用户是否将基于用户对动作的兴趣来执行特定动作。当向用户产生或呈现任何类型的对象时,可使用系数,所述对象诸如广告、搜索结果、新闻报道、媒体、消息、通知或其他合适的对象。系数也可用于对这些对象进行排列和排序。以这种方式,社交网络系统160可提供与用户的兴趣和当前情况相关的信息,增加了他们将发现这种感兴趣的信息的可能性。在具体实施例中,社交网络系统160可基于系数信息来生成内容。内容对象可基于特定于用户的系数来提供或选择。作为实例,系数可被用于为用户生成媒体,其中可为用户呈现用户关于媒体对象具有高总体系数的媒体。作为另一实例,该系数可被用来为用户生成广告,其中可为用户呈现用户关于广告的对象具有高总体系数的广告。在具体实施例中,社交网络系统160可基于系数信息生成搜索结果。针对特定用户的搜索结果可基于与针对查询用户的搜索结果相关联的系数来评分或排序。作为实例,对应于具有较高系数的对象的搜索结果可在搜索结果页面上排序得高于对应于具有较低系数的对象的结果。

在具体实施例中,社交网络系统160可响应于来自特定系统或过程的对系数的请求来计算系数。为了预测用户在给定情况下可能采取的行动(或可能是其对象),任何过程可为用户请求计算的系数。该请求还可包括一组权重以用于各种因素,用于计算系数。该请求可来自在在线社交网络上运行的进程,来自第三方系统170(例如,经由API或其他通信信道)或来自另一合适的系统。响应于该请求,社交网络系统160可计算系数(或者如果之前已经计算并存储了系数信息,则访问该系数信息)。在具体实施例中,社交网络系统160可测量关于特定过程的亲和度。不同的过程(在线社交网络的内部和外部)可请求一个特定对象或一组对象的系数。社交网络系统160可提供与请求亲和度测量的特定过程有关的亲和度度量。通过这种方式,每个过程都会接收一个亲和度测量,该亲和度测量是针对过程将使用亲和度测量的不同语境而定制的。

结合社交图亲和度和亲和度系数,具体实施例可利用以下文献中公开的一个或多个系统、组件、元件、功能、方法、操作或步骤:于2006年8月11日提交的美国专利申请号11/503093;于2010年12月22日提交的美国专利申请号12/977027;于2010年12月23日提交的美国专利申请号12/978265;以及于2012年10月1日提交的美国专利申请号13/632869,其每一个通过引用并入本文。

在具体实施例中,在线社交网络的一个或多个内容对象可与隐私设置相关联。对象的隐私设置(或“访问设置”)可以以任何合适的方式被存储,诸如例如与对象相关联,以授权服务器的索引,以另一种合适的方式或其任意组合。对象的隐私设置可指定可如何使用在线社交网络访问(例如,查看或共享)对象(或与对象相关联的特定信息)。在对象的隐私设置允许特定用户访问该对象的情况下,对象可被描述为相对于该用户是“可见的”。作为实例,在线社交网络的用户可指定用于用户简档页面的隐私设置,该隐私设置识别可访问用户简档页面上的工作经历信息的一组用户,从而排除其他用户访问该信息。在具体实施例中,隐私设置可指定不应被允许访问与对象相关联的某些信息的用户的“阻止列表”。换句话说,阻止列表可指定对象不可见的一个或多个用户或实体。作为实例,用户可指定一组用户,其可能不访问与用户相关联的照片相册,从而排除那些用户访问相册(同时还可能允许不在该组用户内的某些用户访问相册)。在具体实施例中,隐私设置可与特定的社交图元素相关联。诸如节点或边的社交图元素的隐私设置可指定可如何使用在线社交网络访问社交图元素、与社交图元素相关联的信息或与社交图元素相关联的内容对象。作为实例,对应于特定照片的特定概念节点204可具有隐私设置,该隐私设置指定照片可能仅被在照片中标记的用户及其好友访问。在具体实施例中,隐私设置可允许用户选择让或者选择不让他们的动作由社交网络系统160记录或者与其他系统(例如,第三方系统170)共享。在具体实施例中,与对象相关联的隐私设置可指定允许的访问或拒绝访问的任何合适的粒度。作为实例,可针对以下群体指定访问或拒绝访问:特定用户(例如,只有我、我的室友和我的老板)、特定分离程度内的用户(例如,好友或好友的好友)、用户组(例如,游戏俱乐部、我的家庭)、用户网络(例如特定雇主的雇员、特定大学的学生或校友)、所有用户(“公开”)、无用户(“私人”)、第三方系统170、特定应用(例如,第三方应用、外部网站)的用户,其他合适的用户或实体或其任何组合。尽管本公开描述了以特定方式使用特定隐私设置,但是本公开考虑以任何合适的方式使用任何合适的隐私设置。

在具体实施例中,一个或多个服务器162可以是用于执行隐私设置的授权/隐私服务器。响应于来自用户(或其他实体)的对存储在数据存储器164中的特定对象的请求,社交网络系统160可将对该对象的请求发送到数据存储器164。该请求可识别与该请求相关联的用户,并且如果授权服务器基于与该对象相关联的隐私设置确定该用户被授权访问该对象,则该请求可仅被发送给该用户(或该用户的客户端系统130)。如果请求用户没有被授权访问该对象,则授权服务器可防止从数据存储器164中检索所请求的对象,或者可防止所请求的对象被发送给用户。在搜索查询语境中,如果查询用户被授权访问对象,则只能将对象生成为搜索结果。换句话说,该对象可能具有查询用户可见的可见性。如果对象具有对用户不可见的可见性,则该对象可从搜索结果中排除。虽然本公开描述了以特定方式实施隐私设置,但是本公开考虑以任何适当的方式实施隐私设置。

图3示出了实例系统300,其包括连接到社交网络160的一组连接的设备305、网关设备310、控制设备315和后端系统320。连接的设备305、网关设备310、控制设备315和后端系统320可各自包括一个或多个计算机系统,诸如图5的计算机系统500。连接的设备305、网关设备310、控制设备315和后端系统320可经由包括任何合适的连接的任何合适的网络(例如,图1的网络110,具有有线连接、无线连接或者它们的组合)彼此通信。系统300的体系结构可用于存在于定义的物理空间(例如,房屋、办公大楼或公园)内的设备,或者与特定用户或实体相关的一组设备(例如,与用户关联的连接的设备,其中设备位于他们的家中、他们的汽车和/或他们的小型零售业务中;或者属于为一组建筑物管理门锁和警报安全系统的物业管理业务)。在涉及单个物理位置的实施例中,可能仅需要单个网关设备310来将连接的设备305连接到控制设备315和/或后端系统320。然而,将理解的是,多个网关设备310可用于某些实施例(例如,在需要增强无线覆盖的大空间中)。在涉及多个物理位置的实施例中,物理位置(例如、房屋、汽车和商业)中的每一个可各自具有其各自的网关设备310,该网关设备310将该位置的连接的设备305连接到控制设备315和/或后端系统320。如在单个位置实例中那样,将理解,可在每个物理位置中使用多个网关设备310(例如,在需要增强无线覆盖的大空间中)。在具有多个网关设备310的实施例中,每个网关设备310可彼此通信。

连接的设备305可包括用于向网关设备310和/或后端系统320(通过网关设备310)发送与设备305相关联的信息(例如,事件通知)的任何合适的设备。连接的设备305可包括从复杂的嵌入式计算设备到开关,到简单传感器的任何事物。例如,图3中所描绘的连接的设备包括台式计算机、膝上型计算机、冰箱、家庭安全系统、电视机、车辆和单反相机。在具体实施例中,连接的设备305中的一个或多个能操作为检测一个或多个环境条件,诸如一天中的某个时间、一周中的某一天、外面是黑还是亮、室外温度、环境温度,或任何其他合适的环境条件。环境条件可通过以下方式检测:通过使用位于设备上或耦合到设备的传感器的连接的设备305(例如,耦合到恒温器的温度计);通过访问存储在连接的设备305处的信息(例如,本地存储在设备上的时、日或日期信息);通过从另一个连接的设备305、网关310或后端系统320(例如,传感器信息或时、日或日期信息)收集信息;通过从其他源(例如,互联网)收集信息;或者通过从上述任何组合收集信息(例如,使用互联网来确定外面是亮还是暗和/或在特定的一天下午5点47分天气如何)。

网关设备310可包括用于与连接的设备305、控制设备315和/或后端系统320进行接口连接的任何合适的设备。在具体实施例中,网关设备310可能够支持所需的功能以促进对连接的设备305的本地网络控制并且充当可在云中(例如,在后端系统320上)运行的服务的本地网关。在具体实施例中,服务可促进与用户的通信(例如,经由控制设备315)。在具体实施例中,服务和用户可使用自然语言进行通信,然后可由系统300的一个或多个组件(例如,通过控制设备315、网关设备310、后端系统320或其组合)来解析该自然语言。在具体实施例中,用户可使用控制设备315上的消息收发应用来与网关设备310和/或任何连接的设备305(通过网关设备310)进行通信。在具体实施例中,网关设备310可基于运行RASPIAN Linux并支持WiFi、蓝牙、ZWAVE和ZIGBEE电子狗的RASPBERRY PI平台。网关设备310可用于托管在系统300的设备之间接口的网关应用。

控制设备315可包括用于呈现用于与网关设备310和连接的设备305(通过网关设备310)接口的用户界面的任何合适的设备。例如,控制设备315通过安装的应用、浏览器、SMS短信接口或由设备的操作系统提供的接口呈现用户界面,所述操作系统允许控制设备315的用户控制或发送/接收信息到网关设备310和/或连接的设备305。在具体实施例中,控制设备315可包括充当主UX点的一个或多个UI客户端(例如,消息收发服务应用);社交网络应用或其他移动应用——用于初始配置、蓝牙和位置发现的助手应用,以及消息收发应用服务应用不能做的几乎任何许可有关。在具体实施例中,在控制设备315上运行的控制应用可由用户使用以供应连接的设备305。在进一步的实施例中,控制应用可基于特定的场景为用户提供特定的用户体验。在具体实施例中,在控制设备315上运行的控制应用可使得能够查看与连接的设备305相关的信息,由系统300自动生成的规则的设置和管理(诸如使用下面的方法400生成的规则),以及将状态更新从连接的设备305推送到控制设备315上的消息收发应用。

后端系统320可包括用于与系统300中的连接的设备305、网关设备310和控制设备315,以及与后端系统320通信的其它系统中连接的设备、网关设备以及控制设备进行接口并从其聚集数据的任何合适的服务器或服务器组。后端系统320可包括消息收发基础设施325(例如,与控制设备315通信)、在后端系统320的元件和网关设备310之间接口的集成层330(例如平台和/或API,以与不同的连接设备阵列诸如PARSE接口)(和/或控制设备315和/或直接与连接的设备305)。后端系统320可维护设备事件的数据存储器332,该设备事件包括从网关设备310和每个连接的设备305接收的数据以及从其导出的数据。后端系统320还可维护用于一个或多个设备图的数据存储器334,其中网关设备310和每个连接设备305均可由具有连接设备节点的边的设备节点来表示。后端系统320可包括用于处理和分析设备事件、更新设备图并向连接的设备305和/或控制设备315提供反馈和/或指令的设备图智能基础设施335。在具体实施例中,某些功能(例如,评估事件序列并根据本公开为其生成规则)可由网关设备310、后端系统320或其组合提供。

后端系统320还可与社交网络系统160通信。在具体实施例中,后端系统320可利用社交网络系统160、与社交网络系统160相关联的社交图、这样的社交图中的特定身份、提供给社交网络系统160的用户的通知,或其任何组合。例如,后端系统320可基于来自社交网络系统160的信息为一个或多个连接的设备305的用户使用识别信息来确定用特定的连接的设备305执行动作的用户(例如,识别用户执行与连接的设备305相关的用户输入)或者与在连接的设备305处发生的事件相关联的用户(例如,识别打开或解锁门的用户)。

在具体实施例中,网关设备310可具有在其上运行的应用,其中其职责包括理解和处理系统300中的各个连接的设备305的“物理”级别。这可包括例如:发现和提供新的连接的设备305,通过蓝牙、ZIBGEE、ZWAVE、WiFi(经由无线接入点或直接连接);将连接的设备305映射到设备类型和/或设备ID;将设备类型设备到可用能力和/或功能;分组或关联垂直的连接的设备305(诸如具有相同或相似能力的那些,例如“灯”或“门锁”);支持理解各种工业协议(例如ALLJOYN、THREAD、WEAVE、ZIGBEE等);将从后端系统320传递的特定意图(例如,与特定设备ID相关联)翻译为直接控制和查询消息(例如,从网关设备传递的“设备ID XXX打开”→“Phillips Hue设备ID XXX打开”);将特定设备通知翻译成可由后端系统320解释的逻辑通知(例如,“August SmartLock设备ID XXX解锁”→“设备ID XXX解锁”)或传送给控制设备315。在具体实施例中,虽然网关设备301可在物理和逻辑设备之间执行一些映射,它可将这些映射转换成机器可读的结构化格式。

在具体实施例中,在网关设备310上运行的网关应用可支持多个不同供应商或制造商的连接设备305。例如,网关应用可支持发现和供应来自多个供应商(例如,PHILLIPS HUE、BELKIN WEMO WiFi开关、ZIGBEE或ZWAVE智能开关)的两个以上连接的灯;控制来自不同供应商(例如,LOCKITRON,AUGUST)的一个或多个预先提供的智能锁;通过WiFi连接的扬声器和/或智能电视以及网关设备本身(例如,经由HDMI端口)将音乐和/或视频控制和流传输到多个目标。

在具体实施例中,后端系统320可包括在其上运行(或在云中)的与网关设备310通信的应用或服务。其可处理与消息收发应用和自然语言处理系统(NLP)的集成,将用户的意图翻译成特定的逻辑设备控制意图(例如使用NLP和语境感知)以及推断涉及多个设备的复杂行为规则的机器学习(ML)。在具体实施例中,后端系统320可仅通过网关设备310与个别连接设备305交互。在具体实施例中,后端系统320可处理逻辑设备(例如,“灯”vs“PHILLIPS HUE”)、由用户赋予的别名(例如,“前廊灯”)和设备组(例如“所有灯”)。这样,后端系统320可提供以下接口和能力中的一个或多个:

1.由家庭网关提供的具有逻辑ID的设备的人命名关联(例如,用户为设备ID选择名称“前门灯”);沿着水平对设备进行分组/关联(相同的位置,例如“客厅”或“前门”);

2.将设备能力映射到人输入/输出命令;

3.将与分配了设备的特定名称相关联的用户传递的特定意图翻译成基于设备ID的动作(例如,“打开前廊灯”→“设备ID XXX打开”);

4.将由家庭网关传递的特定设备通知翻译成人类可读的格式(例如,“设备ID XXX解锁”→“前门解锁”)。

在具体实施例中,由系统300提供的附加特征可包括:一个或多个连接的设备305通过消息收发应用的NLP控制和通知,用户对设备的显式分组以及创建和执行多设备指令(例如,“当前门被解锁时,打开灯”)。

在具体实施例中,为了能够以语境感知的方式来解释命令,逻辑依赖设备图的视图,基于用户ID(想要采取行动的用户)和/或位置信息(例如,基于信号,像移动网络周围的小区ID、WiFi地理位置、可见的SSID等,除了经由GPS坐标的强定位之外)。例如,用户可能与多个网关设备310(例如,主要家庭住宅、周末公寓和次要住宅)相关联,在这种情况下,位置信息可确定特定命令应该应用于哪些设备。在具体实施例中,系统300(通过后端系统320和/或网关设备310)可提供设备图中的用户角色设置(用户、命令和基于位置的)的配置(例如,许可模型可允许配置完全控制的管理员角色和有限权限的受限用户角色)。例如,用户可能不希望他们的孩子(在立体声系统所在的客厅中玩耍的孩子)在他在家庭办公室中工作时改变用户当前正在享受的音乐。

在具体实施例中,系统300(例如,使用后端系统320和/或网关设备310)可学习用户的习惯和行为,并且可根据这些习惯和行为来生成自动规则。例如,当用户下班后回家时,用户通常可立即打开他们的立体声。系统300的一个或多个组件可检测到这种习惯,并且生成当在晚上的特定时间之后用户解锁或打开门时打开立体声的规则。

在具体实施例中,系统300可通过分析在特定时间段内(例如,在最大时间量内)发生的事件序列来获知用户的行为、趋势和习惯,并且可确定事件序列的得分。在得分达到某个阈值时,可为事件序列生成规则,并且该规则可由系统使用。在具体实施例中,在评估事件序列和/或为此产生规则时,系统300可考虑环境条件(例如,现在是什么时间、一周中的哪一天(例如,周末与工作日)、外面是亮还是暗、建筑物内部或外部的温度(或两者)等)。在进一步的实施例中,规则对于每个事件序列可以是特定的,并且每个序列都会有例外。例如,使用上述用户回家的例子以及立体声自动开启的例子,该规则可具有基于时间的例外,直到下午5点之后才打开立体声,或者可能在用户周末回家时不打开立体声。

在具体实施例中,由连接的设备305生成事件(例如,门被解锁或打开/关闭,浴室中的灯被打开等)。在事件发生之后,可评估在特定时间段(例如1分钟、5分钟或10分钟)内之后发生的事件。评估可查看事件序列中的每个事件和/或条件因素(例如,环境条件或当时连接的设备305的状态)之间的增量或时间片,并且可确定事件序列是习惯的和/或有意的,或其他。例如,系统300可确定事件序列是否先前已经发生,并且可相应地确定或调整与事件序列相关联的得分。

例如,在具体实施例中,当事件发生时,评估特定时间增量(在本段落中被称为Dmax,在一些实施例中可以是1分钟,或者在其他实施例中通过实验确定)内的事件(例如,事件1,事件2,……)。然后基于以下等式为该序列生成得分:

得分=1-∏(Dmax-min(deltaN,Dmax))/Dmax

评分可相对于之前的事件序列和/或事件序列周围的条件来评估。如果先前已经发生了具有相同条件的事件序列,那么可将得分相乘或以其他方式修改。在得分或得分调整之后,可使用稍后的计算来确定得分是否超过某个阈值。如果得分超过阈值,则可生成一个规则,以便将来在看到发生特定事件和/或条件时自动实施事件序列。使用上述实例,当系统300检测到用户在晚上(例如,下午5点以后)解锁门时,系统300可向立体声发送指令以打开(例如,使用如下所述的推送命令)。下面参考图4描述用于基于检测到的事件序列来生成规则的实例方法。

在具体实施例中,规则运行时解释程序可在后端系统320上运行,并且包括读取本地存储的规则的JAVASCRIPT应用,产生主进程(例如,将指令推送到连接的设备305)并监视任何输出。后端系统然后可(a)解析从集成层330接收的推送的数据,并且(b)基于解析的信息进行以下一项或多项:更新规则;在本地存储新规则;执行设备控制;执行查询;发现设备;解析规则;等待规则指示的触发(例如,时间或传感器测量);在触发器上执行事件;执行设备控制;运行允许经由本地网络触发规则的本地网络服务器。

实例推送协议

实例设备指令

在具体实施例中,来自集成层330的推送可为如下所示的卷曲格式:

在具体实施例中,应用ID(例如,设备ID)和REST密钥应当从正在使用的特定设备中获取。当前应用的ID/密钥是:“ro2sqHypZCVs4qe6dwvj31gOYLaux6hBFGd6J54g”,“dl5gBnYcsubgJtG91dGPYi0x40rFWu2ZyNxJ6inZ”。在具体实施例中,当将推送引导至单个连接的设备305或特定的连接的设备305时,可使用where语句。在具体实施例中,可省略where从句以向所有连接的设备305发送推送。在具体实施例中,“网关安装ID(gateway installation ID)”是为每个连接的设备305生成的唯一识别符。在某些实施例中,它也可被存储在集成层330中。在具体实施例中,“command”可是以下之一:规则(rule)、发现(discover)、查询(query)、控制(control)或更新(update)。这些命令中的每一个都需要特定的字段来遵循命令键(下面将对此进行概述)。

在具体实施例中,规则命令的推送数据字段可采用如下所示的格式:

在具体实施例中,“command”与以上相同。在这种情况下,它指定当前推送处理规则。在具体实施例中,“action”字段指定了规则将发生什么——“更新”或“删除”。如果没有指定,它将默认更新。应该使用更新来创建或更新规则,删除将删除规则。在具体实施例中,“rule_id”字段指定将对哪个规则起作用。即使正在创建新规则(在这种情况下,它将被用作新规则的ID),它也必须始终指定。它也可能是独一无二的。在具体实施例中,“rule-data”字段仅用于更新动作并且不用于删除动作。它包含将用于更新/保存规则的数据。特定字段如下。在进一步的实施例中,“name”字段指定规则的名称。这通常应该是用户可用来引用它的规则的更友好的名称。

在进一步的实施例中,“trigger”字段被用于指定规则的触发。支持两种类型的触发器——基于设备的触发器,当设备进入特定状态时触发,以及基于时间的触发器,用于启动cron作业。在具体实施例中,触发字段可看起来像下面的实例。除了不支持“时间”,“event”字段的结构可与条件中的“state”字段相同。

在具体实施例中,“cron”字段为规则指定cron作业,这将导致规则在特定时间被执行。只有当触发器的事件字段是字符串“time”时才会被引用。在具体实施例中,“conditions”字段允许在执行规则之前指定进一步的条件。它被形成为支持AND、OR和NOT逻辑运算符的JSON树。它可进一步用于检查当前时间,以及设备是否处于特定状态。下面显示了条件字段的实例。

在进一步的实施例中,“type”字段指定这是状态检查还是逻辑操作。如上所述,支持的逻辑运算是AND、OR和NOT。支持三种状态检查:值、范围和时间。

在进一步的实施例中,“check_type”字段被用于指定被定义的状态检查的类型。逻辑操作不需要。值检查用于确保设备处于特定状态。范围检查提供与值检查相同的功能,除了允许指定一个范围的值。时间检查用于指定执行规则的时间。在具体实施例中,如果定义了范围或时间检查,则必须“range_min”和“range_max”字段。在具体实施例中,如果定义了值检查,则必须指定“value”。

在进一步的实施例中,“state_name”字段用于指定被检查的特定参数。对于范围和值检查,这些是被检查的设备的值。对于时间检查,这可以是分钟、小时、日期、日或月。要指定时间检查的确切值(类似于值检查,但是是对于时间),则应在range_min和range_max字段中使用相同的数字。

在具体实施例中,“action”字段准确地告诉规则如果规则被触发并且条件满足将发生什么。下面是一个实例。在进一步的实施例中,“deviceld”字段指定将在哪个设备上执行动作。在进一步的实施例中,“action”字段显示了设备上应该改变哪些参数以及每个参数应该设置什么。注意:当前这些应该与控制命令使用的格式相同,除了只有一个参数应该在阵列的单个元素中指定。

在具体实施例中,完整规则可看起来像如下的实例:

在具体实施例中,发现(discover)命令不需要进一步的论证。因此,完整的发现命令可能会出现类似于以下实例:

在具体实施例中,命令需要查询的设备的ID以及它是什么类型的设备。查询命令可能会出现类似于以下实例:

在具体实施例中,给定在命令中传递的参数,命令使网关设备310改变连接设备305的当前状态。参数对应于所控制的连接设备305的类型,因此可根据所连接的设备305的类型来格式化命令。实例命令如下所示:

在具体实施例中,设备云(例如,家中的系统300)可在云中具有相应的实例。每个设备动作(用户命令、设备事件等)都可记录并通过设备云实例的消息收发队列发送。配方可能包含一个或多个规则。规则可具有设备动作,该动作可用定时执行或由另一个动作触发。特定的设备云实例可具有用于消化设备动作消息收发队列的规则执行引擎并执行规则。在某些实施例中,可存在结合许可、能力、事件和动作的规则。

在具体实施例中,基本规则可以是:

在具体实施例中,时间表规则可以是:

在具体实施例中,触发规则可以是:

在具体实施例中,执行引擎可以是:

图4示出了用于为网络上的连接设备生成并执行基于行为的规则的实例方法400。为了便于参考,下面参照图3的系统300中的某些设备来描述方法400。然而,将会理解,根据本公开,方法400的步骤可由设备云中的任何合适的设备来执行。方法400可通过使用由系统(例如,类似于图5的计算机系统500的计算机系统)的一个或多个计算设备包括的一个或多个处理器来执行在计算机可读介质中包含的软件或其他指令来执行。

方法400在步骤410开始,其中后端系统320接收与一个或多个连接的设备305相关联的事件的通知。可直接地或经由网关设备310从一个或多个连接的设备305接收事件通知。事件通知可以以任何合适的格式发送,诸如纯文本或XML。在具体实施例中,事件通知可包括关于发送通知的连接的设备305发生特定事件的指示。例如,当门被解锁时,锁(即,系统300的连接设备305)可向网关设备310发送指示解锁事件的通知。然后,网关设备310可以以与锁设备发送的格式相同的格式或不同的格式将通知转发到后端系统320。在具体实施例中,事件可以是连接的设备305(或控制设备315)处的用户输入。例如,用户在晚上下班回家后可命令立体声打开。发送的命令因此可以是所述事件,或者立体声打开可以是事件,或者两者兼而有之。

在步骤420,后端系统320评估连接的设备305的事件序列。事件序列可包括与在特定时间段内发生的一个或多个连接的设备305相关联的两个以上事件。事件序列可包括用于单个连接的设备305或多个连接的设备305的事件。因此,对于接收到的每个事件通知,后端系统320可分析该事件和在特定时间段内发生的下一个事件,以确定事件序列(如果事件发生的话)是否应成为将来事件发生时自动执行的规则。在某些实施例中,特定时间段可已是预先确定的,并且可以是例如1分钟、5分钟或10分钟。在其他实施例中,可使用历史数据来确定特定时间段。这可包括确定与所生成的规则相关联的事件序列中的两个事件的最大时间差。例如,后端系统320可查看所生成的规则中的事件序列的第一事件和最后事件之间的最大时间差。此外,用户可能开始拒绝或删除他们不希望自动的规则。基于这些拒绝,后端系统320可确定作为规则保存的事件序列的最大时间量,并且可将这个时间量用作评估事件序列的最大时间量。

在具体实施例中,评估多个事件序列可包括确定与每个事件序列相关联的得分。在某些实施例中,可基于事件序列中的两个以上事件之间的时间差来确定每个事件序列的得分。例如,在事件序列的事件彼此紧密地发生的情况下,事件序列可能具有相对高的得分。相反,在事件序列的事件彼此发生很多分钟,则该事件序列可具有相对较低的得分。在某些实施例中,可使用以下公式来确定:

得分=1-∏(Dmax-min(deltaN,Dmax))/Dmax,其中

Dmax是指特定的时间段;并且

deltaN是指事件序列中的第N个事件与事件序列中的按时间顺序排列的第一事件之间的时间量。

在具体实施例中,评估事件序列可包括确定事件序列基本与另一事件序列相同并相应地修改与事件序列相关联的得分。例如,在事件序列先前已经发生的情况下,这样的事件序列的得分可乘以某个因子。

在步骤430,后端系统320基于在步骤420评估的事件序列来生成多个规则。在具体实施例中,生成规则可包括确定与事件序列相关联的得分已经超过阈值。该阈值在某些实施例中可预先确定,或者在其他实施例中通过实验确定。例如,可分析由用户保存或拒绝的规则的得分以确定用于生成未来规则的阈值。

在具体实施例中,是否生成规则可基于在所评估的事件序列期间存在的一个或多个环境条件。一个或多个环境条件可包括以下中的一个或多个:一天中的时间、一周中的某一天、外部温度(例如,连接的设备位于内部)或环境温度(即,连接的设备周围、外部或内部)。例如,下班回家的用户可能每天晚上打开立体声,但是到家吃午饭或者周末时可能不这样做。因此,在用户解锁门后自动打开立体声的规则可能仅在工作日下午5点之后发生门的解锁时触发。

在具体实施例中,所生成的规则可进一步基于所评估的事件序列开始时所连接的设备的状态。例如,事件序列可包括解锁门,然后打开立体声(每个设备是连接的设备305)。当这个事件序列发生时,有时一个或多个灯可能开启,有时它们可能关闭,这可能是因为如果有人已经在家(即为什么灯已经开启),用户不打开立体声。因此,在这个实例中,用于自动打开立体声的规则可基于家中的一个或多个灯是否已经打开。

在具体实施例中,可生成与多个规则中的至少一个规则相关联的例外。在一些实施例中,例外可由后端系统320生成。例如,在评估解锁门和打开立体声的事件序列时,后端系统320可确定事件序列仅在或大部分在工作日期间发生。这样,后端系统320可生成规则的例外,该规则规定当用户解锁门时立体声被打开,该例外指示周末的例外。在其他实施例中,例外可由系统的用户生成。例如,在用户解锁门时指示立体声被开启的规则生成之后,用户(经由控制设备315)可指示周末的例外。

在步骤440,后端系统320接收针对连接的设备305的事件通知。在步骤430,后端系统320已经生成了一个或多个规则之后,可接收通知。事件通知可指示已经在第一连接的设备305处发生第一事件。

在步骤450,后端系统320确定在步骤440处接收到的事件是否与在步骤430处生成的任何规则相关联。在具体实施例中,这可包括确定多个规则中的第一规则是基于第一事件,针对该事件在步骤440接收通知。在一些实施例中,该步骤可包括后端系统320分析已经生成的规则以确定哪些规则具有以第一事件开始的事件序列(即在事件序列中按时间顺序排列的为第一的那些)。该步骤可进一步包括确定那些具有以第一事件开始的事件序列的中的哪些规则具有一个或多个匹配条件(例如,环境条件)。

如果该事件不与任何规则相关联,则该方法返回到步骤440,在步骤440,后端系统320等待从连接的设备305接收附加事件通知。如果在步骤450接收到的事件与特定规则相关联,则在步骤460后端系统320根据特定规则向连接的设备305发送指令。这些指令可作为消息的一部分被发送到与该规则相关联的连接的设备305(即那些参与作为该规则的一部分的事件序列的)。指令可直接或经由网关设备310发送到连接的设备305。指令可以是用于在特定连接的设备305上执行动作的任何合适的格式。在一些实施例中(例如具有来自不同供应商的设备的那些实施例)包括指令的每个相应消息的格式对于每个连接的设备305可以是不同的。在某些实施例中,指令可以是与以上参照图3讨论的推送规则命令格式相同的格式。在上述门锁和立体声实例中,该步骤可因此包括在检测到在晚上没有灯光的情况下门已经解锁的情况下向立体声发送指令以打开(或者执行一个或多个其他动作)。

在适当的情况下,具体实施例可重复图4的方法400的一个或多个步骤。尽管本公开描述和图示了以特定顺序发生的图4的方法的特定步骤,但本公开考虑以任何合适的顺序发生的图4的方法的任何合适的步骤。此外,尽管本公开内容描述了执行图4的方法400的特定步骤的特定组件、设备或系统,本公开考虑执行图4的方法400的任何合适的步骤的任何合适的部件、设备或系统的任何合适的组合。

图5示出了实例计算机系统500。在具体实施例中,一个或多个计算机系统500执行在此描述或示出的一个或多个方法的一个或多个步骤。在具体实施例中,一个或多个计算机系统500提供在此描述或示出的功能。在具体实施例中,在一个或多个计算机系统500上运行的软件执行在此描述或示出的一个或多个方法的一个或多个步骤,或者提供在此描述或示出的功能。具体实施例包括一个或多个计算机系统500的一个或多个部分。这里,在适当的情况下,对计算机系统的引用可涵盖计算设备,反之亦然。此外,在适当的情况下,对计算机系统的引用可涵盖一个或多个计算机系统。

本公开考虑任何合适数量的计算机系统500。本公开考虑采取任何合适的物理形式的计算机系统500。例如,计算机系统500可以是嵌入式计算机系统、片上系统(SOC)、单板计算机系统(SBC)(例如,诸如模块上计算机(COM)或模块上系统(SOM))、台式计算机系统、膝上型或笔记本计算机系统、交互式信息亭、大型机、计算机系统网格、移动电话、个人数字助理(PDA)、服务器、平板计算机系统、增强/虚拟现实设备或其中两种或更多种的组合。在适当的情况下,计算机系统500可包括一个或多个计算机系统500;单一或分布式的;跨越多个地点;跨越多台机器;跨越多个数据中心;或驻留在云中,云可包括一个或多个网络中的一个或多个云组件。在适当的情况下,一个或多个计算机系统500可在没有大量的空间或时间限制的情况下执行本文描述或示出的一个或多个方法的一个或多个步骤。作为实例,一个或多个计算机系统500可实时或以批处理模式执行本文描述或示出的一个或多个方法的一个或多个步骤。在适当的情况下,一个或多个计算机系统500可在不同的时间或在不同的位置执行在此描述或示出的一个或多个方法的一个或多个步骤。

在具体实施例中,计算机系统500包括处理器502、存储器504、存储设备506、输入/输出(I/O)接口508、通信接口510和总线512。尽管本公开描述和图示了以特定布置的具有特定数量的特定组件的特定计算机系统,但是本公开考虑以任何合适的布置的具有任何合适数量的组件的任何合适的计算机系统。

在具体实施例中,处理器502包括用于执行指令的硬件,诸如构成计算机程序的指令。作为实例,为了执行指令,处理器502可从内部寄存器、内部高速缓存、存储器504或存储设备506中检索(或取出)指令;解码并执行它们;然后将一个或多个结果写入内部寄存器、内部高速缓存、存储器504或存储设备506。在具体实施例中,处理器502可包括用于数据、指令或地址的一个或多个内部高速缓存。在适当的情况下,本公开考虑包括任何合适数量的任何合适的内部高速缓存的处理器502。作为实例,处理器502可包括一个或多个指令高速缓存、一个或多个数据高速缓存以及一个或多个翻译后备缓冲器(TLB)。指令高速缓存中的指令可以是存储器504或存储设备506中的指令的副本,并且指令高速缓存可加速处理器502对那些指令的检索。数据高速缓存中的数据可以是存储器504或存储设备506中的数据的副本,所述存储器504或存储设备506用于在处理器502处执行以进行操作;在处理器502处执行的先前指令的结果,用于由在处理器502处执行的后续指令进行访问或用于写入存储器504或存储设备506;或其他合适的数据。数据高速缓存可加速处理器502的读取或写入操作。TLB可加速处理器502的虚拟地址翻译。在具体实施例中,处理器502可包括用于数据、指令或地址的一个或多个内部寄存器。本公开考虑在适当的情况下包括任何合适数量的任何合适的内部寄存器的处理器502。在适当的情况下,处理器502可包括一个或多个算术逻辑单元(ALU);可以是多核处理器;或者包括一个或多个处理器502。虽然本公开描述和示出了特定处理器,但是本公开考虑任何合适的处理器。

在具体实施例中,存储器504包括主存储器,用于存储用于处理器502执行的指令或用于处理器502操作的数据。作为实例,计算机系统500可将来自存储设备506或另一个源(诸如例如,另一个计算机系统500)的指令加载到存储器504。处理器502然后可将来自存储器504的指令加载到内部寄存器或内部高速缓存。为了执行指令,处理器502可从内部寄存器或内部高速缓存中检索指令并对它们进行解码。在执行指令期间或之后,处理器502可将一个或多个结果(其可以是中间结果或最终结果)写入内部寄存器或内部高速缓存。处理器502然后可将这些结果中的一个或多个写入存储器504。在具体实施例中,处理器502仅执行一个或多个内部寄存器或内部高速缓存中或存储器504中的指令(与存储设备506或其他地方相反)并仅在一个或多个内部寄存器或内部高速缓存或存储器504中的数据上操作(与存储设备506或别处相反)。一个或多个存储器总线(其每一个可包括地址总线和数据总线)可将处理器502耦合到存储器504。总线512可包括一个或多个存储器总线,如下所述。在具体实施例中,一个或多个存储器管理单元(MMU)驻留于处理器502与存储器504之间,且促进对由处理器502请求的存储器504的存取。在具体实施例中,存储器504包含随机存取存储器(RAM)。在适当的情况下,该RAM可以是易失性存储器。在适当的情况下,该RAM可以是动态RAM(DRAM)或静态RAM(SRAM)。而且,在适当的情况下,这个RAM可以是单端口或多端口的RAM。本公开考虑任何合适的RAM。在适当的情况下,存储器504可包括一个或多个存储器504。尽管本公开描述并示出了特定的存储器,但是本公开考虑任何合适的存储器.

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

在具体实施例中,I/O接口508包括提供用于计算机系统500与一个或多个I/O设备之间的通信的一个或多个接口的硬件、软件或两者。在适当的情况下,计算机系统500可包括这些I/O设备中的一个或多个。这些I/O设备中的一个或多个可实现个人和计算机系统500之间的通信。作为实例,I/O设备可包括键盘、小键盘、麦克风、监视器、鼠标、打印机、扫描仪、扬声器、手写笔、平板计算机、触摸屏、轨迹球、摄像机,另一种合适的I/O设备或其中两种或更多种的组合。I/O设备可包括一个或多个传感器。本公开考虑任何合适的I/O设备以及它们的任何合适的I/O接口508。在适当的情况下,I/O接口508可包括使处理器502能够驱动这些I/O设备中的一个或多个的一个或多个设备或软件驱动器。在适当的情况下,I/O接口508可包括一个或多个I/O接口508。尽管本公开描述和示出了特定的I/O接口,但本公开考虑任何合适的I/O接口。

在具体实施例中,通信接口510包括在计算机系统500与一个或多个其他计算机系统500或一个或多个网络之间提供用于通信(例如,基于分组的通信)的一个或多个接口的硬件、软件或二者。作为实例,通信接口510可包括网络接口控制器(NIC)或网络适配器,用于与以太网或其他基于有线的网络通信;或无线NIC(WNIC)或无线适配器,用于与诸如WI-FI网络的无线网络通信。本公开考虑任何合适的网络以及其任何合适的通信接口510。作为实例,计算机系统500可与自组织网络、个人区域网络(PAN)、局域网(LAN)、广域网(WAN)、城域网(MAN)或者互联网的一个或多个部分或者两个以上这些的组合进行通信。一个或多个这些网络的一个或多个部分可以是有线或无线的。作为实例,计算机系统500可与无线PAN(WPAN)(诸如,例如,蓝牙WPAN)、WI-FI网络、WI-MAX网络、蜂窝电话网络(诸如例如,全球移动通信系统(GSM)网络)或其他合适的无线网络或者这些中的两个以上的组合进行通信。在适当的情况下,计算机系统500可包括用于这些网络中的任何一个的任何合适的通信接口510。在适当的情况下,通信接口510可包括一个或多个通信接口510。尽管本公开描述和示出了特定的通信接口,但本公开考虑任何合适的通信接口。

在具体实施例中,总线512包括计算机系统500的硬件、软件或两者耦合组件。作为实例,总线512可包括加速图形端口(AGP)或其他图形总线、增强型工业标准体系结构(EISA)总线、前端总线(FSB)、超级链路(HT)互连、工业标准体系结构(ISA)总线、INFINIBAND互连、低引脚数(LPC)总线、存储器总线、微通道体系结构(MCA)总线、外围组件互连(PCI)总线、PCI-Express(PCIe)总线、串行高级技术附件(SATA)总线、视频电子标准协会本地(VLB)总线或其他合适的总线或者这些中的两个以上的组合。在适当的情况下,总线512可包括一个或多个总线512。尽管本公开描述并图示了特定的总线,但是本公开考虑任何合适的总线或互连。

在本文中,计算机可读非暂时性存储介质可包括一个或多个基于半导体的或其他集成电路(IC)(诸如例如现场可编程门阵列(FPGA)或特定应用程序集成电路(ASIC))、硬盘驱动器(HDD)、混合硬盘驱动器(HHD)、光盘、光盘驱动器(ODD)、磁光盘、磁光盘驱动器、软盘、软盘驱动器(FDD)、磁带、固态驱动器(SSD)、RAM驱动器、SECURE DIGITAL卡或驱动器,任何其他合适的计算机可读非暂时性存储介质,或者这些中的两个以上的任何合适的组合。计算机可读非暂时性存储介质在适当的情况下可以是易失性、非易失性或易失性和非易失性的组合。

在本文中,“或者”是包含性的而不是排他性的,除非另有明确指示或者上下文另有指示。因此,在本文中,除非另有明确指示或者上下文另有指示,否则“A或B”是指“A、B或两者”。此外,“和”既是联合的分开的,除非另有明确指示或者上下文另有指示。因此,在本文中,除非另有明确指示或者上下文另有指示,否则“A和B”意指“A和B,联合或分开地”。

本公开的范围涵盖本领域的普通技术人员将理解的对在此描述或示出的实例实施例的所有改变、替换、变化、更改和修改。本公开的范围不限于在此描述或示出的实例实施例。此外,尽管本公开在本文中将各个实施例描述和示出为包括特定组件、元件、特征、功能、操作或步骤,但是这些实施例中的任何一个可包括本领域普通技术人员将理解的在本文任何地方描述或示出的任何组件、元件、特征、功能、操作或者步骤的任何组合或置换。此外,在所附权利要求中对适于、被布置为、能够、被配置为、使得能够、操作为或能操作来执行特定功能的设备或系统或者设备或者系统的组件包括该设备、系统、组件,不管该特定功能是否激活、打开或解锁,只要该设备、系统或组件适于、被布置为、能够、被配置为、使得能够、操作为或能操作。另外,尽管本公开将具体实施例描述或示出为提供特定优点,但是具体实施例可不提供这些优点或提供这些优点中的一些或全部。

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