用于聚合、分析和使用上下文信息的上下文平台框架的制作方法

文档序号:6467007阅读:172来源:国知局

专利名称::用于聚合、分析和使用上下文信息的上下文平台框架的制作方法用于聚合、分析和使用上下文信息的上下文平台框架
背景技术
:上下文知晓系统或设备关注上下文的获取(例如,使用传感器来察觉情形(situation))、上下文的理解(例如,将所察觉的传感器激励与上下文匹配)以及基于所识别的上下文的应用行为(例如,基于上下文触发动作)。上下文知晓设备的目标在于适配它们的行为,做出决策或以用户的名义采取动作而不需要明确的用户输入。例如,上下文知晓移动电话可以知道其当前在会议室中以及用户已经坐下。该移动电话可以推断出该用户当前正在会议中,并且自动地拒绝任何不重要的电话呼叫。近期,各种新传感器已经变为在市场上可以获得。相应的一组新应用和使用同样正在变得可以获得。然而,上下文知晓设备的现今实现方式示出传感器的较窄使用,其中特定传感器导致特定使用。此种方案不允许更广地使用传感器。图1例示了用于聚合、分析和使用上下文信息的上下文平台框架(framework)的一个实施例;图2例示了上下文引擎的一个实施例;图3例示了策略引擎的一个实施例;图4例示了上下文引擎的逻辑组件之间的依赖性的一个实施例;图5例示了上下文模式(schema)的一个实施例;图6例示了本发明的环境的一个实施例;图7例示了用于例示如何向聚合器提供上下文信息的逻辑流程图的一个实施例;图8例示了用于例示客户机如何访问聚合器中的上下文数据的逻辑流程图的一个实施例;图9例示了用于例示客户机如何向分析器提供分析规则的逻辑流程图的一个实施例;图IO例示了策略引擎的操作的逻辑流程图的一个实施例。具体实施例方式本发明的实施例提供了用于聚合、分析和使用上下文信息的上下文平台框架。在实施例中,上下文引擎对上下文客户机隐藏传感器特有的特性,并且为客户机提供统一的机制来访问不同的上下文源。在实施例中,传感器可以包括物理传感器和软传感器(例如,基于软件的源)两者。上下文引擎的聚合器通过聚合上下文信息来使上下文信息的源与上下文信息的用户(即,客户机)解耦。在实施例中,上下文引擎的分析器可以对所聚合的上下文信息进行分析,以计算具有更有用的本性(nature)的新的上下文信息,如客户机所察觉到的。同样,上下文引擎的实施例促进由客户机另外执行的对上下文信息的带外处理。本发明的实施例使得上下文客户机免于进行上下文信息获取、聚合、监测和分析的连续任务,并且使得客户机能够关注它们的主要任务或者根据需要甚至进入功率节省睡眠状态。在实施例中,如可由客户机经由上下文引擎的分析器所使用的分析规则而定制的,当出现"在上下文上重要的"事件或情形时可以触发客户机。策略引擎可以基于所聚合的上下文信息中的变化、所计算出的上下文信息中的变化以及控制策略规则来触发实现上下文平台框架的物理平台内部或者其周围中的可触知动作。在实施例中,由上下文平台框架根据上下文模式来存储和处理上下文信息。描述和要求了其它实施例。不同实施例可以包括一个或多个元件或组件。元件可以包括被配置来执行确定操作的任何结构。如针对给定组设计参数或性能限制所期望的,每个元件可以被实现为硬件、软件或其任何组合。尽管可以通过例示来利用特定的拓扑中的有限数目的元件来描述实施例,但是如针对给定实现方式所期望的,该实施例可以包括替换拓扑中的更多或更少元件。值得注意的是,"一个实施例"或"实施例"的任何引用意味着结合该实施例描述的特定特征、结构或特性可以包括在至少一个实施例中。短语"在一个实施例中"在说明书中的不同位置处的出现不必都指同一实施例。图1例示了用于聚合、分析和使用上下文信息的上下文平台框架100的一个实施例。在一个实施例中,上下文平台框架100包括上下文引擎102和策略引擎104。上下文平台框架100还包括一个或多个提供者106-l-n,其中n是任意正整数;一个或多个客户机108-l-m,其中m是任意正整数;以及一个或多个激励器110-l-p,其中p是任意正整数。在实施例中,上下文平台框架100的组件是"使用不可知的"。尽管提供者106和客户机108通常都是依赖于使用域的,但是框架100的设计和实现都不进行任何关于使用框架100的使用域的假设。在一个实施例中,在上层,上下文引擎102经由提供者106连续地接收源自物理传感器或基于软件的源的上下文数据。提供者106经由提供者应用程序接口(API)112将上下文数据发送到上下文引擎102。上下文引擎102获取、处理和维护上下文信息。上下文引擎102使上下文信息的源与客户机108解耦。上下文引擎102可以使用所接收的数据作为"上下文",并且使得它可为客户机108获得。在实施例中,上下文引擎102还可以对所述上下文信息进行分析,以生成附加上下文信息,与经由提供者106接收的原始上下文信息相比,该附加上下文信息具有对客户机108更为有用的本性。客户机108可以提供定制的分析规则,该定制的分析规则被上下文引擎102存储和使用。上下文引擎102和客户机108经由上下文客户机API114进行通信。客户机108还可以使用策略API118来指定或调整策略引擎104所使用的平台行为策略。下面参考图2和图4来更详细地描述上下文引擎102。上下文引擎102还与策略引擎104进行通信。策略引擎104可以被视为上下文引擎102的特定客户机。策略引擎104基于所聚合的上下文信息的变化、所计算出的上下文信息中的变化以及控制策略规则,触发实现上下文平台框架100的物理平台内部或者其周围内的可触知动作。客户机108可以提供定制的控制策略规则,该定制的控制策略规则被策略引擎104存储和使用。下面参考图3来更详细地描述策略引擎104。策略引擎104经由激励器API116来向激励器110发送控制命令和数据。激励器110能够控制所述设备内部和其周围中的硬件和软件组件。在实施例中,上下文平台框架100根据上下文模式存储和处理上下文信息。上下文模式包括类和关联性,其表示上下文信息的基本元素。所述模式类形成在上下文引擎102中出现的处理动作的基础。上下文模式的主要类包括上下文标识符、上下文项、上下文组和上下文数据。所述模式的上下文标识符表示上下文信息的特定类型(例如,"温度"类型)。上下文引擎102可以同时维护和处理多种类型的上下文信息。客户机108可以通过指定上下文标识符对象来请求上下文项。所述模式的上下文项中的每个表示与上下文标识符对应的上下文信息的样本(例如,温度读取)。典型地,上下文引擎102将为特定的上下文标识符维护多个上下文项对象。上下文客户机API114使得客户机108能够从上下文引擎102访问上下文项对象。所述模式的上下文组表示一个或多个上下文标识符的集合。客户机108可以通过指定上下文组对象来请求一组上下文项。所述模式的上下文数据表示上下文项的一个值。在一些情形下,上下文项被允许同时具有多个有效值。因此,在该类中抽象出值表示。下面相对图5来更加详细地描述所述模式中的这些和其它可能的类。接下来,将更为详细地描述图1中的每个元件或组件。在不同实施例中,上下文平台框架100可以被实现为无线系统、有线系统或两者的组合。当被实现为无线系统时,框架100可以包括适于在无线共享媒体上通信的组件和接口,比如一个或多个天线、发射机、接收机、收发信机、放大器、滤波器、控制逻辑等。无线共享媒体的实例可以包括部分无线频谱,比如RF谱等。当被实现为有线系统时,框架100可以包括适于在有线通信媒体上通信的组件和接口,比如输入/输出(I/O)适配器、用于将I/O适配器与相应的有线通信媒体相连的物理连接器、网络接口卡(NIC)、盘控制器、视频控制器、音频控制器等。有线通信媒体的实例可以包括电线、线缆、金属引线、印刷电路板(PCB)、背板、交换结构、半导体材料、双绞线、同轴线、光纤等。在实施例中,提供者106可以是能够经由提供者API112收集并向上下文引擎102提供数据以用作"上下文"的任何类型的实体(软件、硬件或硬件/软件组合)。可以经由提供者106连续地收集实时数据。提供者106还可以经由集成长期存储设备(例如,闪存存储器)存储实时数据,并在稍后的时间将该数据发送到上下文引擎102。所述集成长期存储设备有助于确保如果引擎102当前没有可获得的连接,则没有收集到的数据丢失。作为非限制性的实例,提供者106可以并入比如平台传感器之类的物理本性(例如,电池充电、有源无线电等)的传感器、环境传感器(例如,经由全球定位系统(GPS)技术的位置信息、湿度、灾害附近、设备附近等)、生理传感器等。生理传感器可以包括一个或多个用于测量宽心血管特性阵列(例如,心率变化、ECG幅度、ST段分析、QT间隔等)的ECG、用于测量氧合水平的脉冲血氧计单元、用于测量活动水平和方位的多轴加速度计、用于测量温度水平的温度传感器、用于测量皮肤电反应(galvanicskinresponse)的单元、用于监测血压的脉冲波速度监测器、用于测量血糖的最小入侵或非入侵式血糖(glucometry)监测单元、用于测量肺活量的单元、用于测量呼吸速率的单元、用于测量语音特性(包括音量、与压力相关的语音特性、语音节奏、延迟时间、停顿长度、语音差别、单词变换、语音韵律学和这些语音特性中的影响和变化的指示)的单元、用于测量打字速度和错误的单元,用于测量荷尔蒙水平的单元(例如,EMG设备)、用于测量热量消耗的单元,用于测量温度水平的单元,用于测量肌肉张力的单元(例如,皮质醇(Cortisol))等。作为非限制性的实例,提供者106可以并入用于从各种"软源"(例如,软件源)获得数据的装置。在实施例中,所述软件源可以包括对应用中的所存储的上下文信息(例如,用户的下一约定,所需要的无线电类型,所期望的显示分辨率等)的感测;对比如操作系统中的动态上下文信息(例如,存储器使用,CPU负载等)的感测;对比如因特网的实体中可得到的上下文信息(例如,交通状况、天气状况、购物等)的感测;对用户喜好(例如,使用历史等)的感测等。在实施例中,提供者106可以具有一个或多个下述责任对上下文引擎102隐藏传感器的特性及其接口细节;在必要时,对原始传感器数据进行处理以提取有用的上下文信息;在被请求时向上下文引擎102提供上下文信息;使用事件通知机制来以异步方式向上下文引擎102发送上下文信息;当相应的上下文标识符未使用时,将传感器和相关的系统组件置于低功率模式;如上下文引擎102所规定的,支持(adhereto)提供者API112等。上下文引擎102暴露出一组接口来管理它与提供者106和相关组件(比如,提供者安装工具)之间的交互。该组接口在这里被统称为提供者API112。在实施例中,提供者API112可以支持一个或多个下述功能将新的提供者动态地附接到上下文引擎102;从上下文引擎102动态地移除现有的提供者;将一个或多个上下文标识符的细节信息从提供者传送到上下文引擎102;促进来自上下文引擎102的同步呼叫(例如,请求上下文项对象的呼叫);促进从提供者106到上下文引擎102的通知(例如,指示与上下文标识符对应的更新后的上下文项可得到的通知);促进从上下文引擎102到提供者106的命令(例如,请求提供者启动/禁止源出与一个或多个上下文标识符对应的上下文项的命令)等。在实施例中,提供者API112允许提供者106指定上下文访问规则。所述上下文访问规则可以将对确定上下文信息的访问限制到确定类的客户机108。上下文引擎102实施所述上下文访问规则。该机制确保客户机108可以访问可公开得到的上下文信息或者被授权由特定客户机或一类客户机访问的上下文信息。在实施例中,所述访问限制是域特有(domain-specific)的,并且可以是在设备内预先配置的或者经由所述上下文访问规则动态指定或编辑的。这是如何模块化上下文平台框架100以及其组件可动态加载的实例。作为非限制性的实例,假设客户机是用于存储和提供对病人信息的访问的医院中的应用。此种信息可以包括病人计费信息、该病人的当前医疗状况以及该病人的历史或过去医疗信息。这里,所述提供者可以向引擎102提供关于什么类型的人员可以访问不同类型的病人信息的上下文访问规则。例如,一个上下文访问规则可以将医院管理者限制到病人计费信息。另一个上下文访问规则可以将病人的护士限制到病人的当前医疗状况,而另一个上下文访问规则可以将病人的医生限制到访问病人的当前和历史医疗信息。在实施例中,客户机108可以是能够从上下文信息获益的任何应用(具有或不具有用户接口)。客户机108经由上下文客户机API114与上下文引擎102进行交互。当与上下文引擎102交互时,客户机108负责支持(adhereto)客户机API114。客户机108还可以是其它软件组件,比如操作系统、平台功用、平台工具、中间件库、使用上下文信息来向其它模块提供增值服务的"中间"软件模块等。在实施例中,客户机108中的大部分通常是域特有的。客户机108可以经由客户机API114按照不同的方式来访问经由上下文引擎102生成的上下文信息。例如,客户机108可以经由同步事件和/或异步事件来访问上下文信息。利用同步事件,当客户机108需要时,客户机108从上下文引擎102请求和接收信息。利用异步事件,客户机108请求当可获得时或在满足确定条件时发送的该更新后的上下文信息。这里,上下文引擎102可以向合适的客户机发送通知事件。上下文引擎102暴露出一组接口来管理它与客户机108和相关外部组件之间的交互。该组接口在这里被统称为上下文客户机API114。在实施例中,上下文客户机API114可以支持一个或多个下述功能检査一个或多个上下文标识符的可获得性;通过指定新的上下文组的成员上下文标识符来定义新的上下文组;访问关于上下文标识符和上下文组的细节;访问与上下文标识符对应的上下文项;访问与上下文组对应的上下文项;访问与时间和/或位置对应的上下文项;指定和编辑分析规则等。在实施例中,上下文客户机API114促进客户机认证和对上下文信息的受控访问。该机制帮助确保客户机108可以仅仅访问为所有客户机可公开得到的上下文信息或者被授权由特定客户机或一类客户机访问的上下文信息。在实施例中,上下文引擎102使用的访问策略指定上下文标识符级的访问许可,并且是针对个体上下文项。在实施例中,客户机108还可以使用策略API118来指定或调整策略引擎104所使用的平台行为策略。当与策略引擎104交互时,客户机108负责支持(adhereto)策略API118。在实施例中,策略API118可以支持用于指定和编辑策略引擎104中的平台策略的功能。激励器110能够控制上下文平台框架100内和其周围中的硬件和软件组件。作为非限制性的实例,激励器110可以控制硬件组件来操作上下文知晓设备的各方面,改变计算机屏幕的分辨率,操作器具(例如,温度调节装置、电灯器具等),在用户接口模态之间切换,寻呼医生等。上下文平台框架110暴露出一组用于策略引擎104和激励器110之间的交互的接口。该组接口在这里被统称为激励器API116。可以经由不同机制来实现提供者API112、客户机API114、激励器API116和策略API118中的所有。在实施例中,这些不同机制可以包括一种或多种标准初级语言(比如C+十),管理语言(比如Java)和基于协议的机制(比如,网络服务)。现在参考图2,例示了上下文引擎102的实施例。上下文引擎102获取、处理和维护上下文信息。上下文引擎102可以包括聚合器202、分析器204、上下文数据库206和分析器规则数据库208。接下来,将更详细地描述这些组件中的每个。在实施例中,聚合器202可以促进下述任务维护从不同源(例如,提供者106和分析器204)接收的上下文信息;实施与所述上下文信息相关的访问策略;将上下文信息提供给客户机108;将上下文信息提供给分析器204;管理由所述客户机指定的上下文标识符组等。在实施例中,上下文引擎102的执行实例可以包括最多聚合器202的一个实例。聚合器202从提供者106接收上下文信息。聚合器202还可以接收由分析器204计算出的上下文信息。聚合器202收集所述上下文信息并将所述上下文信息存储在上下文数据库206中。聚合器202或上下文数据库206可以使用上下文高速缓存机制来允许聚合器202快速地取回数据。所述上下文高速缓存准则可以具有不同的类型。例如,上下文高速缓存准则可以包括高速缓存所访问的最后项、高速缓存最近n个项、高速缓存在最近1个小时期间接收的项等中的一个或多个。可以同时使用一个或多个所述上下文高速缓存准则。聚合器202使所述上下文信息的源与客户机108解耦。在实施例中,当接收到上下文项对象时,聚合器202使时间戳和位置戳参考与所有上下文项对象相关联。客户机108可以通过指定所述时间戳和/或位置滤波器,经由上下文客户机API104来访问特定上下文项。该机制导致上下文访问的时间偏移模式和位置偏移模式。这里,客户机108可以请求适合于不同时间和/或位置的上下文信息(例如,从现在开始3个月的特定城市的天气预报)。在实施例中,聚合器202所使用的上下文组定义通常是域特有的。可以在构建上下文知晓设备时建立上下文组定义。其它实施例允许客户机108在运行时动态地指定和修改所述上下文组定义。客户机108可以访问作为单独项或作为多个项的集合存储的上下文信息。如上所述,一些实施例允许客户机108在运行时动态地指定和修改所述上下文组定义。一个实例,不是意在限制本发明,可以包括在上下文数据库206中存储的上下文模式的多个上下文标识符。这些实例上下文标识符中的每个可以涉及天气状况,包括"亮度状况(brightnesscondition)"、"湿度系数"等。客户机108可以定义上下文项组,并将其称为"天气"。这里,所定制的上下文项组"天气"可以包括在上下文数据库206中存储的所有上下文标识符,所述上下文标识符包括比如"亮度状况"、"湿度系数"等的相关天气数据。在实施例中,分析器204可以促进下述任务在客户机108的控制下接收和维护分析规则;监测在聚合器202中维护的上下文信息;当遇到上下文访问规则所特有的输入条件时执行分析规则;当聚合器202请求分析规则时执行分析规则;在执行分析规则之前从聚合器202获得所要求的上下文信息;将利用分析规则计算出的新的上下文信息发送到聚合器202等。在实施例中,上下文引擎102的执行实例可以包括最多分析器204的一个实例。在实施例中,分析器204可以总是活动的,并且当一个客户机108要求分析器功能时,可以动态地加载分析器204。当动态地加载分析器204时,还要动态地激活与所述分析器204相关的所有必需的连接。分析器204部分依赖于聚合器202以及动态地加载和卸载分析器204的两个允许之间的接口。这是如何模块化上下文平台框架100以及其组件可动态加载的一个实例。在实施例中,分析器204可以对上下文信息进行分析,以计算出新的上下文信息,与从提供者106接收的原始上下文信息相比,该新的上下文信息具有更有用的本性。所述分析可以采取若干形式,比如阈值化、模式检测、推断、信号处理、历史相关等。相应地,分析器204(通常和上下文引擎102)可以充当"智能引擎",并且可以包括人工智能(AI)技术的一个或多个方面来帮助促进对上下文信息的分析。在实施例中,分析器204使用由客户机108提供的分析规则来进行对所述上下文信息的分析,以生成附加的上下文信息。所述分析算法可以例如在构建时由设备配置器提供或在运行时由客户机108提供。所述分析算法可以存储在分析器规则数据库208和其相关高速缓存中。所计算出的上下文信息被发送到聚合器202来进行存储,并且进一步由客户机108或分析器204访问。作为非限制性的实例,分析器204可以执行两种分析算法模式。一种分析算法模式可以包括基于脚本的分析规则,如在专家系统中所公知的。另一种分析算法模式可以包括以二进制形式提供的预编译规则。在实施例中,分析规则通常是依赖于使用域的。上下文引擎102的实施例通过使分析器204执行通常由客户机108执行的分析来提供对上下文信息的带外分析。客户机108免于进行上下文信息获取、聚合、监测和分析的连续任务。这使得客户机108能够关注它们的主要任务或者根据需要甚至进入睡眠状态。在实施例中,如可由客户机108经由分析器204所使用的分析规则而定制的,仅仅当出现"在上下文上重要的"事件或情形时可以触发客户机108。下面将会参照图4来描述聚合器202和分析器204的逻辑组件之间的依赖性的实施例。如上所述,上下文引擎102还与策略引擎104通信。参见图3,例示了策略引擎104的实施例。策略引擎104可以包括控制器302和策略数据库304。控制器302负责基于所聚合的上下文信息、所计算出的上下文信息和策略数据库304中存储的控制策略规则,触发实现上下文平台框架100的物理平台内部和/或其周围中的可触知动作。控制器302经由激励器API116向激励器110发送控制命令和数据。激励器110能够控制实现上下文平台框架100的物理平台内部和/或其周围中的硬件和软件组件。如上所讨论的,客户机108可以定制由上下文引擎102处理的上下文信息的多个方面,以满足特定的域要求。例如,客户机108可以向策略引擎104提供与特定应用程序相关的一个或多个控制策略规则。这些定制的控制策略规则可以被并入到控制策略规则集中。在实施例中,策略引擎104可以充当"智能引擎",并且可以包括人工智能(AI)功能来帮助促进基于所聚合的上下文信息、所计算出的上下文信息和策略数据库304中存储的控制策略规则,触发实现上下文平台框架100的物理平台内部和/或其周围中的可触知动作。在实施例中,策略引擎104可以总是活动的,或者当要求策略引擎功能时,可以动态地加载策略引擎104。当动态地加载策略引擎104时,还要动态地激活与所述策略引擎104相关的所有必需的连接。这是如何模块化上下文平台框架100以及其组件可动态加载的一个实例。图4例示了上下文引擎102的逻辑组件或封装之间的依赖性的一个实施例。在实施例中,如统一建模语言(UNL)中所定义的一样使用术语"依赖性"。参见图4,聚合器202可以具有下述逻辑组件上下文聚合器402、访问策略实施器404、访问策略存储设备406、提供者处理机408、上下文存储设备410和上下文模式412。分析器204可以具有下述逻辑组件上下文分析器414、分析规则访问416、分析规则存储设备418、基于脚本的规则420和以二进制形式提供的预编译规则422。根据本发明的一个实施例,图4的定向箭头例示了逻辑组件之间的依赖性。例如,参见图4,提供者处理机408和上下文分析器414依赖于上下文聚合器402,以便将新的上下文信息添加到上下文贮藏器(repository)中。上下文聚合器402依赖于上下文存储设备410来使用数据库存储和取回工具。上下文模式412包括类和关联性,其代表上下文信息的基本元素。所述模式类形成在上下文引擎102中发生的处理动作的基础。上下文模式的主类包括上下文标识符、上下文项、上下文组和上下文数据。下面参照图5来更详细地描述上下文模式的实施例。重要的是注意图4中例示的所有组件依赖于或使用上下文模式412。在实施例中,上下文存储设备410维护上下文信息的存储器内实例(例如,高速缓存),以供上下文引擎102中的其它逻辑组件有效访问。这里,最近使用的或经常使用的上下文信息通常被维护在高速缓存中。通常期望上下文存储设备410使用非易失性存储机制(例如,关系数据库(RDBMS)引擎)来存储上下文信息,但是本发明的实施例并不限于此。例如,可能存在上下文引擎102不需要非易失性存储设备的实例。访问策略存储设备406和访问策略实施器404负责满足客户机108对上下文信息的请求。在实施例中,主要责任可以包括使上下文信息可以为客户机108获得,在暴露上下文信息时实施客户机级访问限制,维护每客户机的通知请求,以及当所请求的上下文项变为可以获得时发送通知。提供者处理机108经由提供者API112与提供者106进行交互,并且接收上下文引擎102所使用的上下文信息。分析规则访问416允许客户机108管理上下文引擎102中的分析规则。这里,客户机108可以对分析规则执行各种操作,包括但不限于,添加、移除、激活等。当新的上下文项变得在上下文存储设备410中可以获得时,上下文分析器414可以执行零个或多个分析规则。分析规则存储设备418表示其中维护所有分析规则的贮藏器。基于脚本的规则420和/或二进制形式的预编译规则422是上下文分析器414支持的分析规则的种类的两种可能类型。接下来,将参照图5来更为详细地描述上下文模式500的实施例。在实施例中,利用统一建模语言(UML)来定义图5中的所有图标。参见图5,上下文模式500可以包括上下文组502、上下文标识符504、上下文项506和上下文数据508的类。图5中示出的示例上下文模式500是一种可能的模式,但并不意味着限制本发明。上下文组502表示一个或多个上下文标识符504的集合。上下文标识符504表示上下文信息的特定类型(例如,"温度"类型)。每个上下文项506表示与上下文标识符对应的上下文信息的一个实例(比如,温度读取)。通常,上下文引擎102将为特定上下文标识符504维护多个上下文项506。上下文数据508表示上下文项506的一个值。在一些情形中,允许上下文项506同时具有多个有效值。因此,在该类中抽象出值表示。接下来,将更为详细地描述每个所述类。上下文标识符504是上下文引擎102中的上下文类型的核心表示。通常,上下文标识符504指定上下文类型的特性,包括如何表示和解释其值。上下文类型的附加特性的表示是可能的,并且是本发明的实施例所设想的。在实施例中,客户机108通过指定上下文标识符504来访问或请求上下文项506。访问上下文项506的其它间接机制也是可能的,并且是本发明的实施例所设想的。在实施例中,可以通过各种源来提供新的上下文标识符。一个源是经由提供者106。这里,作为提供者注册过程的一部分,提供者提供它能够提供的所有上下文标识符的定义。新的上下文标识符的另一个源是经由客户机108。这里,客户机可以将新的上下文标识符定义为指定新的上下文分析规则的一部分。上下文引擎102可以维护它所知的所有上下文标识符504的列表。随着从提供者106接收到新的上下文标识符504,可以相对于已知的上下文标识符来检査所述新的上下文标识符。按照类似的方式,分析器204可以在(例如,在基于脚本的规则420中)添加新的分析器规则时,指定新的上下文标识符504。参见图5,上下文标识符504的实施例具有四个主要属性:Context-name(上下文名称)、Description(描述)、value-schema(值-模式)禾卩multi-valued(多值)。另外,在实施例中,上下文标识符504具有与图中示出的关联性对应的成员属性。下面的表1例示了主要属性的可能描述<table>tableseeoriginaldocumentpage19</column></row><table>multi-value表示为浮点数以及被解释为作为测量单位的华氏度数。值模式属性可以将这指定为:"<华氏,浮点32>"。作为另一实例,在实施例中,"会议后勤"上下文的值可以被表示为多个元素的组合。值模式属性可以将这指定为"<房间号字符串>,<开始时间=时间>,<结束时间=时间>,<出席者数=1^111>"。在实施例中,该属性可以被实现为XML格式的字符串。另外,针对与特定使用域对应的上下文标识符综合(comprehensive)组,可以指定和标准化值-模式。指示与当前上下文标识符504对应的上下文项506是否可能同时具有多个有效上下文数据508对象。在实施例中,该属性可以被实现为布尔标志。表l上下文组502表示两个或多个上下文标识符的集合。所述集合通常是在创建该集合的域中有意义。可以在任何时候向上下文引擎102添加或从上下文引擎102中移除上下文组502。在实施例中,客户机108可以动态地将上下文组502对象添加到上下文引擎102中和从上下文引擎102中移除。但是典型地,将在把设备部署在特定使用域中时创建上下文组502。在实施例中,组成员资格是通过引用得到的,这意味着组成上下文组502的上下文标识符504是单独存在的并且上下文组的删除不能从上下文引擎102中移除该成员上下文标识符。上下文标识符504可以是多个上下文组502的成员(例如,在其中引用)。上下文组502可以包含其它上下文组(仅仅非-循环关系)。而且,上下文组502可以是多个其它上下文组502的一部分。参考图5,上下文组502的实施例可以具有两个主要属性GroupName(组名称)和Description(描述)。另外,在实施例中,上下文组502具有与图中示出的关联性对应的成员属性。下面的表2例示了主要属性的可能描述<table>tableseeoriginaldocumentpage20</column></row><table><table>tableseeoriginaldocumentpage21</column></row><table>表2上下文项506表示与上下文标识符504对应的上下文信息的特定样本。在一些上下文类型的情况下,上下文项对象可以同时具有多个有效值。因此,可以在不同的类上下文数据508中抽象出上下文项类的值表示。参考图5,上下文项506的实施例可以具有三个主要属性IsProjected(是计划的),Location(位置)禾BTime(时间)。另外,在实施例中,上下文项506具有与图中示出的关联性对应的成员属性。下面的表3例示了主要属性的可能描述<table>tableseeoriginaldocumentpage21</column></row><table><table>tableseeoriginaldocumentpage22</column></row><table>表3上下文数据508表示上下文项506的一个值。在一些实施例中,上下文项被允许同时具有多个有效值。因此,在该类中抽象出值表示。上下文标识符504指示它的相应上下文项506是否可以同时具有多个有效值。在实施例中,利用与类上下文标识符504的布尔属性"multi-valued"来对多值的可能性进行标志。参考图5,上下文数据508的实施例可以具有三个主要属性:Value(值)、Validityduration(有效期)禾卩Certainty(确定性)。下面的表4例示了这些属性的可能描述Value这是上下文项的实际值。在实施例中,该字段可以被表示为XML格式的字符串。与所述对象相关联的上下文标识符包含如何解释该值的信息。Validityduration该数据值应该被认为有效的持续时间。该字段提供关于该数据值在指定时间戳之后在相应的上下文对象中的有用性的暗示。在该有效期过去之后,该数据值的可靠性较低。Certainty与该值的正确性相关的可能性(例如,确信)。在实施例中,该确定性值可以被表示为-100到+100的范围中的整数,其中+100:值毫无疑问正确-100:值毫无疑问不可能当使用其它上下文参数的算法分析来计算上下文值时,该属性特别有用。例如(1)交通信息上下文的提供者可以指示两个地点之间的估计驾驶时间为20分钟,其确定性值为+70。(2)分析器204中的分析值可以确定用户的当前私人状态的值为"单独",其确定性为-80;以及"在其_l他人的5英尺内",其确定性为+70。_表4在一个实施例中,上下文引擎102和/或策略引擎104可以被并入到能够执行这里所描述的功能的任何移动设备中。引擎102和/或104可以被实现为有线通信系统、无线通信系统或两者组合的一部分。在一个实施例中,例如,引擎102和/或104可以被实现为具有无线能力的移动计算设备。移动计算设备可以指例如具有处理系统和比如一个或多个电池的移动电源或电力供应的任何设备。在其它实施例中,上下文平台框架IOO(例如,上下文引擎102和/或策略引擎104)还可以部署在固定计算设备上,比如台式PC、后端服务器等。可以适于包括本发明的功能的移动计算设备的实施例的实例包括膝上型计算机、超膝上型计算机、便携式计算机、手持计算机、掌上型计算机、个人数字助理(PDA)、蜂窝电话、蜂窝电话/PDA组合、智能电话、寻呼机、单向寻呼机、双向寻呼机、消息设备、数据通信设备等。此种移动计算设备的实例还可以包括被配置来被个人佩戴的计算机,比如,腕式计算机、指上型计算机、指环型计算机、眼镜型计算机、腰带夹型计算机、臂带式计算机、鞋式计算机、衣服型计算机以及其它佩戴型计算机。图6中示出了本发明的实施例的更为详细的描述。参见图6,设备600可以包括外壳602、显示器604、一个或多个输入/输出设备606、一个或多个传感器607、天线608、导航按钮610、上下文引擎102和策略引擎104。上下文引擎102和/或策略引擎104可以直接集成到设备600中或可以经由连接(例如,无线、有线或两者的组合)耦合到设备600。注意,尽管引擎102和104的功能性在这里被描述为被分为两个组件,这并不意味着限制本发明。实际上,该功能可以被合并为一个组件或分为三个或更多个组件。接下来,将详细地描述图6中的每个组件。外壳602可以包括任何合适的外壳,但对于设备600,该外壳通常具有小的形状因子,以便容易运输。显示器604可以包括任何合适的显示单元,用于显示适合于引擎102和/或104的功能的信息。显示器604被本发明的实施例使用来帮助输入设备600,比如定制的控制策略规则(如上所述)等。I/O设备606可以包括任何适合的I/O设备,用于将信息输入到设备600中,或者从设备600接收信息。这里,1/0设备可以用来从提供者输入数据,向客户机108发送上下文信息,将定制的控制策略规则输入策略引擎104和分析器204中等。1/O设备606的实例可以包括触摸屏接口、具有图标选择的简单菜单、对设备的手势操作、合适的字母数字键盘、数字键盘、触摸垫、输入键、按钮、开关、翘板开关、麦克风、扬声器、语音识别设备和软件、以及所有如上所述的生理感测等。可以通过麦克风将信息输入设备600。可以利用语音识别设备对此种信息进行数字化。所述实施例并不限于此。传感器607可以包括任何合适传感器,用于收集上下文引擎102所使用的上下文信息。实例传感器607可以包括一个或多个如上参照图1描述的传感器。天线608用于促进利用本发明的实施例进行的无线通信。在一个实施例中,导航按钮610包括向上导航按钮、向下导航按钮、向左导航按钮和向右导航按钮。导航按钮610还可以包括用于执行设备600上的特定功能的选择按钮。还可以参考下述图形和所附实例来进一步描述上述实施例的操作。所述图形中的部分图形可以包括逻辑流程图。尽管这里呈现的此种图形可以包括特定逻辑流程图,但是可以明白的是,所述逻辑流程图仅仅提供如何实现这里所述的通用功能的实例。此外,除非另外指出,所给出的逻辑流程图不必必须按照所呈现的顺序来执行。另外,所给出的逻辑流程图可以利用硬件元件、由处理器执行的软件元件或它们的任意组合来实现。图7-图10例示了可以表示由这里描述的一个或多个实施例执行的操作,例如由上下文平台框架100执行的操作,的逻辑流程图的实施例。图7例示了用于例示如何向聚合器202提供上下文信息的逻辑流程图700的一个实施例。参见图7,经由一个或多个提供者106收集上下文信息,并且经由提供者API112将上下文信息发送到聚合器202(块702)。聚合器202将时间戳和/或位置戳置于所述上下文信息上(块704)。聚合器202将所述上下文信息存储在上下文存储设备中(块706)。聚合器202触发分析器204中的合适的分析规则(块708)。图8例示了用于例示客户机108如何访问聚合器202中的上下文数据的逻辑流程图800的一个实施例。参见图8,客户机108使用客户机API114来向聚合器202进行自身认证(块802)。如果客户机108被认证,则允许客户机108通过指定上下文项506的上下文标识符504来向聚合器202请求上下文项506(块804)。如果在上下文存储设备中可获得所请求的上下文项,则聚合器202从所述上下文存储设备中取回上下文项,并经由客户机API114将上下文项发送到客户机108(块806)。如果在上下文存储设备中不能获得所请求的上下文项,则聚合器202可以从一个或多个提供者106请求该上下文项。聚合器202还可以请求分析器204来计算上下文项506。上下文项506被存储在上下文存储设备中,并经由客户机API114发送到客户机108(块808)。图9例示了用于例示客户机108如何向分析器204提供分析规则的逻辑流程图900的一个实施例。参见图9,客户机108定义分析规则(块902)。客户机108经由客户机API114将分析规则提供给分析器204(块904)。分析器204注册所述分析规则,编译所述分析规则并且将所述分析规则存储在分析规则存储设备中(块906)。图10例示了策略引擎104的操作的逻辑流程图1000的一个实施例。参见图10,提供者106向聚合器202提供触发策略引擎104中的动作的上下文信息(块1002)。策略引擎104使用其自身的控制策略规则来确定动作(块1004)。策略引擎104经由激励器API116来指示激励器110执行所述动作(块1006)。可以使用硬件元件、软件元件或两者的组合来实现各个实施例。硬件元件的实例可以包括处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、可编程逻辑设备(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、逻辑门、寄存器、半导体设备、芯片、微芯片、芯片组等。软件的实例可以包括软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、功能、方法、步骤、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、单词、值、符号或者它们的任意组合。确定是否使用硬件元件和/或软件元件来实现实施例,这可以根据任意数目的因素而改变,比如期望的计算速率、功率电平、耐热性、处理循环预算、输入数据速率、输出数据速率、存储器资源、数据总线速度和其它设计或性能限制。可以使用术语"耦合"和"连接"以及它们的派生词来描述一些实施例。这些术语并不意在彼此互为同义词。例如,一些实施例可以使用术语"连接"和/或"耦合"来指示两个或多个元件彼此直接物理接触或电气接触。然而,术语"耦合"还可以意味着两个或多个元件彼此不直接接触,但是仍然合作或彼此交互。一些实施例可以使用例如机器可读介质或者计算机可读介质或者产品来实现,所述机器可读介质或者计算机可读介质或者产品可以存储指令或者指令集,当所述指令或者指令集被机器执行时,可以使得该机器执行根据上述实施例的方法和/或者操作。这种机器可以包括,例如,任意合适的处理平台、计算平台、计算设备、处理设备、计算系统、处理系统、计算机、处理器等,并且可以使用硬件和/或者软件的任意合适的组合来实现。该机器可读介质或者产品可以包括,例如,任何适合类型的存储器单元、存储器设备、存储器产品、存储器介质、存储设备,存储产品、存储介质和/或存储单元,例如,存储器、可移动或者不可移动介质、可擦除或者不可擦除介质、可写或者可重写介质、数字或者模拟介质、硬盘、软盘、压縮盘只读存储器(CD-ROM)、可记录压縮盘(CD-R)、可重写压縮盘(CD-RW)、光盘、磁盘、磁光盘、可移动存储卡或者盘、各种类型的数字多功能盘(DVD)、磁带、盒式磁带等等。所述指令可以包含任何合适类型的代码,例如源代码、经过编译的代码、经过解释的代码、可执行代码、静态代码、动态代码、经过加密的代码等等。所述指令可以使用任何合适的高级、低级、面向对象的、可视的、经过编译的和/或者经过解释的编程语言来实现。除非以其它方式特别说明,要明白的是,比如"处理"、"计算"、"运算"、"确定"之类的术语可以指计算机或计算系统或类似电子计算设备的动作和/或过程,该计算机或计算系统或类似电子计算设备将被表示为计算系统的寄存器和/或存储器内的物理量(例如电子)的数据处理和变换为类似表示为计算系统的存储器和寄存器、或其它此种信息存储设备、发送或显示设备内的物理量的其它数据。本实施例并不限于此。为了提供对实施例的全面理解,在这里给出了多个特定的细节,然而,本领域技术人员将意识到所述实施例可以在没有这些特定细节的情况下实现。在其它实例中,为了不使实施例混淆,对公知的操作、组件和电路不进行详细地描述。可以认识到的是,这里所公开的特定结构和功能细节是代表性,并不必限制实施例的范围。尽管已经按照结构特征和/或方法逻辑动作特有的语言描述了所述主题,但是要理解的是,在所附权利要求中所限定的主题不必限制到如上所述的特定特征或动作。相反,如上所述的特定特征和动作被公开作为实现权利要求的实例形式。权利要求1、一种方法,包括经由提供者应用程序接口(API)从多个提供者接收上下文信息;聚合所述接收的上下文信息;分析所述接收的上下文信息和聚合的上下文信息,以生成计算出的上下文信息;以及基于所述聚合的上下文信息、所述计算出的上下文信息和一个或者多个分析规则,触发多个客户机中的至少一个客户机的动作,其中与所述多个客户机的通信是经由客户机API来完成的。2、如权利要求l所述的方法,其中,所述多个客户机中的每个和所述多个提供者中的每个是域特有的。3、如权利要求l所述的方法,其中,所述分析规则可以由所述多个客户机定制。4、如权利要求l所述的方法,其中,聚合所述接收的上下文信息使得所述接收的上下文信息与其源解耦。5、如权利要求l所述的方法,其中,所述接收的上下文信息是基于所述多个客户机提供的准则来聚合的。6、如权利要求l所述的方法,其中,所述多个提供者中的每个是环境传感器、平台传感器、生理传感器和软件源中之一。7、如权利要求l所述的方法,其中,所述接收的上下文信息、所述聚合的上下文信息和所述计算出的上下文信息是根据上下文模式来处理的。8、如权利要求7所述的方法,其中,所述上下文模式包括上下文标识符类、上下文项类、上下文组类、上下文数据类,以及所述上下文标识符类、所述上下文项类、所述上下文组类和所述上下文数据类之间的一个或多个关联性。9、如权利要求l所述的方法,其中,所述多个客户机可以基于时间戳和位置戳来请求上下文信息。10、如权利要求1所述的方法,还包括基于一个或多个控制策略规则来触发动作。11、如权利要求10所述的方法,其中,所述多个客户机可以定制所述一个或多个控制策略规则。12、一个系统,包括-聚合器,用于经由提供者应用程序接口(API)从多个提供者接收上下文信息,并且其中所述聚合器聚合所述接收的上下文信息;以及分析器,用于分析所述接收的上下文信息和所述聚合的上下文信息,以生成计算出的上下文信息;其中基于所述聚合的上下文信息、所述计算出的上下文信息和一个或者多个分析规则,所述聚合器和所述分析器中至少一个触发多个客户机中的至少一个客户机的动作,其中与所述多个客户机的通信是经由客户机API来完成的。13、如权利要求12所述的系统,其中,所述多个客户机中的每个和所述多个提供者中的每个是域特有的。14、如权利要求12所述的系统,其中,所述分析规则可以由所述多个客户机定制。15、如权利要求12所述的系统,其中,聚合所述接收的上下文信息使得所述接收的上下文信息与其源解耦。16、如权利要求12所述的系统,其中,所述接收的上下文信息是基于所述多个客户机提供的准则来聚合的。17、如权利要求12所述的系统,其中,所述多个提供者中的每个是环境传感器、平台传感器、生理传感器和软件源中之一。18、如权利要求12所述的系统,其中,所述接收的上下文信息、所述聚合的上下文信息和所述计算出的上下文信息是根据上下文模式来处理的。19、如权利要求18所述的系统,其中,所述上下文模式包括上下文标识符类、上下文项类、上下文组类、上下文数据类,以及所述上下文标识符类、所述上下文项类、所述上下文组类和所述上下文数据类之间的一个或多个关联性。20、如权利要求12所述的系统,其中,所述多个客户机基于时间戳和位置戳来请求上下文信息。21、如权利要求12所述的系统,还包括策略引擎,用于基于一个或多个控制策略规则来触发动作。22、如权利要求21所述的系统,其中,所述多个客户机可以定制所述一个或多个控制策略规则。23、一种包含指令的机器可读存储介质,当由处理系统执行时,所述指令使得所述处理系统执行方法,所述方法包括经由提供者应用程序接口(API)从多个提供者接收上下文信息;聚合所述接收的上下文信息;分析所述接收的上下文信息和所述聚合的上下文信息,以生成计算出的上下文信息;以及基于所述聚合的上下文信息、所述计算出的上下文信息和一个或者多个分析规则,触发多个客户机中的至少一个客户机的动作,其中与所述多个客户机的通信是经由客户机API来完成的。24、如权利要求23所述的机器可读存储介质,其中,所述多个客户机中的每个和所述多个提供者中的每个是域特有的。25、如权利要求23所述的机器可读存储介质,其中,所述分析规则可以由所述多个客户机定制。26、如权利要求23所述的机器可读存储介质,其中,聚合所述接收的上下文信息使得所述接收的上下文信息与其源解耦。27、如权利要求23所述的机器可读存储介质,其中,所述接收的上下文信息是基于所述多个客户机提供的准则来聚合的。28、如权利要求23所述的机器可读存储介质,其中,所述多个提供者中的每个是环境传感器、平台传感器、生理传感器和软件源中之一。29、如权利要求23所述的机器可读存储介质,其中,所述接收的上下文信息、所述聚合的上下文信息和所述计算出的上下文信息是根据上下文模式来处理的。30、如权利要求29所述的机器可读存储介质,其中,所述上下文模式包括上下文标识符类、上下文项类、上下文组类、上下文数据类,以及所述上下文标识符类、所述上下文项类、所述上下文组类和所述上下文数据类之间的一个或多个关联性。31、如权利要求23所述的机器可读存储介质,其中,所述多个客户机可以基于时间戳和位置戳来请求上下文信息。32、如权利要求23所述的机器可读存储介质,还包括基于一个或多个控制策略规则来触发动作。33、如权利要求32所述的机器可读存储介质,其中,所述多个客户机可以定制所述一个或多个控制策略规则。全文摘要描述了一种用于聚合、分析和使用上下文信息的上下文平台框架。系统的实施例包括聚合器,用于经由提供者应用程序接口(API)从多个提供者接收上下文信息;其中所述聚合器用于聚合所述接收的上下文信息。所述系统还包括分析器,用于分析所述接收的上下文信息和所述聚合的上下文信息,以生成计算出的上下文信息。随后,基于所述聚合的上下文信息、所述计算出的上下文信息和一个或者多个分析规则,所述聚合器和所述分析器中至少一个触发多个客户机中的至少一个客户机的动作,其中与所述多个客户机的通信是经由客户机API来完成的。描述和要求了其它实施例。文档编号G06F9/44GK101393520SQ20081016562公开日2009年3月25日申请日期2008年9月19日优先权日2007年9月20日发明者A·N·哈塔卡尔,D·A·桑德奇,J·L·梅莫特申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1