CN104756074A - 作为移动应用的平台的规则引擎 - Google Patents
作为移动应用的平台的规则引擎 Download PDFInfo
- Publication number
- CN104756074A CN104756074A CN201380056230.3A CN201380056230A CN104756074A CN 104756074 A CN104756074 A CN 104756074A CN 201380056230 A CN201380056230 A CN 201380056230A CN 104756074 A CN104756074 A CN 104756074A
- Authority
- CN
- China
- Prior art keywords
- rule
- situation
- module
- sample
- regulation engine
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Telephone Function (AREA)
- Stored Programmes (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明揭示用以将规则引擎优化为计算系统内的平台的系统及方法。所述计算系统可识别所关注的情境,例如所述计算系统或所述计算系统的用户的环境或情况。基于所述所识别的所关注的情境,规则引擎平台可选择性地识别与所述所关注的情境相关的规则或规则集合。因此,可从评估省略与所述所关注的情境不相关的规则或规则集合。因此,在一些实施例中,可通过消解规则之间的冲突及评估导致不适合于所述所关注的情境的动作的规则而不消耗所述计算系统的资源。
Description
技术领域
本发明大体上涉及例如实施于计算系统中的便携式电子装置。
背景技术
一般人群对便携式电子装置的使用在全球无处不在。此些便携式电子装置可向用户提供例如无线电话存取、因特网存取、电子邮件及消息传递服务、时间及活动组织、位置及映射服务、媒体呈现及额外服务等一或多个服务。此些便携式电子装置的实例包含:移动设备、智能电话、蜂窝式电话、个人数字助理(PDA)、平板计算机、个人媒体播放器以及提供类似功能性的任何其它类型的便携式电子装置。
在向用户提供一系列服务的过程中,便携式电子装置可操作以收集、观测及管理众多属性。一些属性可与装置的用户相关联,例如由经由用户输入接收的项目填充的日程安排表。其它属性可为装置的静态及/或动态特性,例如装置的随机存取存储器(RAM)容量或装置的电池上剩余的电荷水平。便携式电子装置上的应用程序可致使装置响应于此些收集或观测的属性而执行特定操作。举例来说,所述应用程序可致使装置在观测的电池电荷降低时停用Wi-Fi连接性。然而,此些应用程序在装置上的实施点处为静态的,而不管应用程序中的少量预定义选项(例如,甚至在装置的电池被视为“降低”的情况下,用户可配置应用程序以实现Wi-Fi连接性)。各自个别地请求例如电池电荷或地理位置等属性的装置上的多个应用程序对于装置的处理器及电源两者来说是昂贵的。
发明内容
本发明的实施例涉及可操作以提供规则引擎平台的便携式电子装置。在一个实施例中,便携式电子装置中的规则引擎平台可接收便携式电子装置的一或多个模块(例如,组件)的多个规则。另外,规则引擎可从便携式电子装置内的模块中的一或多者接收一或多个样本。样本可为来自传感器的原始输入数据、来自传感器的经处理数据、来自例如日历等运行于便携式电子装置上的应用程序的数据、用户配置文件、社交网络信息或可由模块提供的任何其它数据。在一些实施例中,样本包括由情境感知引擎导出的样本,例如运动状态或分类器或社交环境或样本。样本或从样本的推断可经确证为规则引擎可匹配一或多个相关规则的事实。规则引擎可基于经确证事实来评估相关规则以确定一或多个动作(包含评估另一规则)。在一些实施例中,规则的此评估包括基于一或多个所接收样本进行一或多个推断。在规则评估为真的情况下,规则引擎确定可包含评估额外规则的动作。接着可将此经确定动作提供到便携式电子装置内的其它模块。
本发明的实施例包含将规则引擎优化为便携式电子装置内的平台的其它组件。在许多实施例中,结合规则引擎提供规则引擎接口以将规则引擎优化为平台。规则引擎接口可经配置以从一或多个模块接收或监视一或多个样本,且针对规则引擎适当地调适那些一或多个样本。作为平台的补充组件,可在一些实施例中提供规则存储库及/或知识存储库。规则存储库可经配置以存储可由规则引擎存取的多个规则。知识存储库可操作以存储例如样本或推断等多个事实。存储库中的一者或两者可维持资产管理、与规则相关联的推断数据及元数据、与规则引擎交互的样本或模块。
在一些实施例中,设备包括用于基于来自第一取样模块的所接收样本及所预期样本中的至少一者确定所述系统的第一情境的装置;用于识别第一多个规则中的至少一个规则的装置,其中所识别的至少一个规则与第一情境相关;用于对于第一情境评估所识别的相关规则的装置;及用于忽略所述第一多个规则中剩余的与所述第一情境不相关的至少一个规则以使得对于所述第一情境不评估所述至少一个规则的装置。在一些实施例中,用于识别至少一个相关规则的装置包括用于从所述第一多个规则识别包含所述至少一个规则的具有与所述第一情境相关的第二多个规则的相关规则集合的装置。在一些实施例中,设备进一步包括用于评估相关规则集合中的每一规则的装置。在一些实施例中,设备进一步包括用于从所述第一多个规则识别具有与所述第一情境相关且将进行评估的第三多个规则的第二规则集合的装置。在一些实施例中,所述第一情境为所述用户的办公室,且对于办公室情境,所述相关规则集合为相关的。在一些实施例中,所述第一情境为位置及地理围栏中的一者。在一些实施例中,所述第一取样模块为蜂窝式模块、蓝牙模块、Wi-Fi模块、用户输入模块、近场通信模块、卫星定位系统模块或存储于所述系统的存储器中的应用程序模块中的一者。在一些实施例中,设备进一步包括用于识别与所述第一情境相关的至少一个事实的装置。在一些实施例中,设备进一步包括用于分解所述相关规则以识别由所述相关规则所需要的所述至少一个事实的装置。在一些实施例中,用于识别与所述第一情境相关的所述至少一个事实的装置包括用于识别包含所述至少一个事实的具有与所述第一情境相关的多个事实的相关事实集合的装置。在一些实施例中,设备进一步包括用于基于第一情境确证至少一个事实的装置。在一些实施例中,所述第一情境指示所述用户正在驾驶,且所述至少一个事实经确证以指示所述用户正基于所述第一情境进行转变。在一些实施例中,设备进一步包括用于将与所述第一情境不相关的第二事实确证为默认的装置。在一些实施例中,用于确证与所述第一情境不相关的所述第二事实的装置包括:用于识别包含所述第二事实的具有与所述第一情境不相关的多个事实的第二事实集合的装置;及用于将所述第二事实集合中的所述多个事实中的每一事实确证为默认的装置。在一些实施例中,设备进一步包括用于确定针对由第二取样模块提供的第二所接收样本及第二所预期样本中的至少一者的为满足所述相关规则所需要的取样要求的装置;用于基于所述相关规则的所述取样要求计算优化方案的装置;及用于基于所述优化方案修改所述第二取样模块的取样速率的装置。在一些实施例中,用于修改所述取样速率的装置包括用于修改对所述第二取样模块的订制的装置。在一些实施例中,设备进一步包括用于确定满足与所述第一情境相关的规则集合所需要的多个取样要求的装置,其中所述规则集合包括包含所述相关规则的多个规则;用于基于所述相关规则集合的所述多个取样要求计算优化方案的装置;及用于基于所述优化方案修改用以提供所述多个取样要求中的相应取样要求的至少一个样本的第二取样模块的取样速率的装置。在一些实施例中,用于计算优化方案的装置包括:用于评估所述多个取样要求的装置;用于从所述多个取样要求的所述评估确定第一规则的第一取样要求需要以第一速率来自所述第二取样模块的样本且第二规则的第二取样要求需要以不同于所述第一速率的第二速率来自所述第二取样模块的所述样本的装置;及用于计算为所述第一规则及所述第二规则指定令人满意的所述第二取样模块的最优取样速率的优化参数的装置。在一些实施例中,设备进一步包括用于接收由第一取样模块提供的样本的装置,其中用于确定的装置包括:用于识别将提供的样本与所存储情境之间的映射的装置;及用于确定所述第一情境包含所述所存储情境的装置。在一些实施例中,所述样本为Wi-Fi签名,且所述所存储情境为建筑物中的房间。在一些实施例中,设备进一步包括用于导出所述第一情境与第二情境之间的关系的装置。在一些实施例中,所述第一情境指示所述用户在家,且所述第二情境指示所述用户在办公室,且所述经导出关系包含所述用户从所述家行进到所述办公室的行进持续时间。
在一些实施例中,计算系统包括:用于将多个规则存储于规则存储库中的装置;用于订制经配置以提供多个样本的多个模块的装置;用于基于所述订制装置识别所关注的情境的装置;用于识别与所述所关注的情境相关的第一规则集合的装置;及用于评估包含于所述第一规则集合中的至少一个规则的装置。在一些实施例中,用于识别第一规则集合的装置包含用于忽略与所关注的情境不相关的第二规则集合的装置。在一些实施例中,所关注的情境指示计算系统的用户为以下各者中的一者:(1)在会议中、(2)在讨论中、(3)在呼叫中、(4)在地理围栏附近、(5)在一个人附近、(6)在家或(7)正在驾驶。在一些实施例中,计算系统进一步包括用于识别与所关注的情境相关的至少一个事实的装置。在一些实施例中,计算系统进一步包括用于订制第二取样模块及基于所关注的情境修改对第二取样模块的订制的装置。
在一些实施例中,由装置执行的方法包括基于由第一模块提供的至少一个样本确定装置的第一情境;基于第一情境识别第一多个规则中的规则的子集,所述规则的子集适用于第一情境;及评估规则的子集中的至少一个规则。
附图说明
图1为根据本发明的一个实施例的便携式电子装置的框图。
图2为说明根据本发明的一个实施例的在便携式电子装置中提供的规则引擎平台的序列图。
图3A为说明根据本发明的一个实施例的由便携式电子装置中的规则引擎执行的方法的流程图。
图3B为说明根据本发明的一个实施例的由便携式电子装置中的规则引擎执行的方法的流程图。
图4为说明根据本发明的一个实施例的用于通过由便携式电子装置提供的规则引擎平台创建规则的组件的框图。
图5为说明根据本发明的一个实施例的用于通过由便携式电子装置提供的规则引擎平台动态地创建规则的方法的流程图。
图6为说明根据本发明的一个实施例的确证用于通过规则引擎评估规则的事实的方法的流程图。
图7A为根据本发明的一个实施例的通过实施规则引擎平台进行优化的系统的框图。
图7B为根据本发明的一个实施例的在规则引擎平台内的规则存储库的框图。
图7C为根据本发明的一个实施例的在规则引擎平台内的知识存储库的框图。
图8为说明根据本发明的一个实施例的用于优化包含规则引擎的系统的方法的流程图。
图9A为说明根据本发明的一个实施例的用于优化包含规则引擎的系统的方法的流程图。
图9B为说明根据本发明的一个实施例的用于优化包含规则引擎的系统的方法的流程图。
具体实施方式
现在解释参考附图的本发明的若干实施例。本发明的以下描述和附图是说明性并且不应被解释为限制本发明。描述许多特定细节以提供对本发明的各种实施例的透彻理解。然而,在某些情况下,熟知的或常规的细节将不被描述,以便提供对本发明的实施例的简明论述。
在说明书中涉及“一个实施例”或“实施例”意味着结合实施例描述的特定特征、结构或特性可包含在本发明的至少一个实施例中。短语“在一个实施例中”在说明书中的各处的出现不一定皆指代相同实施例。
本文中所描述的实施例提供用于提供规则引擎作为计算系统中的平台的系统及方法。规则引擎平台可经配置以识别所关注的情境,或可能够存取由另一装置或元件确定的情境。从所识别的所关注的情境,规则引擎平台可选择性地识别与所关注的情境相关的规则或规则集合。因此,可从评估省略与所关注的情境不相关的的规则或规则集合。类似地,可识别与所关注的情境相关的事实或事实集合。相关事实可用以评估相关规则,而可忽略与所关注的情境不相关的事实。
图1为说明其中可实践本发明的实施例的系统的框图。系统可为便携式电子装置100,其可为例如智能电话、蜂窝式电话、个人数字助理、平板计算机、个人媒体播放器以及提供类似或组合功能性的任何其它类型的便携式电子装置等任何移动装置。应了解,装置100还可包含触觉按钮、供电装置(例如,电池)以及通常与便携式电子装置相关联的其它组件。因此,图1将不被解释为限制性的,因为省略了一些组件。
在图1处所示的实施例中,装置100包含处理器110,其经配置以执行用于执行数个组件处的操作的指令,且可为例如适合于实施于便携式电子装置内的通用处理器或微处理器。处理器110以通信方式与便携式电子装置100内的多个组件耦合。在一些实施例中,处理器110可驻留于硬件模块101、102内。为了实现此通信耦合,处理器110可跨越总线140与其它所说明的组件通信。总线140可为适合于在装置100内传递数据的任何子系统。总线140可为多个计算机总线,且包含额外电路来传递数据。在一些实施例中,总线140实施于片上系统(SoC)中,且连接一或多个处理器的芯片及/或核心上的各种元件或组件。作为实例,硬件模块101、102可指在移动装置中的个别子系统,例如音频子系统、相机子系统、传感器子系统。
存储装置135及存储器120两者可包含用于处理器110的指令及数据。存储装置135可在本地经由总线140(如图所示)或远程地(例如,云存储)经由网络(例如蜂窝式数据、Wi-Fi或WiMax网络(未图示))来实施。在一些实施例中,存储装置135包含非易失性存储器,例如只读存储器(ROM)、快闪存储器及其类似者。此外,存储装置135可包含可装卸存储装置,例如安全数字(SD)卡。存储装置135可为例如常规磁盘、例如基于CD-ROM或DVD的存储装置等光盘、磁带存储装置、磁光(MO)存储媒体、固态磁盘、基于快闪存储器的装置或适合于存储数据的任何其它类型的存储装置。
存储器120可提供短期及长期存储两者,且实际上可划分成若干单元。存储器120可为易失性的,例如静态随机存取存储器(SRAM)及/或动态随机存取存储器(DRAM)。存储器120可提供用于便携式电子装置100的计算机可读指令、数据结构、应用程序模块及其它数据的存储。可从存储装置135载入此数据。存储器120还可包含高速缓冲存储器,例如位于处理器110中的高速缓冲存储器。在一些实施例中,存储器120可分布到不同硬件模块101到102中。
在一些实施例中,存储器120存储多个应用程序模块105到106。应用程序模块105到106含有将由处理器110执行的特定指令。存储器120可存储任何数目个应用程序模块。应用程序模块105到106可为例如日历应用程序、地理围栏应用程序、电力管理应用程序、智能报警应用程序、社交媒体应用程序(例如,TwitterTM或FacebookTM)或具有将由处理器110执行的指令的任何应用程序型模块。
应了解,可结合由装置100的处理器110及/或装置100的其它电路对指令的执行来实施如下文中将描述的本发明的实施例。确切地说,装置100的电路(包含但不限于处理器110)可在程序、例程或指令的执行的控制下操作,以执行根据本发明的实施例的方法或过程。举例来说,应用程序模块105到106可以固件、软件或硬件来实施,且可由处理器110及/或装置100的其它电路执行。此外,应了解术语处理器、微处理器、电路、控制器等是指能够执行逻辑、命令、指令、软件、固件、功能性及其类似者的任何类型的逻辑或电路。还应注意,处理器110的功能可跨越许多不同子模块及子系统分布,且不一定完全是在一个物理实体中进行。
在一些实施例中,存储器120包含操作系统123。操作系统123可操作以起始由应用程序模块105到106提供的指令的执行,管理硬件模块101到102及/或管理显示模块103及用户输入模块104。操作系统123可经调适以执行跨越装置100的组件的其它操作,包含线程处理、资源管理、数据存储控制及其它类似功能性。
在一些实施例中,便携式电子装置100包含多个硬件模块101到102。硬件模块101到102中的每一者为装置100内的物理模块。然而,虽然硬件模块101到102中的每一者永久地经配置为结构,但硬件模块101到102可暂时经配置以执行特定功能或暂时启动。共同实例为应用程序模块可对相机模块(即,硬件模块)进行编程以用于快门释放及图像俘获。硬件模块101到102可为例如加速度计、Wi-Fi收发器、卫星导航系统接收器(例如,SPS模块)、压力模块、温度模块、音频输出及/或输入模块(例如,麦克风)、相机模块、近程传感器、环境光传感器(ALS)模块、电容性触摸传感器、近场通信(NFC)模块、蓝牙收发器、蜂窝式收发器、磁力计、陀螺仪、惯性传感器(例如,组合加速度计与陀螺仪的模块)、环境光传感器、相对湿度传感器或经配置以提供感官输出及/或接收感官输入的任何其它类似模块。在一些实施例中,硬件模块101到102的一或多个功能可以软件实施。在一个实施例中,硬件模块101到102可经实施为包含例如用以执行一些操作的处理器、存储器(例如,高速缓冲存储器)及其它组件以及传感器数据(例如,原始传感器输出)的子系统。
除了硬件模块101到102及应用程序模块105到106之外,便携式电子装置100可具有显示模块103及用户输入模块104。显示模块103以图形方式向用户呈现来自装置100的信息。可从一或多个应用程序模块105到106、一或多个硬件模块101到102、其组合或用于(例如,通过操作系统123)为用户解析图形内容的任何其它合适的装置导出此信息。显示模块103可为液晶显示器(LCD)技术、发光聚合物显示器(LPD)技术或其它显示器技术。在一些实施例中,显示模块103为电容性或电阻性触摸屏,且可对接触用户的触感及/或触觉敏感。在此类实施例中,显示模块103可包括多点触摸敏感显示器。
用户输入模块104可为用于从用户接受输入的任何装置,例如键盘、轨迹板、触觉按钮、物理开关、触摸屏(例如,电容性触摸屏或电阻性触摸屏)、音频(例如,经由话语)、相机(例如,经由跟踪用户看起来所在的位置)或类似模块。因此,用户输入模块104可跨越多个组件分布。在用户输入模块104经提供为触摸屏的实施例中,用户输入模块104可与显示模块103集成。在甚至另一实施例中,用户输入模块104包括触摸屏接口及触觉按钮(例如,键盘)两者,且因此仅与显示模块103部分集成。用户输入模块104可将用户输入提供到应用程序模块105到106(例如,通过改变设定)及硬件模块101到102(例如,通过造成相机模块的快门释放)。在一些实施例中,用户输入模块104包含麦克风(未图示),以使得可将用户输入接收为声音(例如,语音命令)。
便携式电子装置100包含在此实施例展示为规则引擎接口131、规则引擎132、规则存储库133及知识存储库134的规则引擎平台130。规则引擎平台130可为包含硬件架构及软件框架中的一者或两者的计算平台。在一些实施例中,规则引擎平台130允许模块101到106通过提供架构、一或多个运行时间系统库、图形用户接口及/或计算平台的其它组件来运行。举例来说,规则引擎平台130的一或多个组件131到134可与操作系统123集成。在另一实施例中,规则引擎平台130为中间件平台,所述中间件平台将除了可自操作系统123获得的那些服务之外的服务提供到模块101到106。服务可包含对数据(例如,样本)的存取或由另一模块101到106提供的以其它方式不可用或受限制的其它功能性。
尽管此处展示为实施于存储器120中,但规则引擎平台130的组件131到134不一定紧密地集成,且实际上可单独实施于装置100内。举例来说,规则引擎132可驻留于专用集成电路(ASIC)处或处理器110处,而知识存储库134驻留于存储器120中。或者,规则引擎132可划分成跨越模块101到106分布的个别组件,且可存取与模块101到106相关联的功能性及数据。在一些实施例中,集成规则引擎平台130的一或多个组件131到134。举例来说,规则引擎接口131的某一功能性可与规则引擎132集成,且其它功能性可与存储库133到134集成。
规则引擎接口131促进规则引擎132与模块101到106中的一或多者之间的交互。在许多实施例中,此时处理模块101到106与规则引擎132之间的通信。在一些实施例中,规则引擎接口131提供应用程序编程接口(API)、动态链接库(DLL)或允许模块101到106中的一或多者将数据发送到规则引擎132及/或从规则引擎132接收数据的其它通信资源。
在一些实施例中,规则引擎接口131将从模块101到106接收的数据调适成可由规则引擎132解译的格式。在规则引擎接口131处接收的数据可为样本,所述样本可为与发送模块101到106相关联的任何数据。可存储用以确证事实及/或导出情境的所接收样本。规则引擎132可匹配事实与来自规则库的规则以使得评估规则。规则引擎132可使用规则引擎接口131请求样本,例如,规则引擎132可需要额外样本来评估规则,且可使用规则引擎接口131发送样本请求及接收样本作为响应。
在一些实施例中,规则引擎接口131经配置以订制一或多个模块101到106,因此从经订制模块101到106接收一或多个样本。订制模块101到106可响应于由规则引擎132进行的请求,例如对样本的请求。规则引擎接口131还可经配置以经由例如API等与模块相关联的接口订制模块101到106。规则引擎接口131可基于所接收样本确证事实及/或将样本存储于存储库133到134中。
广泛地,确证事实涉及将事实存储于存储器(例如,存储器120及/或存储装置135)中,以使得事实可用以识别及评估规则。举例来说,可通过将所述事实存储于存储器120中的知识存储库134中来确证事实。确证事实可致使规则引擎132识别或评估一或多个规则。在一个实施例中,确证事实包括验证存在于存储器120中或并未失效的事实。在一些实施例中,确证事实可包括确定事实以使得事实可用以识别及评估规则。
在订制模块101到106时,规则引擎接口131可发布对样本的单个请求(例如,单个查询)或可持久地订制模块101到106(例如,轮询或接收样本流)。在这样做时,规则引擎平台130可例如通过控制何时及/或如何查询及/或利用一或多个模块101到106来监视及管理一或多个资源。在一些实施例中,规则引擎平台130可不被动地等待模块101到106提供样本,而是可主动地导引模块101到106的执行。
在一些实施例中,经由规则引擎接口131由模块101到106订制规则引擎平台130。举例来说,模块101到106可通过请求动作作为响应来订制规则引擎平台130。规则引擎接口131可将一些预订翻译成可由规则引擎132解译的格式,以使得规则接口131可提供有意义的响应,例如在规则引擎132评估规则以确定动作的情况下。作为规则引擎平台130的特征,请求关于第二模块101到106的数据的模块101到106中的相应一者将会将请求发送到规则引擎接口131,且从规则引擎接口131接收动作。在一个实施例中,作为实施于具有规则引擎平台130的装置100内的结果,模块101到106持久地订制规则引擎接口131。
规则引擎平台130可经配置以接受更新规则库的请求,例如添加新规则或更新或移除现有规则的请求。规则引擎接口131可经配置以转译请求以用于由规则引擎132进行解译。因此,在一些实施例中,规则引擎接口131包含规则转译器(未图示)或与规则转译器耦合,所述规则转译器可为编译程序、解译程序或用于转译规则的类似资源。规则引擎接口131接着可根据请求更新规则存储库133中的规则库,以使得规则引擎132可评估经更新的规则。在规则引擎接口131处的此转译允许在运行时间实施对规则库的更新。因此,规则引擎平台130实现装置100的运行时间定制、情境感知、智能服务及类似特征。
模块101到106可将对规则库的更新提供到规则引擎接口131。举例来说,便携式电子装置100的用户可经由用户输入模块104输入规则,例如作为发声用户输入或触摸用户输入接受的新规则。在一些实施例中,用户可经由创建、修改或删除规则的模块101到106中的一者定义参数,例如在用户改变模块101到106的设定的情况下。在一些实施例中,用户可使用用户输入模块104输入以高级语言撰写的规则。
规则引擎132可实施RETE算法(例如,DROOLS规则引擎)来评估规则及确定动作。简洁地,规则引擎132经配置以识别条件(例如,从一或多个样本确证的事实或事实的集合),且匹配规则。在许多实施例中,规则定义条件与结果之间的条件关系。此关系在口语中常常被称作“如果-那么语句”,且可呈“如果[条件],那么[结果]”的形式。规则引擎132可在运行时间从规则存储库133动态地选择或识别用于评估的一或多个规则。另外,规则引擎132可高速缓存规则(例如经常评估或预期的规则),以减少存取及评估的持续时间。规则引擎132可从评估规则的结果确定动作,或结果可为动作。因此,规则引擎132可为陈述式的,且有利地分离来自便携式电子装置100内的逻辑(例如,规则)的数据(例如,用以确证事实的样本)。
规则引擎132可组织规则及事实以用于有效评估。在一些实施例中,规则引擎132可基于规则存储库133中定义的一些或所有规则建构组织结构。规则引擎132可将此组织结构存储于知识存储库134中。组织结构可类似于定向图或特里结构(即,前缀树)。规则引擎132可将规则分解成其组分,例如,需要多个事实的复合规则可以分解成可通过存取组织结构而快速及有效评估的一或多个要求。规则引擎132可提供根据组织结构的索引及散列以优化评估性能。举例来说,规则引擎132可散列组织结构中的事实以有效地评估一或多个规则。规则引擎132还可通过识别及折叠组织结构的相同要求以使得可共享要求来优化规则评估。规则引擎132因此可经配置以通过存取组织结构将动作提供到模块。规则引擎平台130可通过增加效率,增加速度,降低电力消耗,降低系统资源消耗及/或影响意欲增强便携式电子装置100的性能的类似属性来优化便携式电子装置100的效能。因此,“优化”不一定意味着“最佳”或仅存在规则引擎平台130的一个所得效果/可能性。因此,规则引擎平台130不需要最大化效率或最小化电力消耗,但可改进这些方面。举例来说,规则引擎平台130可增加速度,同时增加电力消耗,且在某些实施例中这些增加可被视为最优的,因为在需要增加的速度的一些此类实施例中,电力消耗可能不会立即成为问题所在。在某些实施例中,规则引擎平台130将接口(例如,经由规则引擎接口131)提供到用户,所述用户正在实施便携式电子装置100中的规则引擎平台130,以使得可手动地设定或校准用于速度、电力及其它此类属性(例如,速度与电力之间的取舍值)的优化设定或参数。
因此,规则引擎132可通过接收一或多个样本及提供便携式电子装置100内的一或多个动作而增强电力节省及性能(例如,处理速度),从而最小化模块101到106之间的直接数据发射。在图1中所示的实施例中,模块101到106订制规则引擎平台130,以使得由规则引擎132确定且经由规则引擎接口131发送动作。有利的是,模块101到106中的一者可能不再需要订制或请求模块101到106中的另一者。举例来说,模块101到106中的两者可需要便携式电子装置100的位置。装置100的位置可经接收为样本及经确证为位置事实。需要位置的两个模块可仅需要请求来自规则引擎132的位置(经由规则引擎接口131),且规则引擎132可快速存取位置事实以将位置提供到每一请求模块(例如,作为经由规则引擎接口131进行的动作)。因此,卫星定位系统(SPS)模块(例如,模块101到102中的硬件模块)不需要检测当前位置两次,且接着发送当前位置两次(对于每一请求模块一次)。另外,规则引擎平台130提供可缩放性以操纵其订制的规则数目及模块101到106的数目。
在一些实施例中,规则引擎132可将规则评估为真,但确定动作为不进行任何动作。因此,规则引擎132可能不一定将动作提供到规则引擎接口131,或可提供空动作,以使得规则引擎接口131不发出任何动作。规则引擎132还可确定动作可为不进行任何动作的响应。规则引擎接口131接着可将不进行任何动作的响应提供到接收模块101到106,或可将空值提供到接收模块101到106。
作为规则引擎平台130的补充组件,规则存储库133经配置以适当地存储规则库,即,规则引擎132可评估的规则。规则存储库133可在运行时间跨越存储装置135及存储器120分布。在其它实施例中,规则存储库133可跨越处理器110分布及/或可划分成跨越模块101到106分布的个别组件,及/或可存取与模块101到106相关联的功能性及数据。除了规则之外,规则存储库133还可存储规则引擎132所需要的模板、变量、参数及其它信息以确定动作及/或影响所确定的动作。规则存储库133经配置以接受对规则库的更新,例如添加、更新或删除的规则。举例来说,模块101到106可响应于用户输入而请求对规则库的更新。
除了规则存储库之外,规则执行还可跨越处理器110及不同模块101到106分布。举例来说,知识库134可跨越处理器110分布及/或可被划分成跨越模块101到106分布的个别组件及/或可存取与模块101到106相关联的功能性及数据。
在一些实施例中,可在运行时间将规则库动态地组织成多个集合或组织成一或多个阶层,且规则引擎132可选择性地评估集合或阶层的层级中的一或多者。举例来说,在事实指示用户在家时,规则引擎132可评估在用户在家时应用的规则,及/或可省略在用户在工作时应用的规则的评估。在规则引擎132将规则评估为真的情况下,规则引擎132确定动作。随后,规则引擎132可将动作提供到规则引擎接口131,以使得可将动作发送到接收模块101到106,或动作可经确证为致使额外规则评估为真的事实。
可在运行时间例如通过接收新规则或自动创建规则动态地更新存储于规则存储库133中的规则库。此外,规则存储库133可接受对规则库的更新以支持装置100的情境感知。规则存储库133还可从远程源接受规则。举例来说,可从文件(例如,来自SD卡的二进制文件)、统一资源识别符(URI)(例如,来自服务器或来自云端的二进制规则)或资产(例如,从资产目录载入的资产)载入规则更新。这些规则更新可为预编译的或可由规则转译器(未图示)编译。
在一些实施例中,规则引擎平台130进一步包含知识存储库134。知识存储库134可包含于例如RAM等存储器120中。应了解,除了存储器120之外,知识存储库134还可分布于例如处理器110处的高速缓冲存储器等高速缓冲存储器或缓冲器中。知识存储库134可存储事实库,即,规则引擎132可用以评估规则的事实。事实库可为由规则引擎132建构的组织结构的部分。在一个实施例中,事实包含例如来自模块101到106的传感器(例如,加速度计、相机、音频等)样本等未经处理的原始数据,或来自模块101到106的经处理的信息片段(例如,可为行走、驾驶、跑步、休息、飞行等当中的一者的运动状态)。事实可为来自从模块101到106中的一或多者接收的样本、推断、所预期样本(例如,尚未接收的样本)、情境、另一规则(例如,动作或结果)或可由规则引擎132监视的任何其它数据的在知识存储库134中确证的零(例如,空)或零个以上数据对象的数据元组。
在一个实施例中,一或多个事实经确证为默认的(例如,空或假),例如在初始化规则引擎132的情况下或在尚未接收样本的情况下。可在运行时间动态地更新知识存储库134中的事实库。举例来说,从过时样本确证的事实可用当前样本更新,从默认值更新,或可从新样本确证新事实。响应于对事实库的更新,规则引擎132可识别及/或评估规则存储库133中的规则。在一个实施例中,规则引擎132可仅确证所接收样本实质上影响事实的事实。举例来说,如果位置保持相同,那么对于新接收的位置样本,不需要重复确证所存储位置事实。
在一个实施例中,规则引擎132检查一或多个事实或样本来进行推断,且可将那些推断确证为知识存储库134中的事实。举例来说,规则引擎132可接收指示用户在工作的位置样本,且使用指示用户并未计划在会议中且不在运动中的事实,确证用户在工作时可用的事实。位置样本可个别地经确证为如下事实:被存储或被舍弃。
另外,规则引擎132可将情境存储于知识存储库134中。通常将情境理解为装置100或装置100的用户的环境或情况。说明性地,情境可为装置100的用户在会议中、在讨论中、在呼叫中、在地理围栏附近、在一个人附近、在家、正在驾驶及其类似者。情境可为情境或预期信息的集合,例如装置100的用户当前正在驾驶且接近地理围栏的情境。在一个实施例中,规则引擎132通过从一或多个样本或事实进行推断来确定情境。或者,规则引擎132可从例如情境感知模块等模块101到106接收情境作为样本。规则引擎132可从情境确证事实,及/或可基于情境组织及评估事实及规则。
在一些实施例中,规则引擎平台130例如通过处理一或多个样本、事实或规则在无显式定义的情况下导出装置100的用户的意图、条件或环境而支持智能服务。举例来说,模块101到106可请求规则的添加,而不提供致使规则评估为真的显式条件。规则引擎平台130可将具有不确定或模糊条件的规则转译成可评估规则。说明性地,智能个人助理应用程序模块105可依据用户输入请求新规则的添加:“向用户通知朋友的生日”。规则引擎平台130可通过请求来自包含朋友生日的日历日期(例如,12月20号)的联系人/地址簿应用程序模块106的样本来转译规则。使用所述样本,可将定义明确的规则添加到规则存储库133:“如果日期为12月20号,那么向用户通知今天是朋友的生日”。在另一实例中,应用程序模块105请求新规则的添加:“通知用户购买杂货”。规则引擎平台130可通过解析与规则相关的情境(例如包含杂货店的地理围栏)来转译此规则。使用所述样本,规则引擎接口131可将定义明确的规则添加到规则存储库133:“如果用户在地理围栏附近,那么通知用户购买杂货”。后来,在接收指示用户的位置在地理围栏附近或内的样本时,规则引擎132确定动作以通知用户购买杂货。
在一些实施例中,存储库133到134中的一者或两者充当用于知识及部署的资产管理的存储库。存储库可集中于一个物理实体中或跨越各种硬件模块及子系统分布。此资产管理可包含存取控制策略,其指定准许模块101到106存取数据及其它类似约束。存储库133到134还可维持与规则及/或事实相关联的元数据,例如模块101到106中的一或多者如何与规则相关联(例如,订制规则引擎平台130的模块101到106的列表及/或需要样本来确证事实的模块101到106的列表)。在一个实施例中,存储库133到134存储未经确证为事实的数据,例如所接收样本或过去情境。举例来说,位置样本可不用以确证事实,但对于导致将位置样本发送到模块101到106的规则来说可为需要的。同样,可存储情境以使得规则引擎132或情境感知引擎(未图示)可导出情境之间的关系或预期未来情境。
将规则引擎132实施为平台130可允许规则引擎132提供来自存储于存储库133到134处的信息的来源信息。规则引擎平台130可在显示模块103处将来源信息提供到用户,或可将来源信息提供到经调适以监视此信息的模块101到106。在一个实施例中,来源信息可包含与规则的评估及动作的对应确定相关的信息。此来源信息可包含关于致使评估规则的事实或提供样本以用于确证事实的模块101到106的信息。
在一些实施例中,规则引擎132经配置以将与来源相关的信息存储于存储库133到134处。举例来说,规则引擎132可存储评估规则的时间、致使评估规则的条件(例如,事实)、从规则的评估确定的动作、致使规则评估为真的优先规则或其它相关信息。在一些实施例中,规则引擎132跟踪与模块101到106相关的信息,例如接收动作的模块101到106或提供确证事实的样本的模块101到106。举例来说,新闻报道通知可依据由丰富的站点摘要(RSS)应用程序模块105到106提供的样本显示于显示模块103上。可用关于RSS应用程序模块105到106的来源信息(例如,RSS应用程序模块105到106的识别或新闻报道经标记为用户所关注的类别的指示)来补充通知。
在一个实施例中,规则引擎132存储与模块101到106的活动相关的信息。发送大量样本或接收大量动作的模块101到106通常将消耗较不活跃的模块更大的资源量。规则引擎132可从所存储的信息导出关于模块101到106的活动信息或使用统计数据,例如电力消耗、对处理器110负载的影响、对另一模块的影响(例如,电子邮件应用程序模块105到106可通过轮询新电子邮件消息而增加蜂窝式收发器模块101到102的活动)或其它资源消耗。
因此,规则引擎132可例如通过跟踪发送到模块101到106的动作的频率或数量、模块101到106的规则的评估或从由模块101到106提供的样本确证的事实来监视模块101到106。举例来说,基于位置的社交网络应用程序模块105到106(例如,FoursquareTM)可添加规则“如果此应用程序模块正在运行,那么将当前位置发送到此应用程序”。此规则可持久地评估为真,且因此致使在应用程序模块105到106正在运行时消耗大量资源。规则引擎132可存储与应用程序模块105到106的资源消耗相关的信息,例如电力消耗或对处理器110或SPS传感器模块101到102的影响。规则引擎132可从所存储的信息确定关于例如对于装置100来说昂贵的模块等模块101到106的使用信息。
图2展示用于提供便携式电子装置内的规则引擎平台的序列200。在一些实施例中,序列200的操作可经转置或同时发生。所说明序列可执行于图1的便携式电子装置100的实施例内。因此,规则引擎接口230可为或可包含规则引擎接口131,规则引擎240可为或可包含规则引擎132,且存储库250可为或可包含规则存储库133及知识存储库134中的一者或两者。
在图1中,抽象地表示模块101到106以指示模块中的每一者可经配置以执行概念上类似的功能性。此功能性可将数据发送到规则引擎平台130,或从规则引擎平台130接收数据。根据图2,分别地,取样模块210及接收模块220可为或可包含图1中所示的模块101到106中的任一者。在一些实施例中,取样模块210及接收模块220为相同模块。
模块101到106可发送与模块101到106相关联的数据,且可将此发送的数据解译为相应模块101到106的样本。因此,取样模块210可为经配置以发送样本的任何模块101到106。样本可为来自传感器模块的原始输入数据(例如,来自陀螺仪的电压)、来自传感器模块的经处理数据(例如,来自磁力计的基数或序数方向)、来自应用程序模块的数据(例如,来自消息传递应用程序的通知)或可由模块101到106提供的任何其它数据。在许多实施例中,规则引擎接口230在发送样本之前订制取样模块210。
说明性地,在硬件模块101为惯性传感器的实施例中,硬件模块101可发送包含经测量定向的样本或为经测量定向已改变超出阈值量的指示的样本。类似地,在应用程序模块105为消息传递应用程序的实施例中,应用程序模块105可发送包含已接收新消息的指示的样本或包含新消息的文本的样本。在两个实例中,模块101及105用作取样模块210。因此,模块101到106中的许多可同时充当取样模块。取样模块210可响应于请求或事件(例如,在预定时间)将样本发送到规则引擎接口230,或所述样本可为未经请求的。
类似于发送样本,模块101到106可接收例如动作等数据。经配置以接收动作的模块101到106可为接收模块220。举例来说,在硬件模块101为相机模块的实施例中,硬件模块101可接收包含释放快门的命令的动作。类似地,在应用程序模块105为日历应用程序的实施例中,应用程序模块105可接收将新事件添加到日历的动作。在两个实例中,模块101及105用作接收模块220。因此,模块101到106中的许多可同时用作接收模块。在许多实施例中,接收模块220在发送动作之前订制规则引擎接口230。
在一个实施例中,开始序列200,其中规则引擎接口230订制或监视取样模块210(操作251)。此订制可响应于来自规则引擎240的请求。在订制或监视取样模块210时,规则引擎接口230可从取样模块210接收一或多个样本。在一个实施例中,订制可为由规则引擎接口230对来自取样模块210的样本的单独请求。在其它实施例中,规则引擎接口230可例如通过轮询、接收样本流或重复查询取样模块210的一或多个样本来持久地订制取样模块210。规则引擎接口230还可经配置以经由与取样模块210相关联的接口(例如,API)持久地订制取样模块210。
由规则引擎接口230订制取样模块210可根据实施例而变化。在一些实施例中,规则引擎接口230可具有对取样模块210的一个以上订制,以使得针对不同订制提供不同样本。举例来说,在取样模块210为消息传递应用程序的实施例中,规则引擎接口230可订制取样模块210,以使得取样模块210提供包含消息的主体或正文的样本。或者,规则引擎接口230可订制取样模块210,以使得样本简单地为已在取样模块210处接收新消息的通知。重要的是,规则引擎接口230可同时订制包含取样模块210的多个取样模块。
同样作为序列200的部分,接收模块220订制规则引擎接口230(操作252)。接收模块220可订制规则引擎接口230经配置以发送的一或多个动作。举例来说,接收模块220可更新规则库以包含导致接收模块220的动作的规则,或接收模块220可对规则引擎接口230进行特定呼叫。而且,接收模块220一般可订制规则引擎接口230。在一个实施例中,订制可为对来自规则引擎接口230的动作的单独请求。在其它实施例中,接收模块220可持久地订制由规则引擎接口230提供的一或多个动作。
在示意性实施例中,接收模块220为基于地理围栏通知用户(例如,在显示器上呈现通知)的应用程序。在此类实施例中,接收模块220订制由规则引擎接口230提供的地理围栏动作,以使得在执行序列200的装置越过地理围栏周界时由规则引擎接口230向接收模块220提供地理围栏动作。
在一个实施例中,接收模块220自动订制由规则引擎接口230提供的一或多个动作。此自动订制可为实施于具有规则引擎平台的便携式电子装置中的序列。在此类实施例中,规则引擎240可经由规则引擎接口230广播动作(例如,跨越共同消息传递总线),且接收模块220经配置以接收所述动作(例如,动作可与一或多个其它模块同时由接收模块220接收)。
在许多实施例中,可触发取样模块210,以使得产生样本(操作253)。举例来说,可触发惯性传感器取样模块210,其中执行序列200的装置已改变相对于特定轴的定向。所检测到的定向改变可触发惯性传感器取样模块210发送样本。在一些实施例中,可持久地触发取样模块210,例如在取样模块产生连续样本流的情况下。在另一实施例中,可响应于由规则引擎接口230进行的订制触发取样模块210以产生样本(例如,可触发取样模块以提供对来自规则引擎接口230的查询的响应)。
在触发取样模块210以产生样本的情况下,取样模块210经配置以将样本发送或提供到规则引擎接口230(操作254)。在许多实施例中,由取样模块210发送到规则引擎接口230的样本是根据规则引擎接口230对取样模块210的订制(操作251)。
在一些实施例中,从取样模块210接收的样本(操作254)不适合于由规则引擎240进行解译。因此,规则引擎接口230经配置以根据可由规则引擎240解译的格式来调适样本(操作255)。调适样本可由规则引擎接口230实现。举例来说,规则引擎接口230可取消封送所述样本。在其它实施例中,规则引擎接口230与例如规则引擎适配器(未图示)等一或多个额外组件一起操作以针对规则引擎240调适样本。
在一些其它实施例中,规则引擎240可包含API,其以预定速率将样本提供到规则引擎240。作为实例,用户输入模块(例如,模块210、220)可从用户接受输入,其指定将每隔10分钟更新便携式电子装置的位置或将以每隔两个分钟的最大周期性由模块(例如,模块210、220)下载邮件。规则引擎240可根据来自用户的输入指定取样模块210的取样速率。包含于规则引擎接口中的API可允许用户接口模块(例如,模块210或220)对样本模块210的取样速率进行此修改。
在某些实施例中,规则引擎240可经配置以操纵从不同应用程序获得的可能冲突要求。举例来说,考虑运行于装置上的社交应用程序需要每隔10分钟更新位置及天气应用程序每隔6分钟需要位置定位的状况。规则引擎240可相应地调适取样速率以便满足两个应用程序的需求,且重用跨越应用程序的位置定位以便在一些此类实施例中减小电力。
应注意调节传感器的取样的规则引擎的部分可物理上驻留于集中式单元中,或可跨越装置中的个别子系统分布。
在适当地调适样本的情况下,规则引擎接口230经配置以将经调适样本提供到规则引擎240(操作256)。在一些实施例中,响应于来自规则引擎240的请求提供样本。规则引擎接口230还可依据来自接收模块220的订制将样本提供到规则引擎240(操作252)。在一些实施例中,将样本添加到样本集合,所述样本集合可从额外取样模块(例如,存储于存储库250处的接收样本)接收。接着可将样本的完整集合或部分集合提供到规则引擎240。
在一些实施例中,规则引擎240例如通过添加或更新事实来确证将用于评估一或多个规则的事实(操作257)。规则引擎240可通过将样本存储于例如存储库250中或其它存储器中来确证事实。或者,可从导出自样本的推断及一或多个其它事实或样本确证事实。在其它实施例中,规则引擎240基于规则或所预期样本确证事实(例如,不存在样本)。根据一个实施例,规则引擎240基于存储库250中所定义的一些或所有规则来建构组织结构。响应于一或多个样本,规则引擎240可通过确证事实来更新组织结构。重要的是,刚好在提供样本的情况以外,可在序列200的不同操作之后确证事实。举例来说,规则的评估(操作259)及/或动作的确定(操作260)可致使确证事实(操作257)。在一些实施例中,通过选择及评估相关规则(操作258到259)及确定动作(操作260)再继续序列200,其中已从规则的评估或动作的确定确证事实(操作257)。
规则引擎240经配置以选择或识别经确证事实的一或多个相关规则(操作258)。规则引擎240可从存储库250选择一或多个相关规则。在一些实施例中,规则定义至少一个事实与动作之间的条件关系。因此,规则引擎240选择或识别一或多个规则,其中事实实现了所有或部分条件。在选择相关规则时,规则引擎240还可选择额外资产。在一些实施例中,资产包含将规则与特定模块(例如,取样模块210及/或接收模块220)相关联的元数据。资产还可包括针对与一些规则相关联的权限的一或多个存取控制列表。
一或多个相关规则的选择或识别可不为规则的对存储库250的实际请求或查询。在一些实施例中,规则引擎240识别已经选自存储库250的相关规则。举例来说,规则引擎240可基于评估的预期中的情境高速缓存相关规则。
在选择相关规则的情况下,规则引擎240评估经确证事实的相关规则(操作259)。重要的是,由规则引擎240进行的规则执行过程可能是复杂的,且需要经确证为事实的多个样本(或不存在一或多个样本)来评估规则。举例来说,为了评估规则“如果便携式电子装置的用户在会议中,那么停用音频通知”,规则引擎240可从日历取样模块接收用户计划在会议中的样本以及从SPS(或Wi-Fi)取样模块接收装置在包含会议位置(或房间)的地理围栏内的样本。规则引擎240可将这两个样本确证为单独事实,或确证为指示用户“在会议中”的一个事实。响应于经确证事实,停用音频通知。另外,规则引擎240经配置以维持经确证为事实的所接收样本以用于在稍晚时间评估规则。
由规则引擎240评估一个规则可授权第二规则的评估。识别及选择一或多个额外规则可响应于评估先前规则或规则集合而进行。规则引擎240还可需要额外事实来评估规则及确定动作(图6中展示从推断确证的示范性事实)。举例来说,在蓝牙取样模块210发送指示便携式电子装置与用户的汽车的音频系统配对的样本的情况下,规则引擎240可确证用户在汽车中的事实。然而,规则引擎240可未确证用户正在驾驶的事实直到接收指示用户正在移动的位置样本或加速度计样本指示以车辆的预期速度移动(即,不慢于行走速度,且不快于飞机的速度)为止。其后,规则引擎240可评估用户正在驾驶的经确证事实的规则。驾驶规则可致使停用用于文本消息传递的触摸式输入,且因此,规则引擎240可确证致使评估规则以实现用于文本消息传递的话语输入的事实。
在规则引擎240已将一或多个相关规则评估为真的情况下,规则引擎240经配置以根据相关规则确定动作(操作260)。可从将相关规则评估为真的结果确定动作。在许多实施例中,所确定的动作为规则的结果。
在一个实施例中,规则引擎240可确定动作为不进行任何动作。作为响应,规则引擎240可不将动作提供到规则引擎接口230,或可提供空动作以使得规则引擎接口230不发出任何动作。规则引擎240还可确定动作可为对并未进行动作的响应。规则引擎接口230接着可将对并未进行动作的响应提供到接收模块220(例如,作为消息或通过传回空值)。
在其它实施例中,选自存储库250的元数据补充所述动作。举例来说,在规则引擎240针对已在取样模块210处接收新消息的事实将相关规则评估为真的情况下,元数据可规定所确定的动作是否将发送消息的文本或者已接收新消息的通知。元数据也可以指示将根据所确定的动作通知的便携式电子装置内的接收模块220的识别。元数据还可包含例如时间或行为参数等补充参数。在一些实施例中,对于所确定的动作包含元数据,以使得接收模块220能够识别取样模块210或触发将所确定的动作发送到接收模块220的特定规则。
随后,规则引擎240将所确定的动作提供到规则引擎接口230(操作261)。规则引擎接口230接着经配置以根据适合于发射到接收模块220及由接收模块220接收的格式调适所确定的动作(操作262)。在其它实施例中,规则引擎接口230与例如规则引擎适配器等一或多个额外组件一起操作,以针对接收模块220调适动作。在一个实施例中,规则引擎接口230可封送所确定的动作。可由规则引擎接口230使用其它合适调适技术,例如串行化。
规则引擎接口230接着将所确定的动作发送到接收模块220(操作263)。在一个实施例中,由规则引擎240提供(例如,经由与一或多个规则相关联的元数据)接收模块220的识别。在一些实施例中,规则引擎接口230可广播所确定的动作(例如,跨越共同消息传递总线),且接收模块220可从广播接收动作。因此,并不一定要在发送所确定的动作时特别地识别或对准接收模块220。接收模块220根据接收模块220的实施例操纵所确定的动作。
图3A展示根据本发明的一个实施例的由便携式电子装置内的规则引擎平台执行的方法300的实例。图3A的操作是说明性的,且不一定按所描绘的次序执行。方法300可由图1处所示的便携式电子装置100的规则引擎平台130执行;举例来说,可由规则引擎接口131及/或规则引擎132执行操作。执行方法300的规则引擎平台可以通信方式与其实施于其中的装置的其它组件(例如模块及处理器)耦合。在一个实施例中,规则引擎平台可划分成跨越硬件、存储装置、处理器、模块或便携式电子装置的其它组件分布的个别组件。规则引擎平台可存取与此些组件相关联的功能性及数据。
最初,规则引擎平台接收多个规则,所述规则可影响或控管以通信方式与规则引擎平台耦合的一或多个模块的行为(操作305)。可在运行时间从以通信方式与规则引擎平台耦合的模块(例如,模块101到106)、从远程源(例如,云端或URI)或从本地源(例如,存储器或可装卸快闪存储器装置中的目录)动态地接收规则,然而也可预定义规则(例如,在规则引擎平台的编译时间接收)。所接收的规则可更新存储于规则存储库(例如,规则存储库133)中的现有规则库,或可在规则存储库的设计时间或其它编译时间接收。在一个实施例中,可响应于来自规则引擎平台的请求(例如,查询)接收多个规则。
规则引擎平台可响应于所接收的多个规则建构组织结构。组织结构可指示其中重新初始化规则引擎平台的开始状态。在一个实施例中,组织结构包含致使规则评估为真的数个事实。事实最初可经确证为默认,例如空或假。规则引擎平台还可接收更新现有组织结构的多个规则。规则引擎平台接着经配置以更新现有组织结构以例如通过修改现有要求,移除过时的要求及识别新共享的要求来并有多个所接收规则。
除了多个规则之外,执行方法300的规则引擎平台经配置以从例如图1的模块101到106等至少一个取样模块接收至少一个样本(决策框310)。然而,可不在所有情况下接收样本。举例来说,在规则引擎平台尚未查询模块的情况下,或在由模块提供的样本流不存在的情况下,可不接收样本。然而,规则引擎平台可基于例如对取样模块的订制确定从取样模块接收的样本。在一个实施例中,规则引擎平台可基于组织结构确定将接收的样本,例如,规则引擎平台可分解规则以识别用于建构组织结构的所需要事实,且在这样做时确定可确证所需要事实的样本。
在接收样本的情况下,执行方法300的规则引擎平台可确定样本是否指示将更新事实(决策框320)。可更新事实以反映实施规则引擎平台的装置的当前状态,例如在所接收样本指示新数据(例如,新消息)或环境中的改变(例如,新情境)的情况下。举例来说,可在从社交网络模块接收新消息样本的情况下更新新的消息事实。另外,可在样本作为整体修改事实的情况下,甚至在事实的其它构成组分(例如,事实或样本)保持有效的情况下更新事实。举例来说,样本或事实(例如,推断)的组合可致使确证用户正在睡觉的事实;然而,接收指示用户正在移动的运动状态样本可需要更新事实以指示用户不在睡觉。
适当时,依据样本接收在存储库(例如,存储库133、134)中确证事实(操作325)。在一个实施例中,仅在样本或其不存在实质上更新事实(例如,改变事实的真值)的情况下确证事实。事实可通过存储于例如RAM、高速缓冲存储器、缓冲器或用于即时存取以及未来存取的存储器位置的组合等存储器中在存储库中确证。事实可经确证为可能已经存储于存储库中的样本或事实(例如,推断)的组合。在一个实施例中,通过更新组织结构反映更新来确证事实。另外,可将事实添加到例如非易失性存储器等永久性存储器。
在一些实施例中,可依据样本接收确证多个事实,即,所接收样本或其不存在可使一个以上事实的同时更新成为必需。确切地说,此情形可为从一个样本确证的事实及从包含一个样本的多个样本或事实确证的一或多个事实的状况。
根据存储库中的事实,执行方法300的规则引擎平台经配置以识别一或多个规则(操作330)。如所说明,规则引擎平台可响应于经确证事实识别规则(例如,其中经确证事实需要满足规则的条件)。或者,可在未更新事实的情况下(例如在规则引擎平台的初始化时)或在特定时间识别规则(例如,根据时钟信号)的情况下识别规则。规则可经识别,且随后选自规则存储库,例如在规则引擎132从规则存储库133选择规则的情况下。然而,规则可不立即评估,而是可经缓冲或经高速缓存以在确证致使规则评估为真的额外事实时加快评估。
在一些实施例中,根据例如规则的阶层或规则相对于其它规则的显著属性等冲突消解议程识别规则。根据冲突消解议程识别规则可减少多个规则可与存储库中的事实相关但在评估为真时具有冲突结果的情况的出现。此外,可依据情境识别规则。因此,可绕过可与存储库中的事实相关但与所关注的情境(例如,即时情境、预期的情境或常见的情境)不相关的规则以有利于识别与所关注的情境相关的规则。
在某些实施例中,每一规则具有表明规则的重要性的相关联权重。举例来说,具有较高权重的规则暗示其优先于具有较低权重的规则。在存在冲突的状况下,这些权重可用以消解冲突,且评估具有较高权重的规则。
在已识别规则的情况下,规则引擎平台接着可评估规则(操作335)。评估所识别规则可包含检查经确证事实(例如,样本或逻辑值)或额外事实。举例来说,在确证用户正在驾驶的事实的情况下,规则引擎平台可评估依据用户正在驾驶的情况下的真值调节的规则。通常,规则评估为真,其中满足规则的所有条件(例如,事实)。在一个实施例中,如果规则评估为假,那么可识别及评估另一规则,例如具有相比第一规则较不显著的属性的规则。
在一些实施例中,多个事实用以评估规则。举例来说,所接收的多个规则可指示如果用户正在睡觉为真,那么将停用音频输出。此规则可需要规则引擎平台的两个样本来进行推断,且因此确证用户正在睡觉的事实:(1)时间及(2)运动状态。因此,规则引擎平台可确证指示当前时间为2:00AM的时间样本的事实,且确证指示装置不在运动中的另一事实(或确证用户正在睡觉的单个事实)。规则引擎平台接着可基于用户正在睡觉的事实评估规则,因为现在早晨时间还早且装置不在运动中。
在一个实施例中,可通过根据规则的要求遍历组织结构来评估规则。举例来说,规则可具有三个要求:对于评估为真的规则,事实A及B必须为真,且事实C必须为假。可通过检查事实A且在A为真的情况下继续进行到事实B且在B为真的情况下继续进行到事实C来遍历组织结构。如果事实C接着为假,那么规则评估为真。有可能事实A、B及C以不同速率及在不同时间实例处出现。在此类状况下,事实可高速缓存于存储库中且在每一新事实出现时被重读。
在评估一或多个规则之后,执行方法300的规则引擎平台使用评估确定一或多个动作(操作340)。在例如规则评估为真的情况等一些实施例中,此动作包含于定义规则的条件语句的“那么”子句中。或者,所确定的动作可为不进行任何动作。关于图1,规则引擎132可确定动作。
在一些实施例中,可在规则评估为真的情况下确定多个动作。可在规则的结果影响装置内的多个模块的情况下及/或在将跨越多个模块不同地实施规则的结果的情况下确定多个动作。通常可广播多个动作以使得每一模块接收动作。在其它实施例中,多个相应动作适用于特定模块或模块类型(例如,消息传递应用程序模块或基于位置的应用程序模块)。相应动作可适用于基于例如与规则相关联的元数据的特定模块或模块类型。
在一个实施例中,结合与规则相关联的元数据(例如存取控制列表)确定动作。因此,可确定动作以使得规则的结果不与可配置于装置中的权限冲突。或者,可确定动作以使得规则的结果与此些权限相调解。举例来说,评估为真的规则的结果可通知用户,但配置于装置中的权限已停用音频通知;因此,可确定动作以图形方式通知用户。
有可能运行于装置上的不同模块可提供不同规则集合。在此类状况下,规则引擎平台可选择出于保密性原因单独地评估所述规则集合,且因此一个应用程序的规则不会干扰其它应用程序的规则。举例来说,规则引擎平台132可根据存取控制策略评估规则。
在一些实施例中,所确定的动作更新存储库处的事实(决策框345)。因此,执行方法300的规则引擎平台可从所确定的动作确证事实(操作325)。因此,如上文所描述,可识别及评估一或多个额外规则。
在确定动作之后,执行方法300的规则引擎平台发送所确定的动作(操作350)。发送所确定的动作可通过例如规则引擎平台的接口(例如,规则引擎接口131)促进。根据其它实施例,可使用操作系统或ASIC发送所确定的动作。在一些实施例中,所确定的动作影响装置内的多个模块。因此,规则引擎平台可经配置以将呈多个格式的所确定的动作发送到多个模块。
图3B展示根据本发明的一个实施例的由便携式电子装置内的规则引擎平台执行的方法360的实例。图3B的操作为说明性的,且不一定按所描绘的次序执行。方法360可由图1处所示的便携式电子装置100的规则引擎平台130执行;例如,方法360的操作可由规则引擎接口131及/或规则引擎132执行。执行方法360的规则引擎平台可以通信方式与其实施于其中的装置的其它组件(例如模块及处理器)耦合。
最初,规则引擎平台接收多个规则,所述规则可影响或控管以通信方式与规则引擎平台耦合的一或多个模块的行为(操作365)。可在运行时间从以通信方式与规则引擎平台耦合的模块、从远程源(例如,云端或URI)或从本地源(例如,存储器或可装卸快闪存储器装置中的目录)动态地接收规则;然而也可预定义规则(例如,在规则引擎平台的编译时间接收)。所接收的规则可更新存储于规则存储库(例如,规则存储库133)中的现有规则库,或可在规则存储库的设计时间或其它编译时间接收。在一个实施例中,可响应于来自规则引擎平台的请求(例如,查询)接收多个规则。
规则引擎平台可响应于所接收的多个规则建构组织结构。组织结构可指示其中重新初始化规则引擎平台的开始状态。在一个实施例中,组织结构包含致使规则评估为真的数个事实。事实最初可经确证为默认,例如空或假。规则引擎平台还可接收更新现有组织结构的多个规则。规则引擎平台接着经配置以更新现有组织结构以例如通过修改现有要求,移除过时的要求及识别新共享的要求来并有多个所接收规则。
适当时,依据所接收样本及所预期样本(例如从模块101到106接收的样本)中的一者在存储库中确证事实(操作370)。在一个实施例中,仅在样本或其不存在实质上更新事实(例如,改变事实的真值)的情况下确证事实。事实可通过存储于例如RAM、高速缓冲存储器、缓冲器或用于即时存取以及未来存取的存储器位置的组合等存储器中在存储库中确证。事实可经确证为可能已经存储于存储库(例如,存储库133、134)中的样本或事实的组合(例如,推断)。在一个实施例中,通过更新组织结构反映更新来确证事实。另外,可将事实添加到例如非易失性存储器等永久性存储器。
在一些实施例中,可依据所接收或所预期样本确证多个事实,例如,所接收样本或所预期样本可使一个以上事实的同时更新成为必需。确切地说,此情形可为从一个样本确证的事实及从包含一个样本的多个样本或事实确证的一或多个事实的状况。
根据存储库中的事实,执行方法300的规则引擎平台经配置以识别一或多个规则(操作375)。如所说明,规则引擎平台可基于经确证事实识别规则(例如,其中经确证事实需要满足规则的条件)。或者,可在不更新事实的情况下(例如在规则引擎平台的初始化时)或在将在特定时间识别规则(例如,根据时钟信号)的情况下识别规则。规则可被识别,且随后选自规则存储库(例如,规则存储库133)。然而,规则可不立即被评估,而是可经缓冲或经高速缓存以在确证致使规则评估为真的额外事实时加快评估。
在一些实施例中,根据例如规则的阶层或规则相对于其它规则的显著属性等冲突消解议程识别规则。根据冲突消解议程识别规则可减少多个规则可与存储库中的事实相关但在评估为真时具有冲突结果的情况的出现。此外,可依据情境识别规则。因此,可绕过可与存储库中的事实相关但与所关注的情境(例如,即时情境、预期的情境或常见的情境)不相关的规则以有利于识别与所关注的情境相关的规则。
在某些实施例中,每一规则具有表明规则的重要性的相关联权重。举例来说,具有较高权重的规则暗示其优先于具有较低权重的规则。在存在冲突的状况下,这些权重可用以消解冲突,且评估具有较高权重的规则。
在已识别规则的情况下,规则引擎平台接着可评估规则(操作380)。评估所识别规则可包含检查经确证事实(例如,样本或逻辑值)或额外事实。举例来说,在确证用户正在驾驶的事实的情况下,规则引擎平台可评估依据用户正在驾驶的情况下的真值调节的规则。通常,规则评估为真,其中满足规则的所有条件(例如,事实)。在一个实施例中,如果规则评估为假,那么可识别及评估另一规则,例如具有相比第一规则较不显著的属性的规则。
在一些实施例中,多个事实用以评估规则。举例来说,所接收的多个规则可指示如果用户正在睡觉为真,那么将停用音频输出。此规则可需要规则引擎平台的两个样本来进行推断,且因此确证用户正在睡觉的事实:(1)时间及(2)运动状态。因此,规则引擎平台可确证指示当前时间为2:00AM的时间样本的事实,且确证指示装置不在运动中的另一事实(或确证用户正在睡觉的单个事实)。规则引擎平台接着可基于用户正在睡觉的事实评估规则,因为现在早晨时间还早且装置不在运动中。
在一个实施例中,可通过根据规则的要求遍历组织结构来评估规则。举例来说,规则可具有三个要求:对于评估为真的规则,事实A及B必须为真,且事实C必须为假。可通过检查事实A且在A为真的情况下继续进行到事实B且在B为真的情况下继续进行到事实C来遍历组织结构。如果事实C接着为假,那么规则评估为真。有可能事实A、B及C以不同速率及在不同时间实例处出现。在此类状况下,事实可高速缓存于存储库中且在每一新事实出现时被重读。
在评估一或多个规则之后,执行方法360的规则引擎平台从评估确定一或多个动作(操作385)。在例如规则评估为真的情况等一些实施例中,此动作包含于定义规则的条件语句的“那么”子句中。或者,所确定的动作可为不进行任何动作。
在一些实施例中,可在规则评估为真的情况下确定多个动作。可在规则的结果影响装置内的多个模块的情况下及/或在将跨越多个模块不同地实施规则的结果的情况下确定多个动作。通常可广播多个动作以使得每一模块接收动作。在其它实施例中,多个相应动作适用于特定模块或模块类型(例如,消息传递应用程序模块或基于位置的应用程序模块)。相应动作可适用于基于例如与规则相关联的元数据的特定模块或模块类型。
在一个实施例中,结合与规则相关联的元数据(例如存取控制列表)确定动作。因此,可确定动作以使得规则的结果不与可配置于装置中的权限冲突。或者,可确定动作以使得规则的结果与此些权限相调解。举例来说,评估为真的规则的结果可通知用户,但配置于装置中的权限已停用音频通知;因此,可确定动作以图形方式通知用户。
转而参看图4及图5,展示用于接收对规则库的更新的系统及方法。首先以用于添加新规则的系统400开始,规则引擎平台460可为图1的规则引擎平台130。对应地,规则引擎接口420可为或可包含规则引擎接口131,规则引擎440可为或可包含规则引擎132,且规则库450可存储于图1的规则存储库133中。
规则转译器430可实施于规则引擎平台460内,且可与规则引擎接口420及/或规则引擎440集成。然而,规则转译器430也可以通信方式耦合到规则引擎接口420或规则引擎440。在一些实施例中,规则转译器430可为编译程序、解译程序或用于将规则更新转译成适合于由规则引擎440解译的格式的其它类似机构。
规则源410为对规则库450的更新的发起点。规则源410可提供静态及预编译的规则。或者,规则源410可提供响应于用户输入而创建或自动创建的动态规则。规则源410可通过添加、更新或删除规则而提供规则库450的更新。因此,可在运行时间更新规则库450以支持实施规则引擎平台460的装置的定制及情境感知。
在一些实施例中,规则源410可为或可包含图1的模块101到106中的任一者。举例来说,用户可经由创建新规则或修改现有规则的应用程序模块105到106中的一者定义参数。在其它实施例中,规则源410可引入预编译的规则。在此类实施例中,规则源410可为文件(例如,来自SD卡的二进制文件)、统一资源定位符(URL)(例如,来自URL的二进制规则)或资产(例如,从资产目录载入的资产)。或者,包含规则源410作为规则引擎平台460的部分。举例来说,规则源410可为“智能”引擎,例如情境感知引擎或环境智能引擎。智能引擎可提供基于情境的规则。
图4的系统400可实施图5的方法500。最初,接收请求以更新规则库(操作505)。在图4的实施例中,规则源410经由规则引擎接口420请求对规则库450的更新。更新规则库的请求可为新规则、经更新规则或删除规则的请求。可在运行时间(例如在改变情境或用户与模块交互时)动态地接收请求。
其后,将请求转译成适合于规则引擎的格式(操作510)。可由图4的规则转译器430执行此转译操作。可在运行时间动态地进行转译操作以使得规则更新可立即呈现效果。在一些实施例中,请求需要极少转译或不需要转译,例如在接收预编译的规则的情况下。或者,请求经接收为高级代码及经编译成可由规则引擎解译的格式。
在一个实施例中,在更新规则库之前验证请求(决策框515)。举例来说,添加规则的请求可与较高优先级的另一规则冲突,或需要与存取控制策略冲突的事实。在一些实施例中,请求可为删除无法删除的规则(例如,根据存取控制策略或与规则相关联的元数据)。
在另一实施例中,响应于用户输入验证请求。举例来说,所请求的规则更新可导致将SPS位置发送到应用程序模块,且因此,可提示用户指示应用程序模块是否可接收SPS位置的输入。如果请求为无效的,那么可忽略请求。在一个实施例中,向请求的源通知无法接受所述请求。
在请求有效的情况下,根据请求更新规则库(操作520)。举例来说,可添加新规则,或可修改或删除现有规则。在另一实施例中,通过更新规则的阶层或规则的一或多个显著属性来更新规则库。举例来说,与一个情境相关的规则可与第二情境不相关,且因此在规则选择/识别期间较不显著。另外,作为经更新规则库的结果可更新组织结构。举例来说,可引入对于事实的新要求或可更新事实库以使得确证不同事实。在一些实施例中,在处理请求之后更新规则库。可通过确定其关系或对规则库的影响来处理请求。对于添加新规则的请求,新规则可例如经指派给规则的阶层或经指派显著属性。
图6展示用于根据装置的用户的转变状态评估规则的方法600的实例的流程图。因此,基于多个样本的存在或不存在而推断用户的转变状态。方法600可例如由图1的规则引擎平台130实施,且操作可由规则引擎接口131及/或规则引擎132执行。在方法600中,规则引擎订制至少两个取样模块:(1)运动状态模块(例如,惯性传感器)及(2)Wi-Fi模块。因此,运动状态模块经配置以提供用于运动状态的样本,且Wi-Fi模块经配置以提供用于Wi-Fi的样本(例如,Wi-Fi签名及/或Wi-Fi发射)。这些模块中的相应一者可为或可包含图1中所示的模块101到106。
开始时,实施方法600的规则引擎平台确定是否已接收新运动状态的样本,例如从模块101到106接收的样本(决策框610)。在一些实施例中,规则引擎平台可例如通过检查事实的真值来检查从运动状态样本(例如,存储库133、134)确证的事实。在事实指示已接收新运动状态样本的情况下,规则引擎平台前进到另一事实检查。在第二检查处,规则引擎平台确定在第一时间帧(例如前五秒)内是否已接收用于运动状态的样本(决策框620)。规则引擎平台可例如通过检查事实的时间戳确定何时接收运动状态样本来检查与第一事实相同的事实。然而,此事实可为从运动状态样本确证的不同事实。
在已在第一时间帧内接收新运动状态的情况下,执行方法600的规则引擎平台确定是否已在第二时间帧(例如前三十三秒)内接收最后一个Wi-Fi签名(决策框630)。规则引擎平台可检查与Wi-Fi签名相关的事实(例如,存储于存储库133、134中的事实)来确定何时接收最后一个Wi-Fi签名样本。此处,推断为如果便携式电子装置移动到最后检测的Wi-Fi签名之外,那么所接收的运动状态样本指示装置行进跨越一段距离,且刚好不经历被限制区域中的显著移动。此事实可从Wi-Fi签名样本确证,或可经确证为Wi-Fi签名样本的不存在。
在最后一个Wi-Fi签名经确定为至少旧的三十三秒的情况下,执行方法600的规则引擎平台执行最终评估。对于最终评估,规则引擎平台评估当前运动状态(决策框640)。规则引擎平台可通过检查事实来进行此评估,所述事实可与第一事实相同或为不同事实。举例来说,可再次依据新运动状态样本(例如,可更新与事实相关联的时间戳)确证(即,更新)第一事实或可再次确证第一事实以指示尚未接收新运动状态样本。在其它实施例中,高速缓存运动状态样本以使得可在不将运动状态样本确证为事实的情况下进行推断。
在由规则引擎平台进行的运动状态样本的评估指示装置并未静止的情况下,规则引擎平台作出用户正在转变的推断(操作650)。规则引擎平台可确证用以由此推断评估规则的事实。举例来说,对于在用户正在转变的情况下评估为真的规则,规则引擎平台可确定动作及/或确证致使评估另一规则的另一事实。另外,规则引擎平台可再次迭代方法600。
相反,在先前评估中的任一者为否定的情况下,实施方法600的规则引擎平台作出用户未转变的推断(操作660)。规则引擎平台可由此推断确证事实,例如通过更新用户的转变状态的事实。规则引擎平台其后可根据未转变的用户确定动作及/或评估另一规则。另外,规则引擎平台可再次迭代方法600。
现在关于图7A,框图说明用以优化系统的规则引擎平台的实施例。系统700可实施于图1的便携式电子装置100中。因此,规则引擎平台705可为或可包含规则引擎平台130,规则引擎接口710可为或可包含规则引擎接口131,规则引擎730可为或可包含规则引擎132,规则存储库715可为或可包含规则存储库133,且知识存储库720可为或可包含知识存储库134。类似地,模块750、755可为或可包含模块101到106,且可用作取样模块及/或接收模块。
在另一实施例中,系统700可并入到例如个人桌上型或膝上型计算机等任何计算系统中。尽管系统700可不同于便携式电子装置100,但模块750、755可经配置以与关于图1的模块101到106所描述的方式类似的方式提供数据及接收数据。因此,模块750、755可经配置以用作取样模块及/或接收模块。
并未并入于规则引擎平台705中的图7A的所说明组件可为用于计算系统的任何合适组件。在一个实施例中,这些组件是所属领域中已知的。举例来说,用户接口模块760可允许用户例如经由通过模块750、755或操作系统775提供的图形用户接口(GUI)与系统700交互。为了实现此情形,系统700可以通信方式与一或多个硬件装置(未图示)耦合,所述硬件装置例如显示器及适合于用户输入的一或多个装置(例如,键盘、鼠标或触摸屏)。
在一些实施例中,规则引擎730包含情境感知引擎735及优化引擎740中的一者或两者。情境感知引擎735及优化引擎740两者可并入于规则引擎730内,或可与规则引擎730及/或规则引擎平台705分开及以通信方式与规则引擎730及/或规则引擎平台705耦合。
情境感知引擎735可经配置以确定系统700或系统700的用户的情境。情境可为例如需要多个样本或计算上昂贵的高级推断,例如系统700的用户“将在会议迟到”或“在电影中”的推断。情境也可为需要较小数目个样本或计算上较不昂贵的低级推断,例如用户正在移动的推断。情境感知引擎735可从一或多个样本、一或多个事实、一或多个规则或其组合导出情境。
情境感知引擎735随后可将情境提供到规则引擎730。其后,规则引擎730可基于情境评估或组织规则或事实。举例来说,可修改规则的阶层或相应显著属性以使得向适用于情境的规则给定优先级。类似地,可根据情境确证事实。在一个实施例中,载入(例如,在缓冲器或高速缓冲存储器中)适用于情境的规则及/或事实以优化规则评估。在一些实施例中,情境在知识存储库720中经确证为事实。
在一个实施例中,情境感知引擎735经配置以导出事实或情境之间的关系。所导出的关系自身可为情境,且因此可经确证为事实。另外,所导出的关系可更新规则库。情境感知引擎735可通过确定两个情境或事实之间的共同或重复模式来导出情境或事实之间的关系。举例来说,情境感知引擎735可从以下各者导出用户的家与办公室之间的关系:(1)指示用户在家的第一情境;(2)指示用户正在驾驶的下一情境;及(3)指示用户在办公室的最终情境。其后,情境感知引擎735可导出指示通勤时间(例如,第二情境的持续时间)的家情境及办公室情境之间的关系。从所导出关系,情境感知引擎可提供“如果用户在五分钟内有一个办公室会议预约且用户在家中,那么确证对于预约来说用户将会迟到的事实”的规则。在另一实例中,情境感知引擎735可导出以下各者之间的关系:(1)指示用户正在驾驶的第一情境;(2)一天的某一时刻;及(3)指示用户在家的下一情境。情境感知引擎735可确定用户通常在一天的某一时刻从驾驶情境转变到家情境。因此,情境感知引擎735可导出在用户在所述一天的某一时刻驾驶的情况下用户驶回家的关系。
在一些实施例中,情境感知引擎735存取与一或多个样本相关的所存储的信息以便导出情境。信息可存储于例如存储库715到720或存储装置770中。在一个实施例中,所存储的信息包含样本到情境的映射。举例来说,Wi-Fi签名样本可映射到特定情境,例如指示用户在工作的情境或指示用户在办公楼的特定房间中的情境。映射可经接收为用户输入或由情境感知引擎735从所接收样本导出,例如在SPS样本指示用户快速转变且情境感知引擎735经常地接收指示系统700与音频系统(未图示)配对的蓝牙样本的情况下,情境感知引擎735可从与指示用户正在驾驶的情境配对的音频系统导出映射。
优化引擎740经配置以优化系统700的性能及电力消耗,例如通过减少处理器765上的计算负载、存储器120及存储装置770的存取或电源的使用(未图示)。在一个实施例中,优化引擎740分解规则的规则结构以确定评估为真的规则所需要的组件。从经分解规则结构,优化引擎740可计算用以节约资源的优化方案,例如指定取样模块750、755的速率的优化方案。举例来说,对于从来自两个不同取样模块X及Y的所需要的两个不同样本确证的两个事实,规则可评估为真。优化引擎740因此将规则分解成用于X样本的第一要求及用于Y样本的第二要求。第一要求可指示规则评估为真,X样本仅需要每分钟一次经确证为事实。有利的是,优化引擎740可根据基于第一要求的优化方案修改模块X的取样速率,以使得仅以一分钟间隔接收或处理(例如,用以确证事实)X个样本。对应地,优化引擎740可根据优化方案修改模块Y的取样速率以使得仅接收或处理(例如,用以确证事实)Y个样本,其中X样本在最后一分钟内经确证为事实。另外,在X样本尚未被确证为事实的情况下,优化引擎740可不评估规则,因为规则将必定评估为假。
规则引擎平台705可通过增加效率,增加速度,降低电力消耗,降低系统资源消耗及意欲增强系统700的性能的其它类似属性来优化系统700的性能。因此,“优化”不一定意味着“最佳”或仅存在规则引擎平台705的一个所得效果/可能性。因此,规则引擎平台130不需要最大化效率或最小化电力消耗,但可改进这些方面。举例来说,规则引擎平台130可增加速度,同时增加电力消耗,且这些增加可在某些实施例中被视为最优的,因为在需要增加的速度的一些此类实施例中,电力消耗可能不会立即成为问题所在。
在规则存储库715含有多个规则的情况下,多个规则中的每一规则可分解为其相应组件要求。优化引擎其后可识别规则及其相应要求之间的关系。因此,优化引擎740可计算优化方案,其调解跨越多个规则的冲突或共享要求。规则引擎平台705内的优化引擎740的实施方案可使得优化引擎740能够指定事实如何满足规则的要求,甚至是对于含有显式要求的规则。举例来说,三个规则A、B及C可各自需要从来自取样模块750的样本确证的事实以便评估为真。尽管三个规则的要求共享事实,但三个规则的需要事实的速率可不同,例如,规则A每隔一秒需要事实,规则B每隔三十秒需要事实,且规则C每隔一分钟需要事实。从具有不同速率的事实的三个要求,优化引擎740可优化取样模块750的取样,例如通过修改取样模块750的取样速率,同时仍满足规则A、B及C的要求。在此实例中,优化引擎740可确定取样模块的最优取样速率为十五秒,且因此可仅以十五秒的间隔接收或处理(例如,用以确证事实)来自取样模块750的样本。
在一些实施例中,优化引擎740可计算模块750、755中的一者或两者的一或多个优化参数。优化引擎740可计算具有每一个别模块750、755的特定优化参数的优化方案,但一个优化参数可适用于多个模块750到655。举例来说,优化方案可包含定义模块750、755的样本的最优速率或处理来自模块750、755的不同类型的样本的速率的相应优化参数。
优化方案的实施方案可根据实施例而变化。在一些实施例中,由优化引擎740将优化方案实施为规则引擎平台705的部分。举例来说,规则引擎接口710可忽略从不必要的模块750、755接收的样本(例如,舍弃样本),例如在所接收的样本超出由优化方案的优化参数定义的取样速率的情况下。类似地,规则引擎730可经由规则引擎接口710修改其对模块750、755的订制,例如通过减小轮询或查询模块750、755的速率。此外,可以由优化方案定义的最优速率确证事实。作为修改对模块750、755的订制的额外优点,模块750、755可撤销启动或睡眠,且仅在主动地查询或轮询时启动或唤醒。
在一个实施例中,将优化方案的相应优化参数提供到一或多个模块750、755以使得模块750、755根据优化参数修改其取样速率。在另一实施例中,优化引擎740根据优化参数影响模块750、755的状态。在优化方案指示来自模块750、755的样本为不必要的情况下,优化引擎740可将优化参数提供到模块,所述优化参数包含用以撤销启动或睡眠的指令。在根据优化方案需要来自模块750、755的样本的情况下,优化引擎可将优化参数提供到模块,所述优化参数包含用以启动或唤醒的指令。
优化引擎740可在运行时间响应于跨越系统700的改变(例如事实、规则、情境及其类似者的改变)动态地更新优化方案。可在运行时间例如通过修改模块750、755的优化参数实施对优化方案的动态更新。为了避免冗余操作,优化引擎740可仅更新受影响的优化参数,且因此可不再次计算整个优化方案。
在一个实施例中,优化方案可考虑要求之间的关系,例如在经分解规则结构指示一个模块的要求是取决于第二模块的要求的情况下。举例来说,一个所接收样本可触发不同样本确证用于评估规则的事实的需要。在接收第一样本时,优化引擎740动态地更新模块750、755的一或多个优化参数,从而提供第一所接收样本及不同样本。
在一些实施例中,优化引擎740可经调适以适应对存储于规则存储库715处的规则库的更新。响应于经添加、删除或修改的规则,优化引擎740可在对于规则存储库715中的当前规则适当时更新优化方案,例如通过添加、修改或删除模块750、755的优化参数。对于对规则库的一些更新,优化引擎740可分解规则更新以确定经修改的要求。优化引擎740其后可使用经修改的要求来在运行时间更新优化方案。
优化引擎740还可响应于事实或情境中的改变(例如从情境感知引擎735接收的情境或从样本确证的事实)更新优化方案。情境或经确证事实的改变可致使不同规则评估为真,且其结果是影响一或多个规则的要求。其它规则可由情境或经确证事实的改变排除,且因此可在优化引擎740更新优化方案时移除不相关的规则的要求不再考虑。
在一个实施例中,优化引擎740基于例如规则的阶层或相应显著属性等冲突消解议程计算优化方案。优化引擎740可计算优化方案以使得根据议程加权规则的要求。可在计算或更新优化方案时不同地加权首先选择或识别的规则的要求。举例来说,模块750、755的优化参数最初可设定通过平均化要求而处理来自模块750、755的样本的速率,且其后修改取样速率,其中阶层或显著属性改变以使得在更新优化参数时一个要求被给予较大权重。
图7B及图7C分别展示根据本发明的一个实施例的图7A的规则存储库715及知识存储库720。存储于规则存储库715中的规则库可经组织成规则集合717A到C。通常,每一规则集合717A到C与一或多个情境相关。举例来说,在事实指示用户在家时,规则引擎730可评估在用户在家时应用的第一规则集合717A,及/或可忽略在用户在工作时应用的第二规则集合717C。一些规则集合717A到C与所有情境相关,例如总是进行评估的基本规则集合。此外,情境可具有同时相关的多个规则集合717A到C。尽管不一定,但有可能规则存储库715已在其中存储不与任何情境相关的一或多个规则集合717A到C(例如在计算优化方案的情况下可忽略这些规则集合)。
规则库可被看作是所有规则的集合,且每一规则集合717A到C可为规则库的子集。然而,预期一些规则集合717A到C可为空,例如在系统700的初始化时或在已从所述集合移除所有规则716A到D的情况下。在一些实施例中,规则集合717A到C可重叠,且因此规则716A到D可为一个以上规则集合717A到C的成员。
因为多个规则716A到D及集合717A到C可与单个情境相关,所以可根据例如规则集合717A到C的阶层等冲突消解议程组织规则716A到D及集合717A到C。另外,冲突消解议程可包含规则716A到D的相应显著属性。规则引擎730可基于冲突消解议程确定评估规则的次序。在一个实施例中,规则716A到D的显著属性从属于规则集合717A到C的阶层。然而,在另一实施例中,规则716A到D是根据其相应显著属性区分优先的。因此,在两个规则评估为真且冲突(例如,导致确定不能协调的动作)的情况下,规则引擎730可基于冲突消解议程确定适当动作。在一个实施例中,可在运行时间动态地更新冲突消解议程,例如在情境改变的情况下或在更新规则库的情况下。
类似于存储于规则存储库715中的规则库,可将存储于知识存储库720中的事实库组织成事实集合722A到C。通常,每一事实集合722A到C与一或多个情境中的一或多个规则716A到D相关。举例来说,在情境指示用户正在驾驶时,事实集合722A到C可需要评估在用户正在驾驶时应用的第一规则集合717A。同样,事实721A到D可在其与情境的所有可评估规则不相关的情况下被忽略(例如,不存储或确证)。一些事实集合722A到C与所有情境相关,例如在所有情况下评估规则的基本事实集合。此外,情境可具有同时相关的多个事实集合722A到C。尽管不一定,但有可能其中存储有一或多个事实集合722A到C的知识存储库720不与任何情境相关。
事实库可被看作是所有规则的集合,且每一事实集合722A到C可为事实库的子集。然而,预期一些事实集合722A到C可为空,例如在系统700的初始化时。在一些实施例中,事实集合722A到C可重叠,且因此事实721A到D可为一个以上事实集合722A到C的成员。
在一些实施例中,规则引擎730识别由情境感知引擎735识别的情境的一或多个相关规则716A到D。规则引擎730可识别所关注的情境的相关规则716A到D,例如即时情境或预期的或常见的情境。在识别相关规则716A到D时,规则引擎730可载入相关规则716A到D(例如,到高速缓冲存储器或其它RAM存储器中)。在一个实施例中,规则引擎730通过识别与情境相关的一或多个规则集合717A到C来识别相关规则716A到D。举例来说,在情境感知引擎735识别用户正在驾驶的情况下,规则引擎730可载入将在所有情境下进行评估的基本规则的第一规则集合717A及与用户正在驾驶的情境相关的第二规则集合717C。因此,载入相关规则716A到B、D以用于快速评估。
类似地,规则引擎730可识别与由情境感知引擎735识别的情境相关的事实721A到D。然而,在一个实施例中,间接识别情境的事实721A到D,也就是说,首先识别与情境相关的规则716A到D,且从相关规则716A到D的要求识别相关事实721A到D。规则引擎730可识别所关注的情境的事实721A到D,例如即时情境或预期的或常见的情境。在识别事实721A到D时,规则引擎730可载入事实721A到D(例如,到高速缓冲存储器中)。在一个实施例中,规则引擎730通过识别一或多个事实集合722A到C来识别事实721A到D。
在用户正在驾驶的说明性实施例中,规则引擎730可载入与用户正在驾驶的情境相关的第一规则集合717A。从相关规则集合717A,规则引擎730可识别相关事实集合722B,需要所述相关事实集合722B评估即时情境的相关规则716A到B。另外,可确证对于情境所固有的事实721A到D,例如,可确证用户正在转变的事实,因为对于用户正在驾驶的情境,其为固有的。
为了优化系统700的性能,规则引擎730可仅识别及/或评估与所关注的情境相关的规则716A到D。可在识别及评估期间忽略与所关注的一或多个情境不相关的的其它规则。类似地,规则引擎730可仅识别及/或确证与所关注的情境相关的事实721A到D。可忽略与所关注的一或多个情境不相关的其它事实,例如通过不确证或以其它方式处理那些事实。在一个实施例中,在识别后更新与所关注的情境相关的一或多个事实721A到D。因此,可更新对一或多个模块750、755的订制以使得确证相关事实721A到D。举例来说,在识别用户正在驾驶的情境后,可即刻确证事实721A以指示用户正在转变。
可忽略与所关注的情境不相关的的规则716A到D。举例来说,可例如通过从高速缓冲存储器移除不相关的规则716A到D而未载入不相关的规则716A到D。另外,与感兴趣的情境不相关的或不准确的事实721A到D可忽略(例如,经移除或允许从高速缓冲存储器停用)或重新确证为默认(例如,空值)。因此,最后将不连贯的规则及事实不消耗系统700的资源。
在一些实施例中,规则716A到D及事实721A到D的情境相关性与优化方案互补。因此,规则引擎730可识别相关规则716A到D及相关事实721A到D的取样要求,且使用这些取样要求来计算或更新优化方案,例如通过更新优化参数的订制或取样速率。因此,规则引擎730可在运行时间响应于与所关注的情境相关的不同规则716A到D及/或事实721A到D动态地更新优化方案。
在一个实施例中,规则引擎730主动地响应于所关注的情境管理样本。规则引擎730可通过从存储装置舍弃失效或不相关的样本(例如,从存储样本的存储库715、720删除样本)来管理样本。另外,对于所关注的情境,规则引擎730可修改对模块750、755的一或多个订制。举例来说,规则引擎730可识别将在所关注的情境中经常地确证的事实721A,且因此修改确证事实721A以使得对于样本更经常地轮询模块750的对模块750的订制。
另外,规则引擎730可主动地管理样本以提供智能服务。规则引擎730可与情境感知引擎735交互以提供智能服务。举例来说,情境感知引擎735可基于例如蓝牙样本或NFC样本识别情境指示用户在一个人附近。情境感知引擎735可随后针对另一人载入另一人的联系人信息(例如vCard),以使得用户可快速存取另一人的姓名、职业、雇主姓名、生日及其类似者。
转而参看图8,根据一个实施例说明用于优化实施规则引擎平台的系统的方法800。图8的操作为说明性的,且不一定按所描绘的次序执行。方法800可由图1处所示的便携式电子装置100的规则引擎132或图7处所示的优化引擎740执行。
开始时,执行方法800的引擎分解多个规则(操作810)。多个规则可为存储于以通信方式与引擎耦合的存储库(例如,规则存储库133或规则存储库715)处的规则库。在一些实施例中,多个规则为规则库的子集,与当前情境相关的规则的子集或规则的阶层的子集。引擎可分解多个规则以剖析每一规则的条件的每一组分,以使得相应规则的组分可分开识别。组分可为例如事实、情境或另一规则(例如,来自规则的动作)。
其后,引擎识别每一经分解规则的一或多个相应取样要求(操作815)。对于一些规则,识别相应取样要求可为简单明了的,例如在规则需要从单个样本确证的事实的情况下。然而,其它规则可具有更高级条件性组分,例如从多个样本或事实推断的情境或事实。因此,引擎可通过确定情境或事实的构成取样要求来识别规则的取样要求。举例来说,可依据用户“在家”的事实调节规则,且“在家”事实可由连接到“家”Wi-Fi网络的Wi-Fi收发器模块或解析“家”位置的SPS模块确证。因此,引擎可将要求识别为Wi-Fi收发器样本及SPS模块样本两者。在一些实施例中,引擎与情境感知引擎交互以识别取样要求。关于图1,可从模块101到106接收或预期样本。类似地,关于图7,可从模块750、755接收样本。
在一些实施例中,规则取决于一或多个其它规则,且因此规则的取样要求不是直接可识别的。引擎可识别规则的要求,规则取决于所述要求以识别为相依规则的基础的一或多个取样要求。举例来说,第一规则需要从第二规则确证的事实,例如从由第二规则的评估确定的动作确证的事实。因此,识别第一规则的取样要求需要识别第二规则的取样要求。引擎可迭代多个规则以识别相依规则的取样要求,例如在相依规则包含多个或嵌套式规则要求的情况下。
使用多个规则中的每一规则的所识别取样要求,引擎计算优化方案以从实施引擎的系统受益(操作820)。在一个实施例中,优化方案可包含用于一或多个模块的一或多个优化参数。优化参数可包含取样模块提供样本的速率或存储或处理(例如,经确证为事实)样本的速率。对于需要此样本的一或多个规则,此优化参数通常是令人满意的,同时最小化计算上昂贵的操作或电力消耗(例如,通过重复确证事实或确定情境)。
在一个实施例中,优化参数包含用于修改一或多个模块的状态的指令。因此,优化方案可提供包含模块撤销启动或睡眠的指令的优化参数,例如在来自模块的样本不必要的情况下或在将不会将动作提供到模块的情况下。类似地,优化方案可提供优化参数,所述优化参数包含模块启动或唤醒的指令。此些优化参数可针对每一状态改变根据优化方案被提供到模块,或可被提供到模块作为模块所依附的策略(例如,何时唤醒或睡眠的计划表)。
在一些实施例中,执行方法800的引擎可使用可存储于引擎中或以其它方式可存取在其中(例如在本地存储装置中)的一或多个算法计算优化方案。算法可经调适以适应跨越多个规则的取样要求之间的关系。举例来说,两个或两个以上规则可需要相同事实,但需要事实的速率可变化。可通过平均化需要事实的速率来计算简单优化方案,以使得仅以平均值速率确证事实。
用于计算优化方案的算法可考虑任何数目个因素。在一个实施例中,识别规则之间的关系,且将其用于优化方案的算法计算。举例来说,评估为真的第一规则可导致第二规则的评估。如果第一规则不频繁地评估为真,那么第二规则的要求可对优化方案的影响较小(例如,可强调优于第二规则的要求的其它要求)。另外,可根据冲突消解议程(例如,规则的阶层或显著性)评估规则或规则集合,且可计算优化方案以使得根据议程加权规则的要求。
在一个实施例中,用于计算优化方案的算法并有所关注的一或多个情境,例如即时情境、预期的情境或常见的情境。因此,可从优化方案的计算排除与并入的情境不相关的规则。另外,规则的阶层可根据情境改变,且因此可针对不同情境不同地加权规则。在甚至另一实施例中,优化方案更新用于根据情境消解规则之间的冲突的议程。举例来说,可根据情境改变规则的阶层,或不同规则子集可用以更新优化方案。
可通过将相关优化参数提供到模块来实施优化方案(决策框825)。然而,在一些实施例中,在一或多个模块处实施优化方案可为不合需要的或不利的(决策框825)。因此,优化方案可实施于执行方法800的引擎处(例如,规则引擎132或规则引擎730)。在一个实施例中,优化方案跨越引擎及一或多个模块分布。因此,一些模块可接收及依附于优化参数,而在引擎处实施其它优化参数。
在由执行方法800的引擎实施优化方案的情况下,可根据优化方案修改一或多个样本的处理(操作830)。在一个实施例中,根据所接收样本的一或多个优化参数从样本确证事实。因此,可忽略一些所接收样本(例如,拒绝或舍弃),例如在所接收的样本超出由优化参数定义的所包含的最优取样速率的情况下。
或者,可将优化方案的优化参数提供到以通信方式与执行方法800的引擎耦合的可适用模块(操作835)。作为响应,模块依附于所提供的优化参数。举例来说,模块可根据优化参数修改其将样本发送到引擎的速率。在一个实施例中,优化参数影响提供其的模块的状态。举例来说,优化参数可包含模块撤销启动或睡眠的指令。类似地,最优取样速率可将指令提供到模块以启动或唤醒。
可在已计算优化方案之后出现影响优化方案的改变(决策框840)。影响优化方案的改变可为例如对情境、规则、事实的改变或其它类似改变。如果未出现影响优化方案的改变,那么如所实施可保持现有优化方案。
在出现影响当前优化方案的改变的情况下,执行方法800的引擎经配置以根据改变更新优化方案(操作845)。引擎可在运行时间响应于改变更新优化方案,且动态地实施经更新优化方案。在更新优化方案时,引擎可根据改变添加、修改或移除一或多个优化参数。对一个优化参数的修改可经由优化方案传播到其它优化参数。在一个实施例中,优化方案可考虑取样要求之间的关系,例如在经分解规则结构指示一个取样要求取决于另一取样要求以便确证事实的情况下。举例来说,从第一模块接收的样本可触发对来自第二模块的样本的需要以便确证事实,同时还暂时中止对来自第一模块的其它样本的需要。
类似地,引擎可响应于规则中的改变(例如添加、修改或删除的规则)更新优化方案。在一些实施例中,首先分解新或经修改的规则,以使得可识别规则的取样要求。其后,可更新任何受影响的优化参数。
引擎还可响应于事实或情境的改变而更新优化方案。事实或情境的改变可致使不同规则评估为真,且其结果是,影响一或多个规则的取样要求。其它规则可由事实或情境的改变排除,且因此可更新基于此些规则的优化参数以使得移除不适用的取样要求不再考虑。
其后,可根据实施例实施经更新优化方案(决策框825)。因此,引擎可修改处理样本的方式(操作830)。或者,引擎或可将经更新优化参数提供到模块,或指示模块停止依附于优化参数,例如通过删除优化参数(操作835)。
关于图9A,根据一个实施例说明用于优化实施规则引擎平台的系统的方法900。图9A的操作为说明性的,且不一定按所描绘的次序执行。方法900可由图1处所示的便携式电子装置100的规则引擎132执行。方法900也可由图7的规则引擎730执行,所述规则引擎可以通信方式与情境感知引擎735耦合。
最初,接收样本,其指示执行方法900的系统的用户的情况或环境(操作905)。样本可为例如日历事件、运动状态、Wi-Fi签名或任何其它类型的样本。样本可从模块(例如,模块101到106或模块750、755)接收,且可从其原始格式调适(例如,可处理原始传感器数据)。在一个实施例中,样本经确证为事实(例如,到存储库133、134或存储库715、720中)。
可从样本识别所关注的情境(操作910)。所关注的情境可为即时情境或预期的或常见的情境。可从除了所接收的样本之外的多个样本识别情境。然而,识别情境可需要一或多个样本的不存在。
在一个实施例中,间接从样本识别情境。举例来说,从事实识别情境,所述事实是从样本确证,或已从样本确证(例如,事实为空)。另外,可从情境及/或事实之间的所导出关系识别所关注的情境,例如在相对于一个事实识别一个情境指示第二情境的情况下。
根据一个实施例,可依据所识别情境识别可适用信息。可适用信息可为例如来自依据所识别情境的知识存储库(例如,知识存储库134或知识存储库720)的样本或经确证事实或可从模块(例如,模块101到106或模块750、755)检索。举例来说,在识别指示用户已进入博物馆的情境时,规则引擎平台可能够确定用户已进入的博物馆中的房间(例如,经由情境感知引擎735或来自模块750、755的Wi-Fi样本),且响应性地载入关于所述博物馆房间中的人造制品的信息(例如,知识存储库134或知识存储库720)。在另一个实例中,在情境指示用户已进入用户的办公室时,规则引擎平台可载入与到知识库(例如,知识存储库134或知识存储库720)中的“办公室”情境相关的信息或设定。
通过识别所关注的情境,随后可识别与情境相关的规则(操作915)。一或多个相关规则可为例如为执行方法900的系统的基础的规则。额外相关规则可为所识别情境所独有的或仅与一些情境相关,例如共享共同事实的情境。可根据冲突消解议程(例如与每一规则相关联的相应显著属性)识别相关规则。因此,可不识别与较高优先级的相关规则冲突的规则。
根据一个实施例,可识别情境内的规则,例如特定情境的规则集合的子集。举例来说,情境可经识别为“工作”,且规则引擎平台可接收指示系统已进入用户的办公室的地理围栏的样本。作为响应,规则引擎平台可基于情境指示用户在工作及样本指示用户已进入用户的办公室的事实识别用户的办公室的规则集合。类似地,情境可为用户在家庭环境中(例如,用户在“家”地理围栏内或在经识别为属于用户的家庭成员的多个装置附近),且因此,规则引擎平台可识别与家庭环境相关的规则或规则集合。在一个实施例中,家庭环境的规则可被定义为对在“工作”情境下识别的规则的补充。在第三实例中,情境可指示用户正在驾驶,且因此,仅与驾驶相关的规则可由规则引擎平台识别及载入。
在一些实施例中,不直接识别相关规则。而是,经由一或多个规则集合的选择识别相关规则。规则集合可与一或多个情境相关联,以使得在识别所关注的情境的情况下,可快速识别相关规则集合。此外,可根据冲突消解议程(例如按与所识别情境的相关性次序布置的规则集合的阶层)识别规则集合。
其后,情境、相关规则或两者的组合可用以确定将确证的相关事实。对于将确证的一些相关事实,可需要修改对一或多个模块的一或多个订制(决策框920)。在一个实施例中,相关规则需要对一或多个模块的一或多个订制的修改以便确定动作,例如在所确定的动作传回样本的情况下(决策框920)。因此,执行方法900的引擎可修改对一或多个模块的订制以便于有效评估相关规则(操作925)。
在一个实施例中,依据可由相关规则的评估确定的动作修改对模块的订制。跨越情境确定的动作可与不同相关规则一致地变化。因此,对于所关注的情境,来自一个模块的样本可为不必要。因此,可修改对模块的订制以使得来自所述模块的样本不被存储或以较低速率存储,例如通过减小轮询模块的速率或减小存储来自流的样本的频率。对于另一模块,相反情况可为真,且因此,可修改对其它模块的订制以使得更经常查询模块或更经常存储样本。
在一个实施例中,依据经确证以用于评估相关规则的相关事实修改对模块的订制。跨越情境确证的相关事实可与不同相关规则一致地变化。因此,可修改对模块的订制以使得可在将进行评估的相关规则需要时从样本确证一或多个相关事实,所述样本是从所述模块接收的。
尽管修改一或多个订制,但可基于情境确证一或多个相关事实(操作930)。首先可在确证之前识别相关事实。可经由一或多个事实集合的选择识别相关事实,所述事实集合例如与一或多个情境或一或多个相关规则或集合相关联的事实集合。可通过更新来自样本或其缺乏的事实、所关注的情境或一或多个规则确证相关事实。在识别及/或确证相关事实时,可载入相关事实以用于更快的存取(例如,载入到高速缓冲存储器中)。
并非所有相关事实应基于所关注的情境确证,因为一些事实将跨越一或多个情境保持有效。举例来说,对于样本可确证指示用户已停用可听消息通知的事实;此事实可跨越用户在家、驾驶去工作及在工作的情境保持有效。
在一个实施例中,不相关的事实根据情境的改变经确证为默认,例如空或假(操作930)。因此,因为识别相关事实,所以与所关注的情境不相关的事实不消耗资源。或者,不确证不相关的事实。举例来说,引擎可拒绝确证不包含于与所关注的情境相关的事实集合中的事实。因此,可忽略确证此些不相关的事实的样本;但此也可为对订制的修改的后果。
随后,可评估所识别的相关规则(操作935)。有利的是,相关规则及相关事实已经被识别,且可能经载入或高速缓存以用于快速存取。因此,引擎可仅需要使用相关事实评估所识别的相关规则。因此,可忽略不相关的规则及事实,以使得引擎不消耗资源,从而评估所有规则,接着基于情境或冲突消解议程确定采取哪一动作。在用相关事实评估相关规则时,可确定一或多个动作及/或可确证一或多个事实。
关于图9B,根据一个实施例说明用于优化实施规则引擎平台的系统的方法950。图9B的操作为说明性的,且不一定按所描绘的次序执行。方法950可由图1处所示的便携式电子装置100的规则引擎132执行。方法950也可由图7的规则引擎730执行,所述规则引擎可以通信方式与情境感知引擎735耦合。
最初,可基于所接收样本及所预期样本中的至少一者确定所关注的情境(操作955)。所接收样本或所预期样本(例如,样本的不存在)可指示执行方法950的系统的用户的情况或环境。样本可为例如日历事件、运动状态、Wi-Fi签名或任何其它类型的样本。样本可从模块(例如,模块101到106或模块750、755)接收,且可从其原始格式调适(例如,可处理原始传感器数据)。
在一个实施例中,样本经确证为事实。适当时,依据例如从模块101到106接收的样本等所接收样本及所预期样本中的一者在存储库中确证事实。在一个实施例中,仅在样本实质上更新事实(例如,改变事实的真值)的情况下确证事实。可在例如存储库133、134或存储库715、720等存储库中确证事实。事实可经确证为可能已经存储于存储库中的样本或事实(例如,推断)的组合。在一个实施例中,通过更新组织结构反映更新来确证事实。另外,可将事实添加到例如非易失性存储器等永久性存储器。
在一些实施例中,可依据所接收或所预期样本确证多个事实,例如,所接收样本或所预期样本可使一个以上事实的同时更新成为必需。确切地说,此情形可为从一个样本确证的事实及从包含一个样本的多个样本或事实确证的一或多个事实的状况。
所关注的情境可为即时情境或预期的或常见的情境。可从除了所接收的样本之外的多个样本识别情境。然而,在一些实施例中,识别情境可需要一或多个样本的不存在。
在一个实施例中,间接从样本识别情境。举例来说,可从事实识别情境,所述事实是从样本确证,或已从样本确证(例如,事实为空)。另外,可从情境及/或事实之间的所导出关系识别所关注的情境,例如在相对于一个事实识别一个情境指示第二情境的情况下。
通过识别所关注的情境,可从多个规则识别至少一个规则,其中至少一个规则与所关注的情境相关(操作965)。一或多个相关规则可为例如对于执行方法950的系统为基础的规则。额外相关规则可为所识别情境所独有的或仅与一些情境相关,例如共享共同事实的情境。可根据冲突消解议程(例如与每一规则相关联的相应显著属性)识别相关规则。因此,可不识别与较高优先级的相关规则冲突的规则。在一些实施例中,从多个规则识别与所关注的情境相关的规则的子集;至少一个规则可为规则的子集的成员。
随后,对于情境可评估所识别的相关规则(操作970)。有利的是,至少一个相关规则已经被识别,且可能经载入或高速缓存以用于快速存取。因此,引擎可仅需要评估所识别的相关规则。因此,可忽略不相关的规则,以使得引擎不消耗资源,从而评估所有规则,接着基于情境或冲突消解议程确定采取哪一动作(操作975)。在评估相关规则时,可确定一或多个动作及/或可确证一或多个事实。在一个实施例中,至少一个相关规则是来自与所关注的情境相关的所识别的规则子集。
如本文中所描述的规则引擎及/或规则引擎平台的实施例可用以控制、监视及/或管理例如便携式电子装置等系统的所有功能。此些功能可包含,但不限于,情境感知、模块功能(例如,传感器子系统或应用程序)及其它系统功能(例如,电力管理、用户输入接受及处理等)。因此,本文中所描述的规则引擎及/或规则引擎平台可用作控制器以确定如何及/或何时运行传感器、应用程序、子系统及其它模块或功能。同样,本文中所描述的规则引擎及/或规则引擎平台可影响校准、定时、传感器的活动状态(例如,开或关)及其它相关功能、应用程序、子系统及系统的其它模块或功能。
本文中所描述的实施例可由适合于提供所描述功能的多种不同装置实施。在一个实施例中,如本文中所描述的计算系统包含用于将多个规则存储于规则存储库中的装置;用于订制经配置以提供多个样本的多个模块的装置;用于基于订制装置识别所关注的情境的装置;用于识别与所关注的情境相关的第一规则集合的装置;及用于评估包含于第一规则集合中的至少一个规则的装置。
本文中的教示可并入到例如计算系统等设备中(例如,实施于设备内或由设备执行)以优化所述设备的性能。本文中所描述的实施例可经受高速缓存及芯片组优化。在一些实施例中,此优化是以存储器以为代价的,例如RAM存储器、快闪存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器或适合于实施于设备上的其它存储单元。举例来说,本文中所教示的一或多个方面可并入到电话(例如,蜂窝式电话)、个人数据助理(PDA)、平板计算机、移动计算机、膝上型计算机、娱乐装置(例如,音乐或视频装置)、桌上型计算机、客户端计算系统、服务器计算系统或其它类似计算系统中。这些系统可具有不同电力及数据要求。
所属领域的技术人员将了解,可使用多种不同技术和技艺中的任一者来表示信息和信号。举例来说,可由电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在以上描述中始终参考的数据、指令、命令、信息、信号、位、符号及码片。
所属领域的技术人员将进一步了解,可将结合本文中所揭示的实施例而描述的各种说明性逻辑区块、模块、电路和算法步骤实施为电子硬件、计算机软件或两者的组合。为清楚说明硬件与软件的此互换性,上文已大致关于其功能性而描述了各种说明性组件、块、模块、电路及步骤。所述功能性是实施为硬件还是软件取决于特定应用及施加于整个系统的设计约束。所属领域的技术人员可针对每一特定应用以不同方式来实施所描述的功能性,但所述实施方案决定不应被解释为会导致脱离本发明的范围。
可使用经设计以执行本文所描述的功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或其任何组合来实施或执行结合本文中所揭示的实施例而描述的各种说明性逻辑区块、模块和电路。通用处理器可为微处理器,但在替代方案中,处理器可为任何常规的处理器、控制器或微控制器。处理器也实施为计算装置的组合,例如,DSP与微处理器的组合、多个微处理器、一或多个微处理器联合DSP核心,或任何其它此配置。
可直接以硬件、以由处理器执行的软件模块或以上述两者的组合实施结合本文所揭示的实施例而描述的方法或算法的步骤。软件模块可驻留于RAM存储器、闪存存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可装卸磁盘或适合于便携式电子装置的所属领域中已知的任何其它形式的存储媒体中。示范性存储媒体耦合到处理器,使得处理器可从存储媒体读取信息及将信息写入到存储媒体。在替代方案中,存储媒体可与处理器成一体式。处理器及存储媒体可驻留于ASIC中。ASIC可驻留于用户终端中。在替代例中,处理器及存储媒体可作为离散组件驻留于用户终端中。
在一或多个示范性实施例中,所描述的功能可在硬件、软件、固件或其任何组合中实施。如果在软件中实施为计算机程序产品,那么可将功能作为一或多个指令或代码存储于计算机可读媒体上或经由计算机可读媒体予以发射。计算机可读媒体包含计算机存储媒体与包含促进计算机程序从一处传递到另一处的任何媒体的通信媒体两者。存储媒体可为可由计算机存取的任何可用媒体。作为实例而非限制,此些计算机可读媒体可包括RAM、ROM、EEPROM或可用于载送或存储呈指令或数据结构的形式的所要程序代码且可由计算机(例如,经配置为计算装置的便携式电子装置)存取的任何其它媒体。同样,可恰当地将任何连接称作计算机可读媒体。举例来说,如果使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)或例如红外线、无线电及微波的无线技术从网站、服务器或其它远程源发射软件,那么同轴电缆、光纤电缆、双绞线、DSL或例如红外线、无线电及微波的无线技术包含于媒体的定义中。如本文中所使用,磁盘及光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软磁盘及蓝光光盘,其中磁盘通常磁性地复制数据,而光盘使用激光光学地复制数据。上文的组合也应包含在计算机可读媒体的范围内。在一些实施例中,计算机可读媒体可为非暂时性的。
提供所揭示实施例的先前描述以使得任何所属领域的技术人员能够制作或使用本发明。所属领域的技术人员将容易明白对这些实施例的各种修改,且在不脱离本发明的精神或范围的情况下,本文所界定的一般原理可应用于其它实施例。因此,本发明并不既定限于本文中所展示的实施例,而应符合与本文中所揭示的原理及新颖特征一致的最广范围。
Claims (42)
1.一种由用于调适规则引擎的与用户相关联的系统执行的方法,所述方法包括:
基于来自第一取样模块的所接收样本及所预期样本中的至少一者确定所述系统的第一情境;
识别第一多个规则中的至少一个规则,其中所述所识别的至少一个规则与所述第一情境相关;
对于所述第一情境评估所述所识别的相关规则;及
忽略所述第一多个规则中剩余的与所述第一情境不相关的至少一个规则,以使得对于所述第一情境不评估所述至少一个规则。
2.根据权利要求1所述的方法,其中识别所述至少一个相关规则包括:
从所述第一多个规则识别包含所述至少一个规则的具有与所述第一情境相关的第二多个规则的相关规则集合。
3.根据权利要求2所述的方法,其进一步包括:
评估所述相关规则集合的每一规则。
4.根据权利要求2所述的方法,其进一步包括:
从所述第一多个规则识别具有与所述第一情境相关且将进行评估的第三多个规则的第二规则集合。
5.根据权利要求2所述的方法,其中所述第一情境为所述用户的办公室,且对于办公室情境,所述相关规则集合为相关的。
6.根据权利要求1所述的方法,其中所述第一情境为位置及地理围栏中的一者。
7.根据权利要求6所述的方法,其中所述第一取样模块为蜂窝式模块、蓝牙模块、Wi-Fi模块、用户输入模块、近场通信模块、卫星定位系统模块或存储于所述系统的存储器中的应用程序模块中的一者。
8.根据权利要求1所述的方法,其进一步包括:
识别与所述第一情境相关的至少一个事实。
9.根据权利要求8所述的方法,其进一步包括:
分解所述相关规则以识别由所述相关规则所需要的所述至少一个事实。
10.根据权利要求8所述的方法,其中识别与所述第一情境相关的所述至少一个事实包括:
识别包含所述至少一个事实的具有与所述第一情境相关的多个事实的相关事实集合。
11.根据权利要求8所述的方法,其进一步包括:
基于所述第一情境确证所述至少一个事实。
12.根据权利要求11所述的方法,其中所述第一情境指示所述用户正在驾驶,且所述至少一个事实经确证以指示所述用户正基于所述第一情境进行转变。
13.根据权利要求8所述的方法,其进一步包括:
将与所述第一情境不相关的第二事实确证为默认。
14.根据权利要求13所述的方法,其中确证与所述第一情境不相关的所述第二事实包括:
识别包含所述第二事实的具有与所述第一情境不相关的多个事实的第二事实集合;及
将所述第二事实集合中的所述多个事实中的每一事实确证为默认。
15.根据权利要求1所述的方法,其进一步包括:
确定针对由第二取样模块提供的第二所接收样本及第二所预期样本中的至少一者的为满足所述相关规则所需要的取样要求;
基于所述相关规则的所述取样要求计算优化方案;及
基于所述优化方案修改所述第二取样模块的取样速率。
16.根据权利要求15所述的方法,其中修改所述取样速率包括:
修改对所述第二取样模块的订制。
17.根据权利要求1所述的方法,其进一步包括:
确定满足与所述第一情境相关的规则集合所需要的多个取样要求,其中所述规则集合包括包含所述相关规则的多个规则;
基于所述相关规则集合的所述多个取样要求计算优化方案;及
基于所述优化方案修改用以提供所述多个取样要求中的相应取样要求的至少一个样本的第二取样模块的取样速率。
18.根据权利要求17所述的方法,其中计算所述优化方案包括:
评估所述多个取样要求;
从所述多个取样要求的所述评估确定第一规则的第一取样要求需要以第一速率来自所述第二取样模块的样本,且第二规则的第二取样要求需要以不同于所述第一速率的第二速率来自所述第二取样模块的所述样本;及
计算为所述第一规则及所述第二规则指定令人满意的所述第二取样模块的最优取样速率的优化参数。
19.根据权利要求1所述的方法,其包括接收由所述第一取样模块提供的样本,其中确定包括:
识别将提供的样本与所存储情境之间的映射;及
确定所述第一情境包含所述所存储情境。
20.根据权利要求19所述的方法,其中所述样本为Wi-Fi签名,且所述所存储情境为建筑物中的房间。
21.根据权利要求1所述的方法,其进一步包括:
导出所述第一情境与第二情境之间的关系。
22.根据权利要求21所述的方法,其中所述第一情境指示所述用户在家,且所述第二情境指示所述用户在办公室,且所述经导出关系包含所述用户从所述家行进到所述办公室的行进持续时间。
23.一种计算系统,其包括:
包含至少一个取样模块的多个模块,所述至少一个取样模块经配置以发送与所述取样模块相关联的样本;及
可操作以执行规则引擎平台的处理器,所述规则引擎平台包含经配置以存储多个规则的规则存储库;经配置以基于来自所述取样模块的所接收样本及所预期样本中的至少一者确定所述计算系统的所关注的情境的情境感知引擎;及经配置以基于所述所关注的情境识别包含于与所述所关注的情境相关的所述多个规则中的第一规则集合及评估所述第一规则集合中的至少一个规则的规则引擎。
24.根据权利要求23所述的计算系统,其中所述处理器经进一步配置以执行所述多个模块中的相应模块。
25.根据权利要求23所述的计算系统,其中所述规则引擎经进一步配置以忽略包含于与所述所关注的情境不相关的所述多个规则中的第二规则集合,以使得对于所述所关注的情境并未评估包含于所述第二集合中的规则。
26.根据权利要求23所述的计算系统,其中所述规则引擎经进一步配置以识别包含于所述多个规则中的与所述所关注的情境相关的第三规则集合。
27.根据权利要求26所述的计算系统,其中所述规则引擎经进一步配置以根据冲突消解议程识别用于评估的所述至少一个规则,其中所述至少一个规则与包含于与所述所关注的情境相关的所述第一及第三规则集合中的一者中的第二规则冲突。
28.根据权利要求23所述的计算系统,其中所述情境感知引擎经配置以基于至少一个样本的接收及所述至少一个样本的不存在中的一者确定所述所关注的情境。
29.根据权利要求23所述的计算系统,其中所述所关注的情境指示所述计算系统的用户是在会议中、在讨论中、在呼叫中、在地理围栏附近、在一个人附近、在家、会议将会迟到及正在驾驶中的一者。
30.根据权利要求23所述的计算系统,其中所述所关注的情境为即时情境、预期的情境及常见的情境中的一者。
31.根据权利要求23所述的计算系统,其中所述取样模块为蜂窝式模块、蓝牙模块、Wi-Fi模块、用户输入模块、近场通信模块、全球定位系统模块或存储于所述计算系统的存储器中的应用程序模块中的一者。
32.根据权利要求23所述的计算系统,其中所述规则引擎经进一步配置以基于所述所关注的情境识别与所述所关注的情境相关的至少一个事实。
33.根据权利要求32所述的计算系统,其中所述规则引擎经配置以分解包含于基于所述所关注的情境识别的所述第一规则集合中的所述规则,以识别由所述第一规则集合中的所述至少一个规则所需要的所述至少一个事实。
34.根据权利要求32所述的计算系统,其中所述规则引擎经进一步配置以从所述所关注的情境、至少一个样本的接收及所述至少一个样本的不存在中的一者确证所述所识别事实。
35.根据权利要求23所述的计算系统,其中所述规则引擎经进一步配置以将与所述所关注的情境不相关的多个事实确证为空及假中的一者。
36.根据权利要求23所述的计算系统,其中所述规则引擎经进一步配置以订制第二取样模块,且基于所述所关注的情境修改对所述第二取样模块的所述订制。
37.根据权利要求36所述的计算系统,其中所述规则引擎经配置以通过修改查询所述第二取样模块的速率、轮询所述第二取样模块的速率及存储在取样流中从所述第二取样模块接收的多个样本的速率中的一者来修改所述订制。
38.根据权利要求36所述的计算系统,其中所述所关注的情境指示所述计算系统的用户在一个人附近,且进一步其中所述规则引擎平台经配置以修改对所述第二取样模块的所述订制以使得接收包含所述人的联系人信息的样本。
39.根据权利要求23所述的计算系统,其中所述规则引擎平台进一步包含优化引擎,所述优化引擎经配置以确定满足与所述所关注的情境相关的所述第一规则集合所需要的多个取样要求;基于所述多个取样要求计算优化方案;及基于所述优化方案修改经配置以提供至少一个所需要样本的第二取样模块的取样速率。
40.根据权利要求23所述的计算系统,其中所述规则引擎经进一步配置以导出所述所关注的情境与第二情境之间的关系。
41.一种计算系统,其包括:
用于将多个规则存储于规则存储库中的装置;
用于订制经配置以提供多个样本的多个模块的装置;
用于基于所述订制装置识别所关注的情境的装置;
用于识别与所述所关注的情境相关的第一规则集合的装置;及
用于评估包含于所述第一规则集合中的至少一个规则的装置。
42.一种其中存储有指令的非暂时性计算机可读存储媒体,所述指令在由计算系统执行时致使所述计算系统执行方法,所述方法包括:
基于来自第一取样模块的所接收样本及所预期样本中的至少一者确定所述计算系统的第一情境;
识别第一多个规则中的至少一个规则,其中所述所识别的至少一个规则与所述第一情境相关;
评估所述第一情境的所述所识别的相关规则;及
忽略所述第一多个规则中剩余的与所述第一情境不相关的至少一个规则,以使得对于所述第一情境不评估所述至少一个规则。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261719876P | 2012-10-29 | 2012-10-29 | |
US61/719,876 | 2012-10-29 | ||
US13/835,053 | 2013-03-15 | ||
US13/835,053 US20140122396A1 (en) | 2012-10-29 | 2013-03-15 | Rules engine as a platform for mobile applications |
PCT/US2013/061113 WO2014070329A1 (en) | 2012-10-29 | 2013-09-23 | Rules engine as a platform for mobile applications |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104756074A true CN104756074A (zh) | 2015-07-01 |
CN104756074B CN104756074B (zh) | 2018-04-27 |
Family
ID=50548314
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380056230.3A Expired - Fee Related CN104756074B (zh) | 2012-10-29 | 2013-09-23 | 作为移动应用的平台的规则引擎 |
CN201380056159.9A Pending CN104769616A (zh) | 2012-10-29 | 2013-10-10 | 作为移动应用的平台的规则引擎 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380056159.9A Pending CN104769616A (zh) | 2012-10-29 | 2013-10-10 | 作为移动应用的平台的规则引擎 |
Country Status (6)
Country | Link |
---|---|
US (2) | US20140122378A1 (zh) |
EP (2) | EP2912545A4 (zh) |
JP (2) | JP6199401B2 (zh) |
KR (2) | KR20150079887A (zh) |
CN (2) | CN104756074B (zh) |
WO (2) | WO2014070329A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108196875A (zh) * | 2018-01-31 | 2018-06-22 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种用于app自身业务的统计系统及方法 |
CN109919170A (zh) * | 2018-11-29 | 2019-06-21 | 阿里巴巴集团控股有限公司 | 变更评估方法、装置、电子设备及计算机可读存储介质 |
CN110442424A (zh) * | 2019-07-12 | 2019-11-12 | 苏州浪潮智能科技有限公司 | 一种实现虚拟机管理平台动态配置规则的方法和装置 |
CN112579071A (zh) * | 2020-12-24 | 2021-03-30 | 福建升腾资讯有限公司 | 一种基于表单设计器和事件规则的表单设计方法及系统 |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10715380B2 (en) * | 2011-05-23 | 2020-07-14 | Apple Inc. | Setting a reminder that is triggered by a target user device |
US8971924B2 (en) | 2011-05-23 | 2015-03-03 | Apple Inc. | Identifying and locating users on a mobile network |
US10120977B2 (en) | 2012-12-18 | 2018-11-06 | Bruce Corporation | Secure healthcare management and communication system |
US9503902B1 (en) | 2014-08-06 | 2016-11-22 | Lillie Bruce Coney | Proximity-based system that secures linked IP enabled devices |
EP2962483B1 (en) * | 2013-02-27 | 2021-07-14 | Hewlett-Packard Development Company, L.P. | Selection of a credential for a target device to perform next state |
US20150032238A1 (en) * | 2013-07-23 | 2015-01-29 | Motorola Mobility Llc | Method and Device for Audio Input Routing |
US9224277B1 (en) | 2014-08-06 | 2015-12-29 | Belkin International, Inc. | Detector devices for presenting notifications and supporting context inferences |
US10028147B1 (en) | 2014-08-06 | 2018-07-17 | Bruce Corporation | Dynamic defenses to secure a proximity-based communication system of linked wireless-enabled devices |
US11190400B2 (en) | 2014-08-06 | 2021-11-30 | Belkin International, Inc. | Identifying and automating a device type using image data |
US10146838B2 (en) * | 2014-09-30 | 2018-12-04 | At&T Intellectual Property I, L.P. | Contextual management of client devices |
US9351152B2 (en) * | 2014-10-21 | 2016-05-24 | Fujitsu Limited | Automatically quieting mobile devices |
US9959425B2 (en) * | 2014-12-31 | 2018-05-01 | Reliance Jio Infocomm Limited | Method and system of privacy protection in antagonistic social milieu/dark privacy spots |
CN107645403B (zh) * | 2016-07-22 | 2020-07-03 | 阿里巴巴集团控股有限公司 | 终端规则引擎装置、终端规则运行方法 |
US10397734B2 (en) * | 2016-11-11 | 2019-08-27 | International Business Machines Corporation | System and methodology for activating geofence from selection list |
US11755449B1 (en) * | 2017-06-01 | 2023-09-12 | Alarm.Com Incorporated | Screen feed analytics |
US11301134B2 (en) | 2017-10-26 | 2022-04-12 | International Business Machines Corporation | Using attack trees to reduce memory consumption by rule engines |
US20190156225A1 (en) * | 2017-11-20 | 2019-05-23 | International Business Machines Corporation | Optimizing a hierarchical rule-based decision policy |
CN108960584A (zh) * | 2018-06-13 | 2018-12-07 | 东软集团股份有限公司 | 工作流任务分类方法、装置、可读存储介质和电子设备 |
CN109783071B (zh) * | 2019-01-21 | 2022-03-29 | 浪潮软件股份有限公司 | 基于Drools规则引擎的政务规则设计方法及系统 |
US11514361B2 (en) * | 2019-08-30 | 2022-11-29 | International Business Machines Corporation | Automated artificial intelligence radial visualization |
US11023220B2 (en) | 2019-09-26 | 2021-06-01 | Dell Products L.P. | Firmware update with integrated smart sequence and action engine |
US11379694B2 (en) * | 2019-10-25 | 2022-07-05 | Vmware, Inc. | Scalable and dynamic data collection and processing |
US11321115B2 (en) | 2019-10-25 | 2022-05-03 | Vmware, Inc. | Scalable and dynamic data collection and processing |
US20210279606A1 (en) * | 2020-03-09 | 2021-09-09 | Samsung Electronics Co., Ltd. | Automatic detection and association of new attributes with entities in knowledge bases |
US11106801B1 (en) * | 2020-11-13 | 2021-08-31 | Accenture Global Solutions Limited | Utilizing orchestration and augmented vulnerability triage for software security testing |
US20220358228A1 (en) * | 2021-05-04 | 2022-11-10 | Veza Technologies, Inc. | Enforcement of authorization rules across data environments |
CN113568610B (zh) * | 2021-09-28 | 2022-02-25 | 国网江苏省电力有限公司营销服务中心 | 一种电力营销系统的业务规则引擎库系统的实现方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090157805A1 (en) * | 2007-12-14 | 2009-06-18 | Research In Motion Limited | Method and system for specifying, applying and extending application related aspects through policies, rules and/or triggers |
US20100205134A1 (en) * | 2008-12-19 | 2010-08-12 | Daniel Sandholdt | Rule based processing system and method for identifying events |
US20100317371A1 (en) * | 2009-06-12 | 2010-12-16 | Westerinen William J | Context-based interaction model for mobile devices |
US20110161076A1 (en) * | 2009-12-31 | 2011-06-30 | Davis Bruce L | Intuitive Computing Methods and Systems |
CN102164170A (zh) * | 2010-02-22 | 2011-08-24 | 阿瓦雅公司 | 情境性相关引擎 |
US20110280640A1 (en) * | 2010-05-17 | 2011-11-17 | Palo Alto Research Center Incorporated | System and Methods to use context graphs for targeting communications |
US20120115453A1 (en) * | 2010-11-10 | 2012-05-10 | Google Inc. | Self-aware profile switching on a mobile computing device |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01258038A (ja) * | 1988-04-07 | 1989-10-16 | Meidensha Corp | 推論方式 |
JP3635319B2 (ja) * | 1999-09-16 | 2005-04-06 | 日本電信電話株式会社 | コンテクスト把握システムと方法およびその処理プログラムを記録した記録媒体 |
US7330717B2 (en) * | 2001-02-23 | 2008-02-12 | Lucent Technologies Inc. | Rule-based system and method for managing the provisioning of user applications on limited-resource and/or wireless devices |
US20040216147A1 (en) * | 2002-07-18 | 2004-10-28 | Motorola, Inc. | Component based application middleware framework |
US7137099B2 (en) * | 2003-10-24 | 2006-11-14 | Microsoft Corporation | System and method for extending application preferences classes |
WO2006016690A1 (en) * | 2004-08-09 | 2006-02-16 | Vodafone K.K. | Measurement data collection method and portable information device |
JP2006113744A (ja) * | 2004-10-13 | 2006-04-27 | Sony Corp | 情報処理装置および方法、並びにプログラム |
US8583139B2 (en) * | 2004-12-31 | 2013-11-12 | Nokia Corporation | Context diary application for a mobile terminal |
JP4161998B2 (ja) * | 2005-03-28 | 2008-10-08 | 日本電気株式会社 | 負荷分散振り分けシステム、イベント処理分散制御装置並びにイベント処理分散制御プログラム |
GB0613955D0 (en) * | 2006-07-13 | 2007-01-10 | Bae Systems Plc | Controller |
JP5089140B2 (ja) * | 2006-11-14 | 2012-12-05 | 三菱電機株式会社 | 情報処理装置及び情報処理方法及びプログラム |
US20080194233A1 (en) * | 2007-02-12 | 2008-08-14 | Bridgewater Systems Corp. | Systems and methods for context-aware service subscription management |
US8205166B2 (en) * | 2007-07-20 | 2012-06-19 | International Business Machines Corporation | Methods for organizing information accessed through a web browser |
US20090083768A1 (en) * | 2007-09-20 | 2009-03-26 | Hatalkar Atul N | Context platform framework for aggregation, analysis and use of contextual information |
JP5011190B2 (ja) * | 2008-03-31 | 2012-08-29 | 株式会社エヌ・ティ・ティ・データ | コンテクスト装置およびプログラム |
WO2009156978A1 (en) * | 2008-06-26 | 2009-12-30 | Intuitive User Interfaces Ltd | System and method for intuitive user interaction |
JP5208637B2 (ja) * | 2008-09-16 | 2013-06-12 | 株式会社東芝 | 情報処理装置、方法及びプログラム |
US8405505B2 (en) * | 2009-05-26 | 2013-03-26 | Qualcomm Incorporated | Power management of sensors within a mobile device |
US8737961B2 (en) * | 2009-09-23 | 2014-05-27 | Nokia Corporation | Method and apparatus for incrementally determining location context |
JP5419746B2 (ja) * | 2010-02-23 | 2014-02-19 | 株式会社日立製作所 | 管理装置及び管理プログラム |
CN102893327B (zh) * | 2010-03-19 | 2015-05-27 | 数字标记公司 | 直觉计算方法和系统 |
US20120203491A1 (en) * | 2011-02-03 | 2012-08-09 | Nokia Corporation | Method and apparatus for providing context-aware control of sensors and sensor data |
US8965827B2 (en) * | 2011-03-30 | 2015-02-24 | Computer Sciences Corporation | Rules execution platform system and method |
US20130024873A1 (en) * | 2011-07-19 | 2013-01-24 | Mitel Networks Corporation | Context-aware applications and methods |
US8180583B1 (en) * | 2011-11-16 | 2012-05-15 | Google Inc. | Methods and systems to determine a context of a device |
US9400641B2 (en) * | 2012-02-29 | 2016-07-26 | Red Hat, Inc. | Adaptable middleware layer |
-
2013
- 2013-03-15 US US13/834,987 patent/US20140122378A1/en not_active Abandoned
- 2013-03-15 US US13/835,053 patent/US20140122396A1/en not_active Abandoned
- 2013-09-23 WO PCT/US2013/061113 patent/WO2014070329A1/en active Application Filing
- 2013-09-23 CN CN201380056230.3A patent/CN104756074B/zh not_active Expired - Fee Related
- 2013-09-23 EP EP13783711.8A patent/EP2912545A4/en not_active Withdrawn
- 2013-09-23 JP JP2015539604A patent/JP6199401B2/ja not_active Expired - Fee Related
- 2013-09-23 KR KR1020157014073A patent/KR20150079887A/ko not_active Application Discontinuation
- 2013-10-10 WO PCT/US2013/064382 patent/WO2014070409A2/en active Application Filing
- 2013-10-10 EP EP13785990.6A patent/EP2912606A4/en not_active Withdrawn
- 2013-10-10 KR KR1020157014068A patent/KR20150079885A/ko not_active Application Discontinuation
- 2013-10-10 CN CN201380056159.9A patent/CN104769616A/zh active Pending
- 2013-10-10 JP JP2015539643A patent/JP2015534196A/ja active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090157805A1 (en) * | 2007-12-14 | 2009-06-18 | Research In Motion Limited | Method and system for specifying, applying and extending application related aspects through policies, rules and/or triggers |
US20100205134A1 (en) * | 2008-12-19 | 2010-08-12 | Daniel Sandholdt | Rule based processing system and method for identifying events |
US20100317371A1 (en) * | 2009-06-12 | 2010-12-16 | Westerinen William J | Context-based interaction model for mobile devices |
US20110161076A1 (en) * | 2009-12-31 | 2011-06-30 | Davis Bruce L | Intuitive Computing Methods and Systems |
CN102164170A (zh) * | 2010-02-22 | 2011-08-24 | 阿瓦雅公司 | 情境性相关引擎 |
US20110280640A1 (en) * | 2010-05-17 | 2011-11-17 | Palo Alto Research Center Incorporated | System and Methods to use context graphs for targeting communications |
US20120115453A1 (en) * | 2010-11-10 | 2012-05-10 | Google Inc. | Self-aware profile switching on a mobile computing device |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108196875A (zh) * | 2018-01-31 | 2018-06-22 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种用于app自身业务的统计系统及方法 |
CN108196875B (zh) * | 2018-01-31 | 2021-07-09 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种用于app自身业务的统计系统及方法 |
CN109919170A (zh) * | 2018-11-29 | 2019-06-21 | 阿里巴巴集团控股有限公司 | 变更评估方法、装置、电子设备及计算机可读存储介质 |
CN109919170B (zh) * | 2018-11-29 | 2023-12-05 | 创新先进技术有限公司 | 变更评估方法、装置、电子设备及计算机可读存储介质 |
CN110442424A (zh) * | 2019-07-12 | 2019-11-12 | 苏州浪潮智能科技有限公司 | 一种实现虚拟机管理平台动态配置规则的方法和装置 |
CN112579071A (zh) * | 2020-12-24 | 2021-03-30 | 福建升腾资讯有限公司 | 一种基于表单设计器和事件规则的表单设计方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2014070329A1 (en) | 2014-05-08 |
JP2015535381A (ja) | 2015-12-10 |
CN104769616A (zh) | 2015-07-08 |
WO2014070409A2 (en) | 2014-05-08 |
CN104756074B (zh) | 2018-04-27 |
EP2912545A1 (en) | 2015-09-02 |
US20140122378A1 (en) | 2014-05-01 |
EP2912606A2 (en) | 2015-09-02 |
WO2014070409A3 (en) | 2014-11-27 |
KR20150079887A (ko) | 2015-07-08 |
US20140122396A1 (en) | 2014-05-01 |
EP2912545A4 (en) | 2017-06-28 |
JP6199401B2 (ja) | 2017-09-20 |
KR20150079885A (ko) | 2015-07-08 |
EP2912606A4 (en) | 2017-06-28 |
JP2015534196A (ja) | 2015-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104756074A (zh) | 作为移动应用的平台的规则引擎 | |
KR101434062B1 (ko) | 별도의 장치로부터의 씨드 응용 프로그램에 기초한 응용 프로그램 설치 | |
CN102567091B (zh) | 电子通信优先分配 | |
US9405838B2 (en) | Determining an active persona of a user device | |
CN104412264B (zh) | 预先缓存与旅行目的地相关的数据 | |
EP3688965B1 (en) | Smart advanced content retrieval | |
MX2014007323A (es) | Metodo, sistema, y dispositivo para navegacion basada en lista de cosas por hacer. | |
EP3092555A1 (en) | Audio triggers based on context | |
CN103597442A (zh) | 多媒体对象的音频控制 | |
CN102523102A (zh) | 跨异质设备类型的统一策略 | |
CN104756596A (zh) | 移动设备的智能主界面 | |
US20210397313A1 (en) | Dynamic application content on home screen | |
CN103544244A (zh) | 信息处理方法、装置及移动终端 | |
US9442946B1 (en) | Methods and systems of processing contextual information | |
KR20190065121A (ko) | 클라우드 환경에서 실시간 공간 상태 제공 방법 및 장치 | |
KR20150051813A (ko) | 복수의 보안 모듈을 구비하는 컴퓨팅 장치의 보안을 동적으로 제어하는 장치 및 방법 | |
CN108629003A (zh) | 内容加载方法与装置 | |
US20130097105A1 (en) | Context aware apparatus and method | |
KR20230100896A (ko) | 데이터베이스를 관리하기 위한 방법 | |
Chinnakali et al. | Organising the knowledge from stack overflow about location‐sensing of Android applications | |
JP2023039924A (ja) | 機器に搭載された多数の連合学習モデルを管理する方法、システム、およびコンピュータプログラム | |
KR20230075954A (ko) | 데이터 캐싱을 수행하는 기법 | |
CN118364793A (zh) | 带表头表格显示方法、装置、电子设备和计算机可读介质 | |
CN117215622A (zh) | 软件升级的管理方法、电子设备、存储介质和车辆 | |
Dargie | Managing Context Rules in Mobile Devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180427 Termination date: 20190923 |