专利摘要
本发明涉及一种对至少一个传感器进行本体驱动的查询或编程的方法。方法包括:在查询源处产生用于相对于所述至少一个传感器而执行的查询或命令;经由第一网络将所述查询或命令传输给本体变换器;根据本体以及所述至少一个传感器的一个或多个预定能力,对所述查询或命令进行分类;使用所述本体变换器可访问的存储器中存储的一个或多个代码片段,基于所分类的查询或命令,产生变换后的查询或程序;将所述变换后的查询或程序传输给与所述至少一个传感器通信的至少一个传感器节点,以由所述至少一个传感器节点相对于所述至少一个传感器来执行所述变换后的查询或程序;从所述至少一个传感器节点接收所述查询或程序的至少一个结果;以及返回所述至少一个结果。
权利要求
1.一种对至少一个传感器进行本体驱动的查询或编程的方法,所述方法包括:
在查询源处产生用于相对于所述至少一个传感器执行的查询或命令;
经由第一网络将所述查询或命令传输给本体变换器;
根据本体以及所述至少一个传感器的一个或多个预定能力,对所述查询或命令进行分类;
使用所述本体变换器可访问的存储器中存储的一个或多个代码片段,基于所分类的查询或命令,产生变换后的查询或程序;
将所述变换后的查询或程序传输给与所述至少一个传感器通信的至少一个传感器节点,以由所述至少一个传感器节点相对于所述至少一个传感器来执行所述变换后的查询或程序;
从所述至少一个传感器节点接收查询或程序的至少一个结果;以及
返回所述至少一个结果。
2.根据权利要求1所述的方法,其中所述至少一个传感器包括在传感器网络中。
3.根据权利要求2所述的方法,其中所述至少一个传感器节点包括在所述传感器网络中,所述传感器网络具有多个传感器节点。
4.根据权利要求1到3之一所述的方法,其中将所述至少一个结果返回给查询源。
5.根据权利要求1到4之一所述的方法,其中将所述至少一个结果返回给目的地而不是查询源。
6.根据权利要求1到5之一所述的方法,还包括:在返回所述至少一个结果之前,对所述至少一个结果进行过滤。
7.根据权利要求6所述的方法,其中过滤包括:将所述至少一个结果从执行所述变换后的查询或程序而产生的较大结果集合缩减到满足查询源处产生的查询或命令的结果集合。
8.根据权利要求6或7所述的方法,其中过滤由本体变换器执行。
9.根据权利要求1到8之一所述的方法,其中经由通过第二网络与本体变换器通信的网关,传输所述变换后的查询或程序以及接收所述至少一个结果。
10.根据权利要求1到9之一所述的方法,其中在本体变换器处执行接收所述至少一个结果。
11.根据权利要求1到10之一所述的方法,还包括:在向本体变换器传输查询或命令之前,验证查询或命令。
12.根据权利要求11所述的方法,其中验证包括:向本体推理器传输查询或命令,以由本体推理器根据所述本体和所述至少一个或多个预定能力对查询或命令进行分类。
13.根据权利要求1到12之一所述的方法,其中向本体变换器传输查询或命令包括:经由第一网络向能够访问所述本体的本体服务器传输查询或命令,其中本体服务器将查询或命令传输给经由第一网络可访问的一个或多个本体变换器中指定的一个。
14.根据权利要求1到13之一所述的方法,其中查询源包括具有接口的查询编辑器,接口配置为在所述本体内构造查询或命令。
15.一种对至少一个传感器进行本体驱动的查询或编程的系统,所述系统包括:
用于在查询源处产生用于相对于所述至少一个传感器而执行的查询或命令并经由第一网络将所述查询或命令传输给本体变换器的装置;
用于根据本体以及所述至少一个传感器的一个或多个预定能力对所述查询或命令进行分类的装置;
用于使用所述本体变换器可访问的存储器中存储的一个或多个代码片段,基于所分类的查询或命令来产生变换后的查询或程序的装置,其中,用于产生变换后的查询或程序的装置包括:用于将所述变换后的查询或程序传输给与所述至少一个传感器通信的至少一个传感器节点,以由所述至少一个传感器节点相对于所述至少一个传感器来执行所述变换后的查询或程序的装置;以及用于从所述至少一个传感器节点接收所述查询或程序的至少一个结果并返回所述至少一个结果的装置。
16.根据权利要求15所述的系统,其中所述至少一个传感器包括在传感器网络中。
17.根据权利要求16所述的系统,其中所述至少一个传感器节点包括在所述传感器网络中,所述传感器网络具有多个传感器节点。
18.根据权利要求15到17之一所述的系统,还包括:用于在返回所述至少一个结果之前对所述至少一个结果进行过滤的装置。
19.根据权利要求18所述的系统,其中过滤装置配置为:将至少一个结果从执行所述变换后的查询或程序而产生的较大结果集合缩减到满足查询源处产生的查询或命令的结果集合。
20.根据权利要求17所述的系统,其中过滤装置包括本体变换器。
21.根据权利要求15到20之一所述的系统,还包括:经由第二网络与本体变换器通信的网关节点,其中传输所述变换后的查询或程序以及接收所述至少一个结果经由网关节点执行。
22.根据权利要求15到21之一所述的系统,还包括:用于在向本体变换器传输查询或命令之前验证查询或命令的装置。
23.根据权利要求22所述的系统,其中验证装置包括:本体推理器,配置为接收查询或命令,以由本体推理器根据所述本体和所述至少一个或多个预定能力对查询或命令进行分类。
24.根据权利要求15到23之一所述的系统,其中将所述至少一个结果返回给查询源。
25.根据权利要求15到24之一所述的系统,其中将所述至少一个结果返回给目的地而不是查询源。
26.根据权利要求15到25之一所述的系统,还包括:能够访问所述本体的本体服务器,
其中向本体变换器传输查询或命令包括:经由第一网络向本体服务器传输查询或命令,其中本体服务器配置为将查询或命令传输给经由第一网络可访问的一个或多个本体变换器中指定的一个。
27.根据权利要求15到26之一所述的系统,其中查询源包括具有接口的查询编辑器,接口配置为在所述本体内构造查询或命令。
28.根据权利要求15到27之一所述的系统,其中用于产生变换后的查询或程序的装置包括本体变换器。
29.一种对至少一个传感器进行本体驱动的查询或编程的系统,所述系统包括:
查询源,配置为产生用于相对于所述至少一个传感器而执行的查询或命令;
本体推理器,配置为根据本体以及所述至少一个传感器的一个或多个预定能力,对所述查询或命令进行分类;
与所述至少一个传感器通信的至少一个传感器节点;以及
与所述查询源、所述本体推理器和所述至少一个传感器通信的本体变换器,其中所述本体变换器配置为:接收所述查询或命令,并将所述查询或命令传递给所述本体推理器以进行分类;使用本体变换器可访问的存储器中存储的一个或多个代码片段,基于所分类的查询或命令,产生变换后的查询或程序;将所述变换后的查询或程序传输给所述至少一个传感器节点,以由所述至少一个传感器节点相对于所述至少一个传感器来执行所述变换后的查询或程序;从所述至少一个传感器节点接收所述查询或程序的至少一个结果;以及返回所述至少一个结果。
30.一种本体驱动的查询或编程方法,实质上如以上参照附图和/或示例描述的那样。
31.一种本体驱动的查询或编程系统,实质上如以上参照附图和/或示例描述的那样。
说明书
技术领域
本发明涉及用于传感器的本体驱动的查询和编程的方法和系统。具体地,传感器可以是与节点通信的远程传感器网络的一部分,该节点是使用公共网络可访问的。
背景技术
众所周知,在传感器网络中对用于数据采集的传感器节点进行编程是比较困难的。程序员必须不仅考虑到在网络范围上要达到的结果,还要考虑到如何处理消息路由、数据丢失、能量节省、无线电行为、无线电管理和局部事件交互,以及底层传感器架构、传感器能力和这些传感器支持的编程语言的异质性。
希望解决或改善与用于传感器的数据采集和/或编程的现有技术关联的一个或多个不足或不利之处,或者至少提供有用的备选方式。
发明内容
本发明涉及一种对至少一个传感器进行本体驱动的查询或编程的方法,所述方法包括:
在查询源处产生用于相对于所述至少一个传感器而执行的查询或命令;
经由第一网络将所述查询或命令传输给本体变换器;
根据本体以及所述至少一个传感器的一个或多个预定能力,对所述查询或命令进行分类;
使用所述本体变换器可访问的存储器中存储的一个或多个代码片段,基于所分类的查询或命令,产生变换后的查询或程序;
将所述变换后的查询或程序传输给与所述至少一个传感器通信的至少一个传感器节点,以由所述至少一个传感器节点相对于所述至少一个传感器来执行所述变换后的查询或程序;
从所述至少一个传感器节点接收所述查询或程序的至少一个结果;以及
返回所述至少一个结果。
本发明还涉及一种对至少一个传感器进行本体驱动的查询或编程的系统,所述系统包括:
用于在查询源处产生用于相对于所述至少一个传感器而执行的查询或命令并经由第一网络将所述查询或命令传输给本体变换器的装置;
用于根据本体以及所述至少一个传感器的一个或多个预定能力对所述查询或命令进行分类的装置;
用于使用所述本体变换器可访问的存储器中存储的一个或多个代码片段,基于所分类的查询或命令来产生变换后的查询或程序的装置,其中,用于产生变换后的查询或程序的装置包括:用于将所述变换后的查询或程序传输给与所述至少一个传感器通信的至少一个传感器节点,以由所述至少一个传感器节点相对于所述至少一个传感器来执行所述变换后的查询或程序的装置;以及从所述至少一个传感器节点接收所述查询或程序的至少一个结果并返回所述至少一个结果的装置。
本发明还涉及一种对至少一个传感器进行本体驱动的查询或编程的系统,所述系统包括:
查询源,配置为产生用于相对于所述至少一个传感器而执行的查询或命令;
本体推理器,配置为根据本体以及所述至少一个传感器的一个或多个预定能力,对所述查询或命令进行分类;
与所述至少一个传感器通信的至少一个传感器节点;以及
与所述查询源、所述本体推理器和所述至少一个传感器通信的本体变换器,其中所述本体变换器配置为:接收所述查询或命令,并将所述查询或命令传递给所述本体推理器以进行分类;使用本体变换器可访问的存储器中存储的一个或多个代码片段,基于所分类的查询或命令,产生变换后的查询或程序;将所述变换后的查询或程序传输给所述至少一个传感器节点,以由所述至少一个传感器节点相对于所述至少一个传感器来执行所述变换后的查询或程序;从所述至少一个传感器节点接收所述查询或程序的至少一个结果;以及返回所述至少一个结果。
附图说明
下面参照附图通过示例更详细地描述了实施例,附图中:
图1是对传感器进行本体驱动的查询或编程的系统的框图;
图2是更详细示出了图1系统的一些组件的框图;以及
图3是对传感器进行本体驱动的查询或编程的方法的流程图。
具体实施方式
所述实施例一般涉及对传感器进行本体驱动的查询或编程的方法和系统。这种传感器可以包括例如与传感器节点通信的单个或多个传感器,可能是独立工作的,或者作为传感器网络的一部分。传感器节点负责对与该节点关联的每个传感器的直接查询或控制。这里描述的实施例以与每个传感器的接口的任何技术要求无关的方式,促进了经由相关节点对传感器进行的本体驱动的查询或控制,从而容忍了多种传感器网络上不同传感器之间普遍的异质性。本文以概括方式以及参照具体示例描述了实施例。
现在参照图1,示出了对传感器进行本体驱动的查询或编程的系统100。系统100包括一个或多个计算机系统105,例如个人计算机或服务器,每个计算机系统具有在其上可执行的查询编辑器110。系统100也包括本体服务器120、一个或多个本体变换器125、一个或多个本体推理器135、一个或多个网关145、一个或多个节点155以及与每个节点155关联的一个或多个传感器160。
查询编辑器110包括在计算机系统105的存储器(未示出)中存储的或者计算机系统105可访问的可执行程序代码。查询编辑器110用于方便用户查询或命令形成,并解译和显示(在未示出的显示器中)相对于这些查询或命令而接收到的结果。查询编辑器110的可执行程序代码包括或者访问用于执行本体察觉接口115的程序代码,以方便创建或产生遵从与一个或多个传感器160有关的预定本体的查询或命令。查询编辑器110通过网络(例如互联网等公共网络)经由本体服务器120与本体变换器125通信,从而本体变换器125接收由查询编辑器110产生的查询或命令,以用于本文所述的处理。
本体变换器125和本体推理器135可以是在相同服务器系统140上或在分离的服务器上驻留的或可执行的。服务器系统140经由网络与本体服务器120通信,并经由网络与网关145通信。
当本体变换器125接收到来自查询编辑器110的查询或命令时,本体变换器125将查询或命令传递给与该本体变换器125通信的本体推理器135。本体变换器125可以包括在例如服务器系统140等计算机系统中,并具有存储有代码片断130的存储器120(图2所示)。可以基于本体推理器135对查询或命令的分类,汇编代码片断130以形成合适的命令。由本体推理器135产生的经分类的查询或命令由本体变换器125处理,以选择适合执行该查询或命令的一个或多个代码片断130。本体变换器125使用所选代码片断130来产生命令,并经由网关145将命令发送给一个或多个节点155,以便有关的传感器160中的一个或多个来执行。这种命令可以用于检索与传感器160进行的测量有关的数据或信息,或者用于对传感器160进行重新编程或重新配置。
本体变换器125可以访问能力本体,该能力本体根据传感器160能够处理的查询定义了传感器160的特定功能能力。能力本体应该设计为使得对查询类型进行标识的所命名的能力类别是不相交的。本体变换器125包括程序代码,用于针对查询的所命名的已知能力子类别(即时的或过渡的)搜索分类结果。当找到这种子类别(存在至多一个)时,本体变换器125调用被编写为处理该查询类型的特定模块或方法。例如,当查询被分类为对传感器节点重新编程的类型时,本体变换器125使用用户查询中的实例信息来指定针对传感器节点155的新程序应该做什么,以执行对该新程序进行汇编和加载的程序代码。
可以经由一个或多个网络,例如互联网等公共网络,从本体变换器125向一个或多个节点155传输命令。在要访问多个节点155的情况下,可以采用中介服务器或网关145等网关节点,来方便这些节点155与本体变换器125之间的通信。
如图1所示,每个节点155具有与之关联并通信的一个或多个传感器160。节点155与传感器160的这种关联可以是物理的和/或逻辑的。系统100中节点155的数目可以少到1个,并且可以多到系统架构能够支持的数目。类似地,与每个节点155关联的传感器160的数目可以少到1个,并且可以与节点数目一样,多到系统架构能够支持的数目。系统100是针对节点155和传感器160的数目的可缩放性而特定地设计的,因为系统100采用的本体驱动的查询或命令范例允许在与每个传感器160的底层硬件或技术要求无关的情况下处理查询或命令。
本体服务器120提供针对系统100内所有本体变换器125要采用的本体的储存库。该本体服务器提供用于对传感器网络上的查询或命令进行措词表达的上下文信息或词汇,并且可以视为包括两部分:提供了一般背景术语的域本体,以及对网络中的传感器160和节点155的功能进行特定建模的能力本体。该能力本体也在异质传感器网络150之间共享,并被加载到查询编辑器110中。
对于域本体,一些实施例使用以W3C的本体语言OWL(扩展自SWEET(源自NASA,http://sweet.jpl.nasa.gov))表达的本体。SWEET提供上下文类别,包括:现象:风,空间:方向,属性:速度,属性:温度,以及属性:相对湿度。一些实施例可以扩展SWEET,以定义一般来说对于描述特定传感器网络中传感器的能力有用的类别或属性,例如包括表1、2和3中所示的那些。在能力本体中,可以定义对传感器的能力进行特定地建模的类别和属性,例如表5、6、7、8和9中所示的那些。
每个本体变换器125包括计算机程序指令(下面参照图2更详细描述),该计算机程序指令允许将本体变换器125配置为接收来自查询编辑器110的查询或命令。本体变换器125采用本体推理器135对查询或命令分类,并将分类后的查询或命令映射到对目的地传感器网络150中的传感器的特定能力加以说明的能力本体上。
本体变换器125通过获得代码片断130,基于分类后的查询和能力本体来建立变换后的查询。这样,本体变换器125可以视为向接收到的每个查询或命令应用动态地确定的本体变换器,从而允许与传感器相关地来执行查询或命令,而不管传感器之中的任何异质性。
代码片断130包括语言模板形式的数据,或者包括采用目的地传感器节点155的语言的程序片断。如本文所述,这种代码片断130由本体变换器125用来以传感器节点155的语言产生可执行程序或查询。
变换后的查询或命令由本体变换器125经由网络或经由专用通信媒介(有线的或无线的)发送给网关145(可以包括传感器网络150内的节点155)。本体变换器125也可以使用结果过滤模块145(图2)来过滤经由网关145从传感器网络50返回的响应,其中来自网关145的返回数据比对于原始查询的完整响应所需的数据多。例如,使用气象站作为传感器节点155的示例,该传感器节点155提供本机命令以请求同时来自所有传感器的当前数据,本体和查询编辑器110可以允许用户查询来自任何特定传感器的当前测量数据(见表6中的查询当前数据:在该查询中必须命名一个或多个传感器)。因为每个这种查询都是查询当前数据的子类别,所以在每种情况下,本体变换器125向气象站(用作传感器节点155)发布相同的命令,但是结果过滤模块145内的本体变换器过滤代码丢弃响应中与所命名的一个或多个传感器不对应的那个或那些部分。
本体推理器135包括用于使用所建立的本体的公理来执行逻辑推理的计算机可执行程序代码。具体地,本体推理器135执行将本体的类别和属性分类到类别分级中的功能。因此,由本体变换器125采用本体推理器135,根据所建立的本体(这里称为域本体)来分类查询或命令。在本体推理器135不能够根据域本体分类查询或命令的情况下,向本体变换器125提供带有这种意思的消息,如果需要,本体变换器125进而通知查询编辑器110,使得向发源方用户或其他查询发源方显示适当的消息。
作为向本体变换器125发送查询之前的验证步骤,查询编辑器110可以初始地提供查询或命令给本体推理器135,以进行分类。如果该查询或命令可以分类为针对至少一个传感器节点155的能力概念的子概念,则有效的验证了用于系统100内进一步处理的查询或命令。如果无法执行分类,则可以使用查询编辑器110来重新构造查询或命令。
网关145包括传感器网络150内的节点,该节点可以具有或不具有与之关联的传感器160,并且可以包括功能完整的传感器节点155。网关145用作针对传感器网络150的网络接入点,例如通过公共或私有网络(例如互联网或公共交换电话网络(PSTN))。网关145应该具有可靠的电力供应,以便其可以可靠地执行其网关功能。网关145用作去往和来自传感器网络150的控制和单访问的点。
每个传感器节点155一般包括用于激活和控制各个单独传感器160的可编程系统。每个传感器节点155可以存储测量数据,并通过无线电或固定网络与其他节点155通信,以共享传感器测量数据或其他消息,包括经由网关145接收的消息。传感器160的非限制性示例可以包括例如用于测量环境、医疗、工业或其他状况的化学、生物、电、物理或其他传感器。
传感器网络150包括传感器节点155和传感器160的集合或组(无论是虚拟的还是物理上关联的),其中网络150内的节点155和传感器160具有至少一个共同主题、功能、角色或关联,使得在网络内按所期望地将它们分组在一起。
能力本体设计为使得本体推理器135对查询的分类将该查询放入到类似查询的类别(能力类别)中,由此可以使用本体变换器125中的共同程序代码来执行该查询。本体变换器125包括用于针对已知的命名的能力类别(作为该查询的超类别(即时的或过渡的))来搜索分类结果的程序代码(例如可以包括在如下关于图2所述的查询管理模块240中)。当找到这种超类别时,程序代码调用被编写为处理该能力类别的特定模块或方法。一些能力类别需要例如特定日期或温度范围等参数,以便可以将查询的单独部分(包括数据类型和对象属性实例)作为参数传递给查询管理模块240,并且可以使用该单独部分根据用户请求对查询进行详细说明。
例如,传感器网络150可以使用Environdata WeatherMaster 1600气象站,该气象站具有使用预定义的控制语言的内置处理器和存储器,该气象站用作具有多个传感器160的传感器节点155。所识别的命令之一,STORAGE命令,可以用来对气象站进行重新编程,以按照选定的间隔获取选定的传感器读数,并将原始读数或合计读数存储在选定的存储器位置。STORAGE命令自身以关键字“STORAGE”开始,随后在同一文本行中跟随有用于反映上述选择的参数。为有效使用该命令,该命令之前必须有一行命令“MEM ON”,并且之后跟随有一行命令“MEN OFF”。必须将全部的三个命令传输给气象站以对气象站进行重新编程。
查询编辑器110支持用户将查询构建为采用本体语言的表达式。例如,考虑表7的重新编程查询。按照表7中给出的类别的定义,该查询是创建功能(CreatedFunctions)类别的子类别。用户创建该查询类别,并请求本体推理器135对其进行分类。如果该查询不是能力类别的子类别,则该查询不是有效查询,可以拒绝该查询。在本示例中,该查询是表6的设定存储功能的子类别。可以提示用户输入针对该类别的(继承的)实例属性的数据类型值。因为能力本体是使用针对查询中使用的类别的适当数据类型属性来设计的,所以查询编辑器110立即提示这些属性值:在该情况下,针对hasStrgTabNo的整数,一天中的时间1和时间2,作为创建功能的属性。假设用户分别输入值3,0900和0。此外,假设已经先前初始化了本体,其中湿度传感器的sensorNo数据类型属性设定为值5(这与气象站的本机传感器编号系统对应),天(Day)类别具有的属性timetypeCmd的值设定为“小时(HOUR)”(在本机语言中,这表示在一天中的固定时间进行日常测量),以及平均(Average)类别具有的数据类型属性statCmd设定为值“AVERAGE”。当本体变换器125接收到来自查询编辑器110的查询和实例时,本体变换器125将查询分类为设定存储功能(setStorageFunction)能力类别的子类别,并使用内部码将该查询翻译成气象站所要求的形式。本体变换器125构造“STORAGE”命令串,适当地追加如从查询实例中检索到的参数。本体变换器125还在内部通过内部序列号分配方法产生命令编号(commandNo),并在需要时插入固定字符串。在这种情况下,采用WeatherMaster的语言,所请求的命令变为“STORAGE 6AVERAGE 35100HOUR 09000”,其中参数分别对应于commandNo、statCmd、hasStrgTabNo、sensorNo、1、0、0、timetypeCmd、一天中的time1和time2。此外,如上所述,本体变换器125通过两个MEM命令将该行文本括起来。
现在参照图2,关于至少一个节点155和至少一个传感器60,更加具体地示出了本体变换器125。本体变换器125包括处理器210和存储器220。可执行程序指令形式的多种软件组件225、230、240和245存储在存储器220中并可由处理器210执行。处理器210可以包括一个或多个处理器,这些处理器是物理的或虚拟的,并且是位于一体的或分布式的。存储器220是处理器210可访问的,并且可以包括分布式的或位于一体的一个或多个存储介质。
当执行时,本体变换器125将域本体225从本体服务器120加载到存储器220中。本体变换器125还加载来自本体服务器120的或驻留在本体变换器125中的预定的传感器能力局部本体235,并将该能力本体与域本体225组合,以形成本体,本体变换器125使用该本体将分类的查询或命令映射到可以在节点155上执行的合适的代码片断130上。可以通过在去除第二文件中首部文本的任何重复部分或者其他冗余文本之后进行文件拼接,来组合能力本体和域本体。备选地,可以使用本体语言的特征,将一个本体导入另一个本体中,或者类似地,第三骨架本体可以导入每一个本体。
存储器220还包括查询管理模块240,查询管理模块240配置为当由处理器210执行时,接收来自查询编辑器110的查询,将该查询与域本体和传感器能力本体组合,然后调用本体推理器135将该查询分类到已在能力本体中描述的查询类别中。如果查询类别不是由能力本体中的查询类别包含的,则将查询拒绝为无效,因为该查询未请求传感器网络能够执行的功能。例如,为了组合查询和本体,可以通过在将本体提交给本体推理器155进行分类之前,将查询追加到本体文件,来将查询断言为本体中已命名的类别描述。
本体变换器125使用查询类别来访问代码片断130或代码模板库或文件系统,代码片断130或代码模板体现了采用传感器网络的语言的用于执行查询类别的结构。然后,本体变换器125通过根据查询中指定的参数完成模板或程序片断来完成变换,并将变换后的查询或命令(作为程序)提交给网关145,以在传感器网络150上执行。通过插入从查询类别的实例、以及由查询编辑器指定的或如同实例一样在本体中提前断言的查询类别属性中检索的数据来填充模板。
通过查询编辑器110提交的查询可以包括两部分。第一部分是被分类来确定查询类型的类别定义(可选地,以及关联的属性公理)。第二部分可以是一组实例,其用于使用针对类别的数据类型属性或其他对象属性的基本值,来进一步细化查询。查询编辑器110支持输入两种类型的信息,但不是所有查询类型都要求实例数据。例如,表6的setStorageFunction查询类型从功能(Function)类别(经由CreatedFunctions类别)继承了称为“time1”的数据类型属性,并且查询编辑器提示用户向该字段中输入整数。只有查询的类别定义部分用来进行分类。本体变换器125可以使用该整数值作为至气象站的命令的一部分-特别地,该整数值是用于分离感测测量值的时间单位的倍数。类似地,本体实例可以用于存储在查询处理中使用的一些固定值(例如,命令中与针对每个传感器的气象站的标识符对应的相应数字)。这些实例值成为要插入针对在创建的传感器节点命令而正被汇编的串或程序代码中的参数。
本体变换器125接收经由网关145从传感器网络节点155返回的响应。在接收到的响应包含的数据比满足原始查询所需的数据多的情况(如果传感器网络不能够如所需的那样是选择性的,则会发生这种情况)下,本体变换器125使用结果过滤模块245来进行结果过滤,以将结果缩减到仅有原始查询中指定的那些。然后,本体变换器125将经过滤或未过滤的结果返回给查询编辑器110。
网关145将从本体变换器125接收的经分类和变换的程序或查询传输并安装到一个或多个节点155上,并将程序或查询加载到传感器网络中网关145负责的相关传感器网络节点155的存储器255中。然后,由查询或程序被定向至的每个节点155的处理器250来执行经分类和变换的程序或查询。根据程序或查询,网络的一些传感器160可以变为激活的并进行测量,测量值记录在节点155的存储器255中,并且还可能由处理器250根据查询或程序指令对测量值进行分析。然后,在一个或多个消息中将测量值传输给网关145。网关145可以聚集来自传感器网络150内多于一个传感器节点155的响应,然后将一个或多个响应传输给本体变换器125。
现在参照图3,图3示出了传感器的本体驱动的查询和编程的方法300。方法300开始于步骤305,在步骤305,本体察觉接口115接受查询或命令。查询或命令可以表示为web本体语言(OWL)代码片断,例如,包含一个或多个类别描述和属性公理,也可以包含类别实例、对象属性和数据类型属性。可以从依赖于用户输入的查询源或者从自动查询系统接收查询或命令。备选地,查询或命令可以表示为描述逻辑公理,或由图形本体编辑器中的图形手段(例如Protégé或Protégé插件)来表示。
作为可选的验证子过程,可以在步骤310由查询编辑器110将查询或命令连同本体(包括域本体和一个或多个能力本体)一起发送给本体推理器135,以在步骤315进行分类,并且经分类的本体返回给本体察觉接口115,以呈现给用户以及进行错误报告。为使查询是有效的,必须将查询分类为本体能力类别中查询类别的子类别,并且本体中能够响应于该查询类别的传感器节点是变换后的查询可以发送至的节点。
在步骤320,将查询或命令发送给本体变换器125。本体变换器125通过将查询或命令发送给本体推理器135以对查询或命令进行分类、进行验证并发现哪些传感器节点能够响应于该查询或命令,来重复步骤310和315(在步骤325和330)。在步骤335,本体推理器135向本体变换器125返回分类后的查询或命令。这一般是组合的本体和查询或命令的表示,该表示将查询或命令放置于类别分级内,从该表示中可以容易地提取本体中的查询或命令的子类别或超类别。
在步骤340,本体变换器125检索与查询所分类到的查询类别相对应的代码片断130或命令模板,然后汇编这些片断,并填充来自查询或命令的剩余参数,以产生针对传感器网络150的可执行查询或程序。在步骤345,通过适当的通信介质将可执行查询或程序传输给传感器网络150,并且指示传感器网络150的相关节点155执行该查询或程序。
在步骤350(在以定时的间隔请求结果的情况下,或者根据其他递归准则,可以重复步骤350多次),经由网关145向本体变换器125返回来自传感器网络150中节点155的结果。
在步骤355,如果结果包含的数据比原始查询所需的数据多,在步骤360滤除过量数据,并向查询编辑器或可能的一些其他目的地(如原始查询或命令中指定的)返回剩余结果。例如,如果用户查询在查询当前数据(queryCurrentData)类型(表6)的查询中请求温度数据,气象站只会立即返回针对所有传感器的数据,因此对气象站的查询刚好要求所有传感器,并且本体变换器125对结果进行解析并丢弃不需要的数据。更加具体地,将传感器编号存储为本体中针对每个传感器的实例,并且与查询的概念部分一起传递给本体变换器125。本体变换器125构建查询而没有传感器编号,但是随后刚好传递回几行响应,该响应在行的适当位置处具有正确的传感器编号。
下面描述系统100组件和/或方法300步骤的具体示例。所有这些示例仅仅是示意性而非限制性的,旨在将所述实施例置于上下文中。
根据所述实施例,用户(可以是人或软件代理,可以不熟悉传感器可用性或编程风格)可以使用本体的语言来表达查询或命令,该查询是要进行一些传感器观测的请求,或者是对这些传感器的一些特定的重新配置的命令。将该查询或命令以修改后的形式发送给用作传感器控制设备的一个或多个传感器节点155。例如,传感器节点155控制可以包括可编程的气象站,其中传感器160是实现气象相关测量功能(例如温度、相对湿度、风速或风向测量)的传感器。在本示例中,气象站(作为传感器节点155的一个示例)接收变换后的查询或命令,并相对于与之关联并通信(无论是否物理上与之连接)环境传感器来执行该查询或命令。
为说明目的,继续气象站示例。在该示例中,气象站可以是来自澳大利亚昆士兰的Environdata Australia Pty Ltd的Weather Master1600,作为一个传感器节点155。查询编辑器110、本体变换器125和本体推理器135可以使用例如OWL(特别是子语言OWL-DL)等web本体语言作为本体语言。对于OWL-DL,可以使用Clark&Parsia LLC的Pellet版本1.5作为本体推理器135。可以使用Standford University的ProtégéOWL编辑器3.3.1(可选地,与Protégé的Java(版本6)插件相组合)作为查询编辑器110。该Java插件实现本体察觉接口115,以提供图形用户界面(GUI),并用于与本体变换器125的Java实现方式进行接口连接。
这里描述的一般本体可以是为特定目的而建造的本体,如本文所述的,导入由NASA发布的本体SWEET 1.0的本体。该本体可以视为域本体和传感器能力本体的组合,如本文所述的。在这种上下文中,域本体可以视为作为基础本体而保持不变的本体的一部分,而能力本体是可变的和扩展的,以说明添加至系统100的每个新的传感器网络150。
下述示例示出了提取Protégé中显示的域本体,但是应该理解,可以使用OWL本体语言的其他表现形式,包括但不限于逻辑表达式、Manchester Syntax、OWL 2Functional-Style-Syntax或RDF/XML(这是针对RDF(资源描述框架)的XML(可扩展标记语言)语法)。
可以如下所述在本体中对气象站传感器能力进行建模。气象站具有四个传感器:温度传感器、相对湿度传感器、风速传感器和风向传感器。将气象站的每个传感器建模为如下类别:SWEET超类别“material_thing:Sensor”被限制为使用具有传感器特定填充项的“measures”属性,如下表1所示。
表1:传感器的定义
气象站和许多其他传感设备能够进行测量,并计算当前值和先前(存储的)值的平均值、最大值和最小值。该能力被建模为所创建的类别“Statistic”的子类别,其中没有特别限制,但是子类别彼此不相交,如表2所示。
表2:针对气象站能力的Statistic类别
表3:针对气象站的时间单位
可以周期性地执行测量,对于某一整数x并且在单位是天、小时、分钟或秒的情况下,每x个单位执行测量一次。如在表3和4中示出的,针对这些单位中的每一个定义类别。将这些单位中的每一个定义为SWEET本体的对应类别的子类别。例如,能力类别“Second”是域本体的“time:Second”的子类别,其具有超类别“time:Duration”。此外,使用属性“hasSubPeriod”对每个单位如何与其他时间单位相关进行建模。例如,类别“Hour”具有与如下对应的限制:具有“Minute”和“Second”中的每一个作为子时段,但是(具有附加的闭包公理)不具有任何其他子时段。最小单位“Second”定义为不具有任何子时段,如表4所示。在表4中,水平线以上的定义是完整(必要且充分)的;线以下的额外信息表示从SWEET继承并由Protégé工具显示的条件,但是对于本文论述并不重要。
表4:Hour和Second的定义
为从气象站请求数据,希望能够使用特定日期作为时间规范,因此将类别“Date”建模为SWEET的“time:Instant”的子类别。
已经描述了传感器设备能力的基本元素,现在描述对用于与气象站交互的语言的结构进行建模。对气象站语言的功能进行组织,使得能够通过本体推理器135执行的简单分类,将任意用户查询映射到气象站语言。例如,气象站支持三种查询作为本机能力:
●查询所有传感器的当前数据[queryCurrentData]
●查询存储器以获得从日期A到日期B的数据[queryPeriodData]
●通过添加或删除气象站中的程序行进行重新编程,程序行确切描述了想要测量什么、什么时间测量以及如何测量[setStorageFunction]
如表5所示,创建对应的本体结构。创建类别“Function”,这是“owl:Thing”的直接子类别。在该类别下面,引入两个类别,这两个类别用作其他类别的容器,并帮助保持分级结构井然有序。将所有查询放置在“CreatedFunctions”类别下(参见以下部分),并且存在“Capabilities”类别,例如“WM1600Capabilities”,以描述能力类别,这些能力类别是本体的焦点。不同传感器设备不需要具有不同的“Capabilities”子类别,备选地,可以通过另一方便的类别将能力分组成多个类别。然而,必须将每个能力类别定义为与其他能力类别不相交。
表5:气象站能力概念
如表6所示,通过与气象站制定所选功能而需要的参数相对应的限制,更加详细地定义每个能力类别。完整(必要和充分)的定义用于这些能力类别,并且它们的定义确保它们是不相交的。如果在开发合适的能力描述时需要,则可以由本体推理器135来确认定义的不相交性。
表6:能力类别的完整定义
由此定义的类别提供了用于表达用户查询的框架。针对任意设备的有效查询确切地是类别定义,该类别定义是预定义的设备能力的(语义)子类别。“语义子类别”的意思是可以由健全的OWL推理器将查询解译为子类别;不要求该查询被显式地断言为子类别。例如,为了重新编程气象站,有必要使用三个属性“usesPeriod”、“usesSensor”和“usesStatistic”。为了询问气象站有关当前问题,有必要使用“usesSensor”属性,并且还通过否定其他限制来表达其他属性是未使用的。
表7示出了两个示例查询的定义,一个查询是重新编程气象站,一个查询是请求当前湿度。明显地,这些查询与父能力类别相似。在更复杂本体的情况下,这些查询可能看起来与能力类别在语法上相当不同,这是因为本体推理器135能够正确地解译本体,以识别适当的语义关系。为了保持本体井然有序(没有显著的语义影响),将两个查询定义为“CreatedFunctions”类别的子类别。
用于请求当前湿度的示例查询非常简单,因为只是将它指定为仅使用“HumiditySensor”,而否定对应能力定义的其他属性。
用于重新编程气象站的示例查询利用本体来使系统能够识别查询何时可以由已被请求的另一查询来回答。对于该查询(表7),除了仅有的必要限制(usesPeriod some Day)之外,还给出了时段限制(usesPeriod some(time:duration and(hasSubPeriod some Day))),该时段限制是必要且充分的。这意味着本体推理器135将把重新编程查询分类为另一重新编程查询的子类别,其中该重新编程查询描述了对于测量结果的请求,该请求可以通过过滤(选择)来自另一重新编程查询的测量数据而回答。例如,可以将每分钟测量来自湿度传感器的数据的重新编程查询分类为每5秒测量自湿度传感器的数据的重新编程查询的子类别。依赖于此,在分类之后,本体变换器135可以仅仅将该最高分类的重新编程查询传送给气象站,因为由至少一个最高分类的查询包含的其他查询是冗余的。
表7:查询
当本体变换器125或查询编辑器110调用本体推理器135时,立即将每个有效查询(从该查询与定义的感应设备能力相对应这一方面而言)分类为相应能力的子类别。可以使用查询编辑器110可视地检查推理器的分类,或者可以用例如本体变换器125等其他软件来可编程地检查推理器的分类。此外,可以调用本体推理器135来确保查询类别本身在本体上下文中是可满足的,这将实现对绝不会有回答的一些查询(例如,具有限制usesPeriod some Day以及另一限制not usesPeriod owl:Thing的查询)的早期拒绝。由于这些能力类别的原始设计,这意味着立即标识出设备命令语言的对应结构。
表8中示出了其他查询示例。这些示例查询都将分类为能力类别“queryPeriodData”的子类别,尽管它们看起来在语法上十分不同。
表8:queryPeriodData查询的示例
至此,已经描述了查询作为用作模板或模式的类别,其自身是更加广义的设备能力的子类别。还使用本体来表示查询的OWL数据类型属性,使得能够通过查询参数的值来区分查询。在这一级别上,将查询表示为特定查询类别及其属性的实例,具有的查询参数被实例化为OWL数据类型属性的值。类似地,将气象站的当前状态建模为本体实例的集合。
如表9所示,能力本体通过将针对每个设备的类别定义为“Device”类别的子类别,并将“hasFunction”属性定义为具有域Device和范围Function的属性,来捕获多个传感器设备的定义。
表9:气象站设备描述
如表7所示,根据能力本体,用户可以对重新编程设备的查询或请求测量数据的查询进行措词表达。可以通过创建与查询对应的类别的定义,(使用本体推理器135)验证请求的有效性,将请求传递到相关的设备特定处理方(传感器节点155),然后传递到本机设备接口(传感器160),然后接收响应并将响应传递给查看应用程序(例如查询编辑器110或另一目的地),来实现上述对查询进行措词表达。
例如,可以使用在远程主机140上运行的Pellet OWL-DL推理器,并且该Pellet OWL-DL推理器可以由本体变换器125使用,以及可以由用户的Protégé客户端使用。用户可以通过作为用户接口的ProtégéOWL Editor 3.3.1对气象站进行查询和编程,或者更方便地,通过Protégé插件图形用户界面(GUI)对气象站进行查询和编程,该GUI能够简化本体显示并与本体变换器125进行交互。假设Protégé和插件客户端是在本地安装在用户的计算机系统105上的,并且本体变换器125部署在另一计算机系统140上,该另一计算机系统140根据其自身的设备特定接口要求与气象站通信。查询编辑器110与本体变换器125之间的通信以及它们各自与本体推理器135之间的通信可以经由例如TCP/IP编程接口。
作为直接使用Protégé作为用户客户端工具的备选方式,对本体中能力类别的定义使得能够在运行时间产生用户界面,在这种情况下,用户界面可以提供从预先过滤的类别树中选择类别的三个选项,预先过滤的类别树中仅列出了允许的能力类别。通过该界面,用户可以在不需要直接的Protégé交互的情况下,选择允许的类别对查询进行措词表达。客户端工具可以实现为Protégé插件。在选择之后,该客户端工具可以自动否定界面上用户未选择的限制,以形成查询。
已经描述实施例,实施例具体应用于以气象站专用控制语言对气象站进行编程。根据该语言的制成文档的特性,将能力本体结构化为存储功能、传感器、时段等。然而,其他合适的编程语言具有在原理上与此类似的功能分组(以及对此,可以开发本体内的功能分类),但是在使用的术语和它们的分类结构方面有所不同。
根据对于气象站可用的控制接口特定的实施方式,这里描述部署方法。本领域技术人员能够针对备选的部署技术来适配该方法,例如经由“Deluge”,Deluge可以用于无线传感器网络的空中编程。
在可以由气象站测量的环境的编程和查询特征方面,描述了实施例,但是实施例不限于此。实施例可以应用于由具有远程控制可能性的现场传感器进行的任何测量,例如静止或视频图像;声音;例如血压、心跳或血糖等人体健康指标;例如溶解营养物和浑浊度等水流、压力和质量参数;例如日照、野生生物位置、密度和运动等生态参数;例如红外光束和运动检测器等安全监视参数;例如地震扰动和波浪运动等地球物理参数、例如能耗、加热、通风或运输流量等建筑环境或交通参数;或者任何其他远程感应测量或应用。
根据已经付诸实施的特定设计和实施方式描述实施例,但是实施例允许多种可能的架构和工具组件。描述了至第三方Protégé本体编辑软件的插件,但是可以使用其他合适的用于开发本体的编辑器或方法,并且可以采用其他机制来允许用户根据本体表达传感器数据需求,例如专门的GUI或例如OWL文档等文本格式。这些备选方式必须接受查询,将查询与域本体组合,调用推理器进行分类,根据分类结果检索代码片断,并以适合方式汇编这些代码片断。
可以提供用于汇编代码片断的另一方法的变体可以是经由:通过分类来检索编译时间标志,然后将该标志提供给编译器,以条件性地编译代码库或以通常方式设定编译时间参数。这可以例如在传感器网络的目标语言是NesC时进行。另一变体可以是应用该技术以TinyDB(基于TinyOS的传感器网络的数据库系统)的类似SQL语言产生命令,替代这里详细描述的气象站本机命令语言。
根据经由TCP/IP编程接口进行交互的软件组件,描述了实施例,但是可以使用其他分布式计算或基本通信协议。
在所述实施例中,本体包括可以按照需求而更新和扩展的数据,以表示将新传感器能力添加到传感器网络查询环境中。这些新传感器能力可以表示新的域级别能力(可以测量新的现象)或新的控制和接口能力。然而,由于该信息表示在本体中,并且本体是动态地读取到查询接口中并通过推理工具动态地操作,所以向用户提供新能力不要求对用户查询工具进行改变,并使用户无需学习关于传感器节点155或网关145的编程接口的任何东西。
改进的特征涉及到对域和能力本体的使用,由能够经由本体语言进行健全推理的本体推理器135支持,以将用户指定的查询分类成标识了传感器特定代码的类别,可以对代码进行汇编和执行以实现查询。这由查询编辑器110的(域和能力)本体察觉性支持,并提供对查询可用的传感器进行描述的导航性分级结构,还避免用户察觉到传感器编程语言的异质性,同时允许编写健全和具有表现力的用户查询。
所述架构和方法的有利特征在于使用经由本体的所述正式推理(或逻辑推断)作为查询/命令处理的组成部分。该正式推理一般描述为“分类”,但是可以更广义地描述为“逻辑推断”。这种特征允许系统100执行查询有效性验证,以及向能够处理查询的传感器节点155分配这些查询,而无需特殊代码(即,仅仅基于作为系统100的数据输入的本体的结构)。这一点在下面提供的示例中进一步描述和示出。
所述系统架构和方法允许仅基于本体对重新编程指令进行冗余检查,从而减少对频繁的重新编程的需求,这在共享/多用户传感器网络资源环境中是重要的。所述系统架构和方法也允许根据节点命令语言的结构,而不是根据本体中嵌入的网络范围查询语言的结构,对用于翻译成传感器节点155的查询或命令语言的节点特定程序代码进行组织。这将两种语言的语法隔离开,并允许在希望时改变针对相同节点特定查询或命令的本体语言中的多种语法,而没有附加程序代码的成本。例如,由本体推理器135执行的分类过程可以将查询放置到相关类别中,然后本体变换器125会使用程序代码来处理该类别。这允许本体变换器125对于可接受的查询语法不会是过度规定性的,而是针对查询语义。所述系统架构和方法也允许将传感器节点和网关中的异质性对用户隐藏,从而用户更容易使用传感器网络。
以下示例示出了系统100可以如何分类查询,使得哪些设备(例如,传感器节点155)能够处理该查询是立即明显可见的。这使查询编辑器110能够将查询引导至负责管理这些相关设备的本体变换器。
该示例使用表9中给出的WM1600类别的定义以及表6中给出的该类别的能力。现在,可以构建类别,该类别与查询对应,例如表7中“请求当前湿度查询”。例如,该类别可以称为“myCurData1”。
现在,可以如下定义新类别,其描述可以接收查询“myCurData1”的所有设备(例如,传感器节点155)。
表10:用于找到哪些设备能够处理myCurData1查询的类别
当本体推理器135对该新类别(表10)分类时,能够处理该查询“myCurData1”(例如类别“WM1600”)的每个设备成为该类别的超类别。通过维护传感器节点155到负责这些传感器节点155的本体变换器125的映射,查询编辑器110可以将该查询引导至所指示的本体变换器125。
在本说明书中,本体表达式的示例给出为本体编辑器Protégé3.3中表达式的屏幕拷贝。在该形式中,水平线以上的表达式是“必要且充分的”(也称为“完整的”或“等同类别”),水平线以下的表达式是“必要的”(也称为“超类别”)。由较大点分离的表达式被连接性地组合。在未显示水平线的情况下,表达式是必要且充分的。
在本说明书和随后的权利要求中,除非上下文要求,否则单词“包括”及其变化形式将理解为隐含表示包括所列出的整数或步骤或整数组或步骤组,但是不排除任何其他整数或步骤或整数组或步骤组。
本说明书中对任何现有公开内容(或从其导出的信息)或任何已知内容的参照不是也不应视为确认或承认或以任何形式暗示:现有公开内容(或从其导出的信息)或任何已知内容构成本申请涉及的技术领域中普遍的一般性知识。
用于传感器的本体驱动的查询和编程的方法和系统专利购买费用说明
Q:办理专利转让的流程及所需资料
A:专利权人变更需要办理著录项目变更手续,有代理机构的,变更手续应当由代理机构办理。
1:专利变更应当使用专利局统一制作的“著录项目变更申报书”提出。
2:按规定缴纳著录项目变更手续费。
3:同时提交相关证明文件原件。
4:专利权转移的,变更后的专利权人委托新专利代理机构的,应当提交变更后的全体专利申请人签字或者盖章的委托书。
Q:专利著录项目变更费用如何缴交
A:(1)直接到国家知识产权局受理大厅收费窗口缴纳,(2)通过代办处缴纳,(3)通过邮局或者银行汇款,更多缴纳方式
Q:专利转让变更,多久能出结果
A:著录项目变更请求书递交后,一般1-2个月左右就会收到通知,国家知识产权局会下达《转让手续合格通知书》。
动态评分
0.0