首页 / 专利库 / 商业 / 行动支付 / 物机器

物机器

阅读:668发布:2020-05-17

专利汇可以提供物机器专利检索,专利查询,专利分析的服务。并且提供了一种物机器,该物机器具有处理器、非暂时性 存储器 、非暂时性计算机可读介质和可执行机器码P(TM)。P(TM)包括第一可执行机器码行动的集合,该第一可执行机器码行动的集合具有一个或多个可执行机器码P(TM(i))行动,其中,每个可执行机器码P(TM(i))行动被配置为模型的 算法 程序的实施方式,其中,第一P(TM(i))提供在物机器的所述非暂时性存储器中自我配置物的第一词汇表的行动,所述物是代表所述处理器能够执行为行动的物以及行 动能 够作用的物的集合,并且其中,执行至少一个P(TM(i))机器码行动以在物机器的非暂时性存储器中配置代表核心词汇表的物的第二词汇表,能够通过该核心词汇表提供应用。,下面是物机器专利的具体信息内容。

1.一种物机器,包括:
处理器、非暂时性存储器和非暂时性计算机可读介质;以及
可执行机器码P(TM),所述P(TM)包括第一可执行机器码行动的集合,所述第一可执行机器码行动的集合具有一个或多个可执行机器码P(TM(i))行动,其中,每个可执行机器码P(TM(i))行动被配置为模型的算法程序的实施方式,
其中,第一P(TM(i))提供在所述物机器的所述非暂时性存储器中自我配置物的第一词汇表的行动,所述物代表所述处理器能够执行为行动的物以及行动能够作用的物的集合,并且
其中,执行至少一个P(TM(i))机器码行动以在所述物机器的所述非暂时性存储器中配置代表核心词汇表的物的第二词汇表,能够通过所述核心词汇表提供应用。
2.根据权利要求1所述的物机器,进一步包括:
第二可执行机器码行动P(TM(i))的集合,每个可执行机器码行动P(TM(i))代表模型的算法程序的实施方式并实施为机器码;
请求内容,所述请求内容根据语言文法和语法进行表达,P(TM(i))能够与所述语言文法和语法交互以将请求物设置为代表所述请求内容;
被配置为解析请求内容并设置请求物的P(TM(i)),所述请求物代表所述内容;
用于在当前的词汇表的上下文中评估请求物以设置可执行物的P(TM(i)),;
用于执行可执行物的P(TM(i));以及
代表执行所述模型所需的运行时间的至少一个P(TM(i))。
3.根据权利要求3所述的物机器,其中,P(TM)的多个P(TM(i))使用单个物机器中的多个计算部件来实施。
4.根据权利要求3所述的物机器,其中,P(TM)的多个P(TM(i))使用直接通信的多个物机器来实施。
5.根据权利要求3所述的物机器,其中,P(TM)的多个P(TM(i))使用间接通信的多个物机器来实施。
6.根据权利要求3所述的物机器,其中,第一P(TM(i))使用i2c通信来与第二P(TM(i))通信。
7.根据权利要求3所述的物机器,其中,所述应用涉及电子支付和处理。
8.根据权利要求3所述的物机器,其中,所述应用涉及由以下各项组成的组中的一个或多个的使用:数字钱包、数字钱币、数字代币、数字奖励点、进行支付以及接收支付。
9.根据权利要求3所述的物机器,其中,所述机器码行动涉及由以下各项组成的组中的一个或多个:电子行动、机械行动、电磁波形装置的使用、生物行动、化学行动、压波的生成、压力波的接收、电磁辐射的生成和电磁辐射的接收。
10.根据权利要求3所述的物机器,其中,所述机器码行动涉及:
行动,所述行动用来与基于重组酶的状态机(RSM)交互,所述基于重组酶的状态机使用输入驱动的重组酶来操纵DNA寄存器,所述DNA寄存器由重组酶识别位点的重叠和正交对组成。
11.根据权利要求10所述的物机器,其中,所述RSM中编码的状态信息能够被询问。
12.根据权利要求10所述的物机器,其中,所述RSM中编码的状态信息能够被定序。
13.根据权利要求3所述的物机器,其中,P(TM(i))行动涉及人工智能算法的使用。
14.根据权利要求13所述的物机器,其中,所述算法选自由以下各项组成的组:符号AI算法、子符号AI算法以及统计A算法。
15.根据权利要求3所述的物机器,其中,P(TM(i))行动与环境交互并且响应于此,所述P(TM)配置适用于所述环境的可执行行动的词汇表。
16.根据权利要求3所述的物机器,进一步包括光学子系统组件,其中,P(TM(i))提供以下行动:询问用户提供的光学标识符,并且响应于此,配置用户特定的词汇表。
17.根据权利要求16所述的物机器,进一步包括以下P(TM(i))行动:该P(TM(i))行动响应于用户肯定行动来执行忘记所述用户特定的词汇表的部分的行动。
18.根据权利要求3所述的物机器,进一步包括电磁装置和提供以下行动的P(TM(i)):
与所述装置交互以识别用户并配置用户特定的词汇表。
19.根据权利要求18所述的物机器,其中,所述电磁装置是生物识别装置。
20.根据权利要求18所述的物机器,进一步包括提供以下行动的P(TM(i)):响应于用户肯定行动,忘记所述用户特定的词汇表。
21.根据权利要求3所述的物机器,其中,物机器被配置为通过执行行动来获取经验。
22.根据权利要求3所述的物机器,其中,物机器被配置为学习与主题相关的动词词汇表。
23.根据权利要求23所述的物机器,其中,所述词汇表代表所述物机器能够作为行动加以执行的行动以及该行动能够作用的物。
24.根据权利要求23所述的物机器,其中,可执行行动选择所述主题。
25.根据权利要求24所述的物机器,其中,可执行行动选择开始学习的时间。
26.根据权利要求24所述的物机器,其中,可执行行动评估用以选择开始学习的适当时间的标准。
27.根据权利要求3所述的物机器,其中,物机器被配置为通过执行与由以下各项组成的组中的至少一个相关的行动来获取知识:阅读、聆听、分类、推断以及学习。

说明书全文

物机器

[0001] 相关申请的交叉引用
[0002] 本申请要求于2016年9月19日提交的序列号为62/396,332、名称为“物机器(THING MACHINE)”的美国临时专利申请的权益,其全部内容通过引用并入本文。本申请还通过引用并入以下申请的全部内容:于2016年1月29日提交的序列号为62/288,545、名称为光学识别系统和方法的美国专利申请。

技术领域

[0003] 本发明涉及计算机架构和设计,并且更特别地,涉及一种物机器,该物机器使用多维图表模型在非暂时性存储器中将物机器可以执行的行动以及受行动作用的物(Things)表示为所支配的(administered)物的实例。

背景技术

[0004] 四分之一个世纪以来,我们一直使用网络浏览器来呈现网页。浏览器已经显著地进化了超过25年,但是最终,浏览器仍然使用客户端服务器模型呈现网页。在最近的浏览器中,小型文字档案(cookie)信息现在可以同步在端中,使得我们的状态信息在我们使用的不同装置之间共享。
[0005] 在那25年期间,对网络的主要访问是通过使用桌上型计算机和膝上型计算机。提供网络浏览器的移动装置始于1996年。九年之后,谷歌宣布超过一半的谷歌搜索现在起源于移动装置(至少在美国内)。
[0006] 重要的是,注意到超过50亿个网页中的大量网页并不是移动友好(mobile friendly)。例如,在2016年,估计54%的小型企业拥有网站,并且那些网站中只有64%的网站是移动友好的。因此,只有37%的小型企业拥有移动友好的网站。有趣的是,要注意的是小型企业占据每年美国内超过一半的销售量。
[0007] 因缺乏移动友好的网页而沮丧的许多用户已经下载了零售商移动应用程序以使得他们的体验更富有成效。每个应用程序专用于特定的业务,并且随着越来越多的应用程序被下载,应用程序图标消耗屏幕显示器上的占据空间(real estate)而最终导致混乱。作为最终用户,我必须花时间组织手机上的应用程序,使得我就可以富有成效地浏览无数的图标来找到我正在寻找的正确的应用程序。手机操作系统应用程序编程接口(API)的不断更新需要专的开发团队来确保手机应用程序是最新的。这增加了许多小型企业根本无法负担的费用
[0008] 网络启用的语音激活装置的出现正变得越来越普遍。一代孩子正在成长在知道他们可以询问他们的手机关于他们朋友家的方向的环境下。智能手机、闹钟、智能手表、智能电视、智能音箱Amazon Echo、家庭自动化系统以及甚至是摩托车头盔只是语音激活装置的几个示例。
[0009] 网络启用的装置包括恒温器、、摄像机、发电机、咖啡机、洗衣机烘干机、灯开关、安全系统、玩具、灌溉系统以及许多其他装置和传感器。这种相互联系的世界有时被称为物联网
[0010] 假设,如果你能站在互联网的中心中并且向外看向边缘,你将看到连接到互联网的所有物。我们将此称为装置和传感器的物联网。如果你走到边缘,拿起装置,并且往回看向中心,你将看到提供的服务,并且这被称为服务联网。
[0011] 当某人意识到服务是被提供的物时,世界变得复杂,并且突然间,作为装置和传感器的物联网和作为服务的物联网之间存在灰色区域。实体物和虚拟物为物联网的含义增加了一定程度的模糊性,并且这在市场中造成了混淆。
[0012] 为了进一步使事情复杂化,许多实体装置通常可以使用多种协议进行通信,例如:GSM、CDMA、LTE、SS7、Zigbee、Z-Wave、WeMo、近场通信(NFC)、蓝牙、线程、BLE等。例如,通过使用我们的手机,我们可以通过仅将我们的手机伸向收机来使用NFC进行支付。类似地,我们可以使用蓝牙来将我们的手机与汽车音响系统配对和连接。在这两种情况下,装置都不使用互联网协议,然而我们仍将手机视为物联网的物。
[0013] 自2005年以来,已经售出超过3500万个可互操作的Z-Wave装置(Z-Wave联盟)。Z-Wave网络控制器用于支配你的Z-Wave装置网络。技术上,互联网就绪的Z-Wave网络控制器用于在互联网上通信,但控制器仍然使用Z-Wave向Z-Wave装置通信。这在物联网的定义上增加了另一层混淆,因为Z-Wave装置是物,但是,Z-Wave装置与可能是物联网的物或可能不是物联网的物的控制器通信。
[0014] 在物联网的定义上存在所有这样的混淆的情况下,也难怪国际电信联盟在他们对物联网的描述中甚至不使用关键词互联网。相反,国际电信联盟将物联网定义为:
[0015] 用于信息社会的全球基础设施,基于现有的和不断发展的可互操作信息和通信技术通过互连(实体和虚拟)物来实现高级服务(ITU-T)。
[0016] 我们都可以同意的一件事是:存在着物。
[0017] 我们对物进行分类以对物进行描述并对物进行归类。某些物是概念,比如金钱的价值、法定货币、诸如出生证明、版权、所有权、销售单的文件或财产。物可以代表事件、警报或度量单位、地理位置、或甚至时间。其他物是物体,诸如装置和传感器、手机、Ipad、或网页。甚至行动也是物,如:不要只站在那里,做点什么。
[0018] 图1是示出人可能如何对命令性命令作出反应的原始流程图的示意图。首先,以动词行动启用我们感官中的一个或多个,诸如,听教练告诉你接下来要做什么。你将使用用于特定语言的听词汇表来解析所说的单词并创建代表命令性命令的想法。接下来,你评估命令以确定接下来要做什么。我正确地学习了么?我可以那样做么?我想要那样做么?相反,也许我累了并且我需要休息。
[0019] 有时候我们会产生响应,诸如对我们理解了我们被要求之事的确认,并且其他时候响应是在执行行动本身。我们可能竖起大拇指,做出指示同意或不满的面部表情,或者使用我们用于给定语言的口语词汇来传达OK。可选地,响应于原地慢跑的指令,我们只是开始原地慢跑。
[0020] 词语“动词”本身是名词,意思是:通常是句子的主要部分之一并且表达行动、发生或存在的状态的词语(参见梅里曼韦伯斯特词典(Merriman Webster Dictionary))。行动是做某事的事实或过程。
[0021] 我们可以说,某些物表达了行动,而其他物则是可以受到行动作用的物。这将我们引导到物的奇特性:所有事物都是物。
[0022] 在现有技术中,短语“物联网”具有多个定义,主要集中于连接到互联网的装置和传感器,而不是诸如向订户提供的服务的物,该订户由他们的订户标识符和他们的密码识别,订户标识符和密码均为物。这限制了可以对作为机器码实现的算法程序的实施方式进行建模的方式,从而增加了低效率和成本。

发明内容

[0023] 本发明的实施例提供了一种物机器,该物机器使用多维图表模型在非暂时性存储器中将物机器可以执行的行动以及受行动作用的物表示为所支配的物的实例。
[0024] 物机器包含处理器、非暂时性存储器、非暂时性计算机可读介质和可执行机器码P(TM)。P(TM)包括第一可执行机器码行动的集合,该第一可执行机器码行动的集合具有一个或多个可执行机器码P(TM(i))行动,其中,每个可执行机器码P(TM(i))行动被配置为模型的算法程序的实施方式,其中,第一P(TM(i))提供在物机器的所述非暂时性存储器中自我配置物的第一词汇表的行动,所述物是代表所述处理器可以执行为行动的物以及行动可以作用的物的集合,并且其中,执行至少一个P(TM(i))机器码行动以在物机器的非暂时性存储器中配置代表核心词汇表的物的第二词汇表,可以通过该核心词汇表提供应用。附图说明
[0025] 附图被包括以提供对本发明的进一步理解,并且被并入本说明书中并构成本说明书的一部分。附图中的部件不一定按比例绘制,而是将重点放在清楚地说明本发明的原理上。附图示出了本发明的实施例,并且与说明书一起用于解释本发明的原理。
[0026] 图1是示意图,示出人可能如何对命令性命令作出反应的原始流程图。
[0027] 图2是示意图,说明根据本发明的一个实施例的物机器的部分。
[0028] 图3是示意图,说明物机器的启动进程
[0029] 图4是图表,用于释明由物机器所执行的、根据启动进程而进行图表创建。
[0030] 图5是图表,表示物B相对于物A单独存在的关系。
[0031] 图6是图表,示出thing:sttia关系。
[0032] 图7是图表,示出使用thing:is-a关系将具有可执行行动的关系的物分类为thing:verb。
[0033] 图8是支持分类的图表,其中,命名空间物(Namespace THING)被分类为thing:namespace,并且thing:namespace是thing:class。
[0034] 图9是示出支持分类的图表,其中,物被分类为thing:context。
[0035] 图10是示意图,示出将http URI与物示例性地绑定。
[0036] 图11是图表,示出thing:graph,其中,空白节点表示满足宣称,并且该声明可以具有对于thing:object的参考。
[0037] 图12是图表,示出thing:assertion断言thing:subject具有为数字的值并且因此不需要thing:object。
[0038] 图13是图表,示出何时thing:assertion宣称thing:subject的值小于thing:object的值。
[0039] 图14是具有连接符的图表的示例。
[0040] 图15是流程图,举例说明由物机器执行的最小运行时间步骤。
[0041] 图16是thing:graph,使得P(TM(i))是P(TM(parse))行动,解析XML文档,得到thing:graph,以便以下断言为真:存在名称等于core:print的物,使得存在名称等于“消息”并且值等于“你好,世界”的物。
[0042] 图17是图表,使得P(TM(config))作用于由请求命名空间物限定的物上,即G.id(示为空白节点),使得存在G.request并且存在G.urr。
[0043] 图18是图表,示出作用于由URI request:statement识别的物上的、my:configure版本的P(TM(config))。
[0044] 图19是有向图表,示出名称为x的物是名称为y的物的前导(predecessor),y是名称为x的物的后继(successor),并且谓词是使得存在一关系的物,这表示为thing:sttia。
[0045] 图20是有向图表,示出名称为x的物是名称为z的物的前导,并且谓词是“使得存在一实例”,这表示为thing:sttiai。
[0046] 图21是英语解释的有向图表。
[0047] 图22是有向图表,示出名称为x的物是thing:table。
[0048] 图23是有向图表,示出多个物具有与单个物的关系。
[0049] 图24是有向图表,示出名称为“x”的物是名称为“c”的物的类别的成员。
[0050] 图25是有向图表,示出关系,该关系表示名称为“x”的物的名称是名称为“b”的物的类别的成员。
[0051] 图26是有向图表,示出表示名称为“x”的物的值是名称为“c”的物的类别的成员的关系。
[0052] 图27是有向图表,示出上下文包括请求、响应和本地命名空间。
[0053] 图28是动词图表,示出分类默认为request:class=“thing:thing”。
[0054] 图29是动词图表,对应于默认为request:class=“thing:alarm”的分类。
[0055] 图30是图表,示出G.request(P(TM(i)))指示出P(TM(i))可以作用于请求命名空间中限定的物上。
[0056] 图31是图表,示出G.request(P(TM(i)))指示出P(TM(i))可以作用于名称为由名称为statement的物限定的Contact的物上,该名称为statement的物被限定在请求命名空间中。
[0057] 图32是图表,示出示例性G(P(TM(i)))是包括G.request(P(TM(i)))子图表的有根有向的thing:graph,并且G.request(P(TM(i)))子图表表示P(TM(perform))如何请求P(TM(i))执行其行动。
[0058] 图33是示意图,示出作为通用图灵机的物机器。
[0059] 图34是示意图,示出作为自适应神经机器人(Neural Bot)的物机器。
[0060] 图35是图表,示出在初始化期间,P(TM(thing))分配并初始化具有等于monad的名称的物作为物机器的thing:graph的根。
[0061] 图36是图表,示出上下文量化了用于解析列表的范围中的物的集合,该列表包括一个或多个自由变量和该自由变量之间的关系的表达式。
[0062] 图37是图表,示出上下文物是thing:stack,P(TM(thing))可以通过该thing:stack算法地将物推送到堆栈上,或者将物弹出(pop off)堆栈,因此改变上下文。
[0063] 图38是图表,示出具有对可执行行动的参考的表示的物被分类为主动物。
[0064] 图39是图表,示出G(P(TM(i)))可以包括额外的物信息,诸如包括对来自执行P(TM(i))的响应的物的描述。
[0065] 图40是G(P(TM(Thing.set)))图表,对应于用于在非暂时性存储器中设置物的P(TM(Thing.set))程序。
[0066] 图41是G(P(TM(Thing.get)))图表,对应于用于获取非暂时性存储器中由列表request:uri给出的物的表示的P(TM(Thing.get)程序。
[0067] 图42是G(P(TM(Thing.unset)))图表,对应于用于从非暂时性存储器复位(unset)物的表示的P(TM(Thing.unset)程序。
[0068] 图43是图表,示出G.request表示行动可以作用于为thing:statement的request:statement上。
[0069] 图44是G.request子图表,指示出行动可以作用于为thing:listing的request:using物上。
[0070] 图45是图表,示出P(TM(eval))算法地与P(TM(thing))交互。
[0071] 图46是图表,示出由列表request:stream识别的物的值是待解析的串流(stream)。
[0072] 图47是示例性图表,示出示例性XML片段的解析。
[0073] 图48是图表,示出由request:input列表给出的物的值是待解析的输入。
[0074] 图49示出G(P(TM(request)))图表。
[0075] 图50是G.request子图表,指示出P(TM(bind))可以作用的物。
[0076] 图51是thing:graph,该thing:graph被解释为断言,该断言描述了针对待绑定为图像对象类别(ImageObject class)的成员的物的成员资格要求。
[0077] 图52是由列表local:object给出的未绑定的thing:graph。
[0078] 图53是thing:graph,示出将local:object thing:graph绑定为schema:ImageObject物的请求。
[0079] 图54是断言,描述将物分类为广播服务(BroadcastService)是什么意思。
[0080] 图55是G.request子图表,指示出P(TM(perform))行动作用于request:statement上。
[0081] 图56是图表,示出与P(TM(thing))交互以算法地作用于由列表request:statement.task识别的物上的P(TM(task.set)),该物的值是待被设置为thing:task的物的列表。
[0082] 图57是图表,示出与P(TM(thing))、P(TM(eval))以及P(TM(perform))交互的P(TM(task.set))。
[0083] 图58是图表,示出识别物的request:statement.listing,该物的值是代表P(TM(format))要格式化的thing:graph的列表。
[0084] 图59是图表,示出URI物限定域物、路径物以及限定标题物的请求物。
[0085] 图60是生成的HTTP获取方法请求的图示。
[0086] 图61是由P(TM(http:get))接收的响应的图示。
[0087] 图62是由解析响应并与P(TM(thing))交互而得到的thing:graph集合。
[0088] 图63是图表,示出作用于request:content物上的P(TM(parse.html)),该物的值是代表值是待解析的HTML内容物的列表。
[0089] 图64是HTML内容中的示例性微数据的图示。
[0090] 图65是thing:graph,表示来自P(TM(parse.html))的微数据,P(TM(parse.html))提供与P(TM(thing))交互以解析内容的行动。
[0091] 图66示出解析以物语言表达的内容的P(TM),该内容描述P(TM)期望的配置。

具体实施方式

[0092] 本系统和方法提供了对计算机功能和能力以及甚至是计算机的定义的新颖改进,在本文中称为物机器。
[0093] 描述可执行行动的物可以用图灵机来表达。图灵机是可以执行从输入变量的集合确定结果集合的程序的假设计算机的数学模型。
[0094] 对于i=(l,n)TM(i)是可以采用输入集合、执行程序行动P(TM(i))并生成输出集合的计算机器。
[0095] 可以存在任何数量的这些机器,其中,每个P(TM(i))执行程序行动并且潜在地生成输出。第一P(TM(i))的输出可以是第二P(TM(i))的输入,并且P(TM(i))的集合通常可以并行执行。
[0096] 我们可以为这些行动分配有意义的名称,类似于我们命名诸如说话、聆听、评估、响应等的动词的方式。通过添加执行动词行动,我们可以要求机器执行特定的命名行动。诸如Amazon Echo或Apple Siri的某些机器可以这种方式响应语音命令。Alexa,再次订购纸巾。Siri,现在几点?在每个示例中,我们要求机器执行某些行动,诸如订购商品或回答问题。
[0097] 为了满足请求,机器首先需要评估正在被请求的是什么。在某些方面,这类似于要求二年级生将21减去7。该序列包括使用英语听力词汇表将词典解析为想法、评估想法指的是什么、选择行动、执行行动、以及使用英语词汇表来传达响应。可选地,二年级生可能耸耸他们的肩膀并且回复:我不知道。
[0098] 还要注意的是,请求机器执行某些行动并不意味着对发出请求的每个人执行相同的行动。例如,考虑输入到网络浏览器中的URL,诸如,http://www.thinglanguage.com/vl/index.html。通过输入URL,你实质上是要求浏览器获取并显示由URL识别的物。识别码和对应的资源都是物。
[0099] 请求他们的浏览器获取并显示相同URL的两个人可以有两个不同的结果,即使他们都输入了相同的URL。在一种情况下,内容可能是特定于个人的。在另一种情况下,HTTP请求标题可以包括由网络服务器用于构建资源内容的状态信息。重要的是,认识到URL可以识别某物但显示什么的是不同的事。
[0100] 物机器提供了一种独特的方式,该方式基于适应物机器的交互的启动物机器词汇表来管理和解释接收的请求,造成了对于物机器的词汇表的修改,其中,词汇表提供了基础,物机器通过该基础可以执行行动。结果,并且如在本文中所释明的,物机器能够解释、行动和适应接收的请求,同时增加解释和行动的能力。物机器的接收的请求、交互和对请求的响应是基于将物归类为作为行动的动词的行动物或者可以受到作为行动物的物作用的物(在本文中也被称为非行动物)来执行的。
[0101] 如以上所提到的,在物的奇特性中,物可以表示可执行行动,或者可执行行动可以作用的物。如在本文中解释和说明的,物机器将物组织为thing:graph,其中,图表的节点表示物,而thing:graph内的弧线表示物之间的可变关系。
[0102] 表示可执行的行为的物在本文中被称为动词物(thing:verb)并且thing:verb的集合是动词词汇表物。动词词汇表和动词行动可以作用的物是词汇表物。简而言之,在最小词汇表的情况下,本系统和方法可以使用通用量化来断言:如果曾经存在作为由物机器接收的请求的物,则物机器解析该请求,然后在物机器的可用词汇表的上下文中评估请求以选择适当的动词,并且执行动词对应的行动。执行的行动导致代表响应的物的集合。对于不生成语法响应的某些行动,此泛化使响应能够成为空的物的集合。有时候,遵守正在被执行的行动是充分的响应,诸如是关闭动词的情况。
[0103] 概述
[0104] 以下提供了物机器及相关词汇的概述,并且包括三个主要部分:
[0105] 1、物图表数据模型说明,该物图表数据模型说明将物描述为具有包括关系集合的非可变组分,该关系集合包括物之间的可变关系。
[0106] 2、架构概述,该架构概述提供了物机器架构的高级概述。
[0107] 3、物语言部分,该物语言部分提供了对物语言中书面文件的介绍。
[0108] 物机器结构
[0109] 图2是说明根据本发明的一个实施例的物机器100的部分的示意图。如图2所示,机器100包含存储器102、处理器104和非暂时性辅助存储装置106,每个通过本地总线或允许在物机器100内进行通信的本地接口108通信地耦合。
[0110] 存储器102具有存储在其中的软件120,该软件120定义了在本文中描述的功能。物机器100还包含输入和输出(I/O)装置110(或外围设备)。本地接口108可以是,例如但不限于,如本领域中已知的一个或多个总线或其他有线或无线连接。本地接口108可以具有附加元件,为了简单起见省略了附加元件,该附加元件诸如实现通信的控制器、缓冲器(高速缓存)、驱动器中继器和接收器。进一步地,本地接口108可以包括地址、控制和/或数据连接,以实现上述部件之间的适当通信。
[0111] 处理器104是用于执行软件(特别是存储在存储器102中的软件)的硬件装置。处理器104可以是任何定制的或市售的单核或多核处理器、中央处理单元(CPU)、与物机器100相关联的若干个处理器中的辅助处理器、基于半导体微处理器(以微芯片或芯片组的形式)、宏处理器或通常用于执行软件指令的任何装置。
[0112] 存储器102可以包括易失性存储器元件(例如,随机存取存储器(RAM(诸如DRAM、SRAM、SDRAM等)))和非易失性存储器元件(例如,ROM、硬盘驱动器、磁带、CDROM等)中的任何一个或组合。此外,存储器102可以包括电子磁性、光学和/或其他类型的存储介质。要注意的是,存储器102可以具有分布式架构,其中,各个部件彼此远离地定位,但是可以由处理器104访问。
[0113] 根据本发明,软件120定义由物机器执行的功能。存储器102中的软件120可以包括一个或多个单独的程序,每个程序包含用于实现物机器100的逻辑功能的可执行指令的有序列表,如以下所描述。作为示例,软件120可以定义解析器122、评估器124、执行器126和格式化器128,这些元件的功能在本文中描述。
[0114] 存储器102可以包含操作系统(O/S)122。操作系统实质上控制物机器100内的程序的执行,并提供调度、输入-输出控制、文件和数据管理、存储器管理以及通信控制和相关服务。
[0115] I/O装置110可以包括输入装置,例如但不限于,键盘鼠标扫描仪、麦克等。此外,I/O装置110还可以包括输出装置,例如但不限于,打印机、显示器等。最后,I/O装置110可以进一步包括经由输入和输出两者进行通信的装置,例如但不限于,调制器/解调器(调制解调器;用于访问另一装置、系统或网络)、射频(RF)或其他收发器、电话接口、桥接器、路由器或其他装置。
[0116] 当系统物机器100工作时,处理器104被配置为执行存储在存储器102内的软件120,以将数据传送到存储器102和从存储器102传送数据,并且通常根据软件120控制物机器100的操作,如以上所解释。
[0117] 当系统物机器100处于操作中时,处理器104被配置为执行存储在存储器102内的软件120,以将数据传送到存储器102和从存储器102传送数据,并且通常根据软件120控制物机器100的操作,如以上所解释。操作系统122由处理器104读取,也许是在处理器104内缓冲,并且然后执行。
[0118] 当以软件120实现物机器100时,应当注意,用于实现物机器100的指令可以被存储在任何计算机可读介质上以供任何计算机相关装置、系统或方法使用或与任何计算机相关装置、系统或方法结合使用。在某些实施例中,这样的计算机可读介质可以对应于存储器102或存储装置106中的任一个或两者。在本文件的上下文中,计算机可读介质是可以包含或存储计算机程序以供计算机相关装置、系统或方法使用或与计算机相关装置、系统或方法结合使用的电子、磁性、光学或其他物理装置或设备。用于实现该系统的指令可以实施在任何计算机可读介质中,以供处理器或其他这样的指令执行系统、设备或装置使用或与处理器或其他这样的指令执行系统、设备或装置结合使用。虽然已经通过示例提到了处理器
104,但是在某些实施例中,这样的指令执行系统、设备或装置可以是任何基于计算机的系统、包含处理器的系统、或可以从指令执行系统、设备或装置获取指令并执行指令的其他系统。在本文件的上下文中,“计算机可读介质”可以是能够存储、通信、传播或传输程序以供处理器或其他这样的指令执行系统、设备或装置使用或与处理器或其他这样的指令执行系统、设备或装置结合使用的任何设备。
[0119] 这样的计算机可读介质可以是,例如但不限于,电子、磁性、光学、电磁、红外或半导体系统、设备、装置或传播介质。计算机可读介质的更具体示例(非穷举列表)将包括以下:具有一条或多条导线的电连接(电子)、便携式计算机磁盘(磁性)、随机存取存储器(RAM)(电子)、只读存储器(ROM)(电子)、可擦除可编程只读存储器(EPROM、EEPROM或闪速存储器)(电子)、光纤(光学)和便携式光盘只读存储器(CDROM)(光学)。要注意的是,计算机可读介质甚至可以是纸张或在上面打印程序的其他合适介质,因为程序可以例如经由光学扫描纸张或其他介质来电子地捕获,然后在必要时以适当的方式编译、解释或以其他方式处理,并且然后存储在计算机存储器中。
[0120] 在可选的实施例中,在物机器100以硬件实施的情况下,物机器100可以用以下在本领域中都是公知的技术中的任何一种或组合来实现:具有用于在数据信号上实现逻辑功能的逻辑门的分立逻辑电路、具有适当组合逻辑门的专用集成电路(ASIC)、现场可编程门阵列(FPGA)等。
[0121] 根据本发明的第一示例性实施例,最初,存储器102包含物机器程序P(TM)(其为可执行程序)物机器程序P(TM)包括物机器程序P(TM(i))的集合。本领域技术人员将理解,多个P(TM(i))可以实现在单个计算机器中,例如但不限于,运行Windows 10的戴尔Latitude 15 3000系列膝上型计算机;使用诸如为Raspberry Pi 3的片上系统来实现;使用单个机器中的多种计算部件来实现,或者,使用可以直接或间接通信的多个不同且独立的机器来实现。物机器可以使用即插即用架构来实现,例如但不限于,在第6363437号美国专利“即插即用I2C从设备”中定义的即插即用架构,该美国专利通过引用整体并入本文。
[0122] 包括多个P(TM(i))的第一P(TM)可以被配置为第二P(TM)的P(TM(i))。
[0123] 物机器(TM)具有可以作用于物的集合(例如,诸如请求的输入)的程序P(TM),执行行动,并且生成物的集合(例如,诸如生成的响应的输出)。遵循图灵的可计算性模型,以及遵循通用图灵机可以模拟图灵机,我们可以假定地推定: 模型指示,我们可以通过安排这些数字中的某个数字n作为 来构建P
(TM)。具体地,如本文中进一步详细描述的,如果物机器的第一程序请求物机器的第二程序执行行动,其中第二程序的物机器可以与第一程序的物机器相同或可以不与第一程序的物机器相同;并且响应于此,第二程序执行行动并向第一程序的物机器提供响应,并且响应于接收到该响应,如果必要,第一程序的物机器的程序可以重新配置P(TM)。虽然重复,但是再次值得注意的是,在该示例中使用的第一程序和第二程序将是第一P(TM(i))和第二P(TM(i))。
[0124] 每个P(TM(i))是模型或该模型的部件的算法实施方式,该算法实施方式以可执行机器码表示以执行不同的步骤序列,其中每个P(TM(i))可以由P(TM(perform)执行。根据本发明,替代数字,物机器使用词来描述在给定P(TM(i))中发生的行动类型。在本文中进一步详细定义了P(TM(perform)。
[0125] 模型可以是世界的选定部分的表示,诸如现象模型、数据模型、理论模型或话语领域中问题语句的模型(例如经建模来解决业务问题的应用),其中,所述模型并不是专有的,因为科学模型可以同时是这些模型的表示,并且其中,该模型可以用本文公开的物模型来表达。(关于“模型”,请参见https://plato.stanford.edu/entries/models-science/)[0126] 具有表达为P(TM(i))的程序P的给定TM(i)不必主要是数字处理器行动,而是可以使用数字处理器来引起机械、电气、电磁波形式、生物、化学、压力波的产生或接收、电磁辐射的产生或接收。
[0127] 通过示例的方式,处理器行动使得向电接口施加电压,使得达行动能够使机器在向前或向后方向上推进。所述行动可以继续直到第二P(TM(i))处理器行动重置所述电压。因此,物机器继续执行机械行动,同时使得P(TM)能够响应于其他thing:statement。
[0128] 通过进一步示例的方式,P(TM(i))可以执行与基于重组酶的状态机(RSM)交互的行动,该基于重组酶的状态机使用输入驱动的重组酶来操纵DNA寄存器,该DNA寄存器由重组酶识别位点的重叠和正交对组成。因此,可以询问或排序在RSM中编码的状态信息。
[0129] P(TM)存储器包含初始化所需的最小P(TM(i))集合,如在本说明书标题为启动的部分中详细描述的。简而言之,根据本发明的第一示例性实施例,P(TM)包含以下P(TM(i)):P(TM(boot));P(TM(thing));P(TM(parse));P(TM(eval));P(TM(perform));以及P(TM(configure))。P(TM)的主要逻辑是执行P(TM(boot)),并且然后停止。应当注意的是,可以在P(TM)存储器中最初提供额外的或更少的P(TM(i))。
[0130] 物机器使用物的有限的可自我配置的启动词汇表来启动。P(TM(thing))行动组织物以及物之间的可变关系作为thing:graph。某些物表示可执行行动。对可执行行动的执行可以作用于物。P(TM(i))行动可以请求P(TM(thing))执行与支配物相关的行动,例如但不限于,设置、获取和复位物,和/或物之间的可变关系。物可以通过获取和设置物来改变。另外,物可以被复位和设置。在那方面,物图表可以被视为物机器的词汇表,并且,词汇表表示该词汇表的知识库(物机器知道如何执行的行动,以及行动可以作用的物)。
[0131] 应当注意的是,在本公开的范围中,术语“与......交互”是指P(TM(i))导致相关的机器码的执行。例如,如果A与B“交互”,则A导致与B相关的机器码的执行。
[0132] P(TM(input))行动和P(TM(output))行动与电磁波形装置交互以提供向P(TM)的通信以及来自P(TM)的通信。该行动与P(TM(thing))交互,使得输入的内容是请求物,而输出的内容是响应物。
[0133] P(TM(parse))行动解析内容物并与P(TM(thing))交互以创建代表语句的thing:graph。在充当解释器的机器的第一示例性实施例中,thing:graph将是可执行的thing:
graph。在物机器的第二示例性实施例中,P(TM(eval))行动与P(TM(thing))交互以评估在可访问词汇表的上下文中的thing:graph,以生成可执行的thing:graph。要注意的是,P(TM(input))和P(TM(parse))的算法步骤可以组合为由诸如P(TM(parse.input))的适当P(TM(i))给出的单个程序。
[0134] P(TM(perform))行动与P(TM(thing))交互以执行可以在上面执行行动的物的上下文中的物的可执行行动。
[0135] P(TM(format))行动与P(TM(thing))交互以格式化响应命名空间物作为P(TM(output))行为输出的输出内容响应物。要注意的是,P(TM(format))和P(TM(output))的算法步骤可以组合为由诸如P(TM(format.output))的适当P(TM(i))给出的单个程序。
[0136] P(TM(configure))行动与P(TM(thing))交互以将P(TM(i))配置为可执行物,也称为主动物或动词。这使得可执行行动的词汇表能够更新。机器现在可以执行的物可以在复杂性的范围方面被添加、移除或改变。要注意的是,P(TM(i))提供算法行动,并且i表示代表该行动的名称。该行动可以是神经网络分类器行动、电子交易行动、或可以经简化而实践的任何其他这样的算法行动。
[0137] 启动
[0138] 在使用物机器100之前,物机器100执行启动进程以允许进行驯化以及未来适应物机器以及接收的请求的来源的环境。
[0139] 每次使物机器通电时,P(TM(boot))行动与P(TM(thing))交互以自我配置thing:graph,thing:graph代表包括thing:verb的集合的词汇表,每个thing:verb代表P(TM(perform))行动可导致执行的行动以及行动可以作用的物,以引导启动(bootstrap)具有代表P(TM)的先验知识(诸如机器被关闭之前的最后的已知状态)的物的机器。如果我们将经验定义为物机器做某事并让物发生的行为(支配thing:graph的P(TM(thing)),则我们可以说,物机器因为执行物而获得经验(表示物机器可以执行的行动的物,或者表示为物的知识)。
[0140] 在使用所述词汇表的情况下,物机器配置提供基础的核心词汇表,物机器可以通过该基础执行应用。因此,P(TM(i))的执行可以与P(TM(thing))交互以改变thing:graph并且所述改变可以被认为是后验知识(物机器从经验学到的物)。
[0141] 行动可以遍历thing:graph,格式化内容,并且与辅助存储装置交互以保留thing:graph信息,该thing:graph信息然后可以被重新取回(retrieved)并且通过用来重建thing:graph的行动来使用。
[0142] 在一个实施例中,核心词汇表可以被配置为包括预定的物的集合,并且词汇表具有有限的预定大小和范围。在第二实施例中,词汇表中的物的集合由物机器动态支配,其中,物被设置(学习并添加到thing:graph)并且其他物被复位(遗忘并从thing:graph移除)。
[0143] 物机器将物组织为图表。一个称为上下文图表的图表包括表示命名空间的物。命名空间是命名的图表,该命名的图表用于表示物的概念性分组,诸如请求、响应、任务的集合、服务、动词词汇、或者甚至是应用字典。命名空间词汇表可以被视为本体论的形式。然而,使用离散词汇表的若干个命名空间可以在本体论的约束下共享该命名空间的词汇表的一部分。
[0144] 在自我配置图表时,P(TM(boot))请求P(TM(thing))来配置代表动词行动的物,其中,所述物具有对于可执行行动的参照的表示,P(TM(perform))可以导致该可执行行动的执行。示例性动词行动包括但不限于解析、评估、执行和配置。总而言之,所述物被称为词汇表,并且所述物的图表是启动词汇表。物机器的启动进程自我配置有限的物机器的词汇表,以表示机器的先验知识(该物机器的词汇表中的初始物)。有限的词汇表包括动词以及动词可以作用的物。根据本发明的第一示例性实施例,物机器的基本动词词汇表至少包括动词“输入”、“输出”、“解析”、“评估”、“执行”和“配置”。与每个动词相关联的物机器程序被称为P(TM(parse))、P(TM(eval))、P(TM(perform))和P(TM(configure))。如下文中详细描述,这使得物机器能够在自我配置的thing:verb的上下文中评估请求,以及执行将额外的动词添加到动词词汇表的配置行动。在使用该模型的情况下,物机器的动词词汇表变得可动态配置,并且可以根据需要增加或减小大小和范围。
[0145] 自我配置的进程不仅包括接收有限的词汇表,还包括对每个动词创建至少一个thing:graph。具体地,thing:graph中的动词是节点,非动词也为节点(动词和非动词两者都是物),并且thing:graph内的弧线表示物之间的可变关系。因此,thing:graph定义了以下的物之间的关系。
[0146] P(TM(thing))行动组织物以及物之间的可变关系作为thing:graph。有些物表示行动、发生或存在状态,而其他物则是行动可以作用的物。物机器使用有限的自我配置的启动物的词汇表启动。在使用启动词汇表的情况下,物机器配置先验知识,该先验知识包括核心词汇表,核心词汇表包括物。
[0147] P(TM(input))行动与电磁波形装置交互以提供向P(TM)的通信。本发明的实施例可以将P(TM(input))与P(TM(parse))组合。该行动与P(TM(thing))交互,使得输入的内容是可以由解析行动解析的请求物。
[0148] P(TM(output))行动是可选物。P(TM(output))的行动与电磁波形装置交互以提供来自P(TM)的通信。
[0149] P(TM(parse))行动解析内容物并与P(TM(thing))交互以创建代表语句的thing:graph。在充当解释器的简单机器中,thing:graph将是可执行的thing:graph。在自适应物机器中,P(TM(eval))与P(TM(thing))交互以评估在可访问词汇表的上下文中的thing:
graph,以生成可执行的thing:graph。要注意的是,P(TM(input))和P(TM(parse))可以组合为由诸如P(TM(parse.input))的适当P(TM(i))给出的单个行动。
[0150] P(TM(perform))行动与P(TM(thing))交互以执行可以在上面执行行动的物的上下文中的物行动。
[0151] P(TM(configure))行动与P(TM(thing))交互以将P(TM(i))配置为可执行物。这使得可执行行动的词汇表能够更新。机器现在可以执行的物可以在复杂性的范围方面被添加、移除或改变。要注意的是,P(TM(i))提供算法行动,并且i表示代表该行动的名称。该行动可以是神经网络分类器行动、电子交易行动、或可以经简化而实践的任何其他这样的算法行动。
[0152] 参考图3的启动进程和示意图,当物机器100启动时,P(TM(boot))请求P(TM(thing))为物机器创建启动词汇表(202)。P(TM(thing))接收请求并创建代表启动词汇表的物(为了示例性目的,称为“boot:”)(块204)。物的创建由P(TM(thing))执行,该P(TM(thing))初始化物的大小的存储器单元,其中,物(即,boot:)限定(qualifies)启动词汇表中的物。
[0153] 物图表数据模型
[0154] 图4是为了释明如由物机器100执行的根据启动进程创建图形的目的而提供的图表。本节定义了抽象语法,该抽象语法用于基于RDF链接所有基于物的语言、规范和参考实施方式。RDF是用于表示网络中的信息的架构(W3C,2014)。RDF图表是三元组的集合,每个三元组包括主体、谓词和客体,如图4所示。RDF提供了三种类型的节点。节点可以是IRI(参见RFC 3987)、文字或空白节点。IRI或文字表示世界中的某物,并且被称为资源。
[0155] RDF物图表是关于物的RDF图表。RDF物图表描述物的不可变组分。虽然组分是不可变的,但是组分的值是可变的。某些物是主动物,该主动物具有可执行行动,并且通常被称为动词。其他物是动词行动可以作用的物。物可以表示RDF资源、概念、事实、想法、实体、客体、示例、事件、发生、装置、传感器、服务、任务、服务,用户、网络资源等。
[0156] 物包括非可变的组分。物由具有非可变的组分的知识的P(TM(thing))支配。物的第一示例性非可变的组分是名称,该名称是用于区分话语领域中的一个物与另一个物的标识符,然而重复命名的物可能存在,诸如代表列表的物的成员的重复命名物。
[0157] 物的第二示例性非可变的组分是值。在一个实施例中,值是如在RDF 1.1规范中定义的RDF文字。本领域普通技术人员熟悉RDF 1.1规范,并且该规范通过引用整体并入本文。另外,本领域普通技术人员可以使用如由可选规范定义的可选值表示。应当注意的是,物的非可变的组分值的值可以为空。
[0158] 物的第三示例性非可变的组分是关系集合。当物具有空的关系集时,物代表空的图表。关系集是保持在第一物和第二物之间的关系的集合。主要关系是关联中的一个。关联可以是组合或聚合的形式。如果物A由物B组成,则关系是不可变的。如果物A是包含物B的聚合体,则关系是可变的。其中,通过示例的方式,物B可以独立于物A存在,如图5所示。如所提到的,物由具有非可变的组分的知识的P(TM(Thing))支配。
[0159] 第一示例性关系是thing:sttia关系,该thing:sttia关系使用存在量化来表示:存在这个主体物,使得存在客体物。该关系是可变的。这由图6示出。
[0160] 客体物可以代表一系列的物,诸如物的列表,或者物的集合。该关系可以使用实例修饰符来表达,使得:存在这个主体物,使得存在客体物的实例。取决于物的分类,物的实例可以具有不同的含义。在一种情况下,实例可以是成员。在另一种情况下,实例可以是某物的发生。
[0161] thing:is-a关系表示第一物是一定类型的第二物。这在本文中在称为作为元数据的属性的部分中进一步描述该thing:is-a关系。在一般意义上,thing:is-a关系使得物能够分类。
[0162] thing:depends-on关系表示主体物具有对于客体物的依赖性。可以将额外的关系(诸如来自UML的关系)添加到RDF物图表数据模型。这些将包括关联、聚合、有向关联、组合、反身关联、继承、多样性以及实现。
[0163] 标识符和列表
[0164] 列表是对物的参考(a reference to a Thing)的表示。列表可以是诸如标识符的未绑定的名称或者被表达为传达两个或多个物之间的关系。列表“这个”是简单的标识符,该标识符表示我们正在指称名称等于“这个”的物。列表“这个.那个”可以指示存在名称等于“这个”的物,使得存在名称等于“那个”的物。列表的确切解释取决于列表绑定的命名空间,并且在关于URI的部分中更详细地涵盖该解释(参见RFC 3986),如下所描述。
[0165] 作为元数据的属性
[0166] 属性描述了物的固有特征或品质。属性被表达为元数据。thing:metadata是标识属性的类型的物,并且物的值描述属性值。
[0167] 属性可以被标识为thing:metadata,并且随后在三元组中使用。作为示例,thing:class属性被用于表示物的分类。类别是满足成员资格标准的物的集合,该成员资格标准用于指定在给定的时刻使物成为类别的成员需要什么。意图是依赖时间的标准。在给定时刻的延期是在此时间的所有成员的列表。
[0168] 属性可以描述状态。例如,可以在不表示物的分类的情况下声明物,并且绑定行动可以作用于“未绑定的”物上以将该物绑定到绑定行动可以识别的某物,即使将该物绑定为“未知的”物。绑定行为将物从未绑定的状态转换为绑定的状态。绑定的物可以为已发现的或未发现的。已发现的绑定的物指示绑定行动能够将物绑定到该绑定行动理解的某物。未发现的绑定的物指示绑定行动应用于物,但是,该物不是绑定行动能够理解的某物。
[0169] 主动物(Active Things)
[0170] 具有对可执行行动的参考的代表的物被分类为主动物。在该上下文中,可执行行动是机器可导致执行以实现某个结果的行动,并且本质上可以主要是计算的、电的、化学的、光学的、生物的、机械的、电磁波形式的或其组合。
[0171] 本文中的主动物通常被称为thing:verb,因为动词是描述行动的名词,并且主动物描述行动。因此,主动物的名称是动词,该动词的标识符描述可以被执行的行动。
[0172] 在支持分类的实施方式中,使用thing:is-a关系将具有可执行行动的关系的物分类为thing:verb的图表,如图7所示。
[0173] 动词可以作用于物的集合上。可以被作用的物可以在RDF物图表中明确指定,也可以由分类隐式指定。量词可以用于将话语领域中的物的范围限制于动词行动可以作用的物。
[0174] 命名空间
[0175] 命名空间是物,该物表示以某种方式在逻辑相关的物(即使是仅通过成为相同命名空间的成员而相关)的命名图表。图表包括物以及物的关系。如图8所示,在支持分类的图表中,命名空间物被分类为thing:name,并且thing:name是thing:class。
[0176] 上下文
[0177] 上下文是物,该物量化具有当前范围的命名空间的集合。如图9所示,在支持分类的图表中,物被分类为thing:context。
[0178] 上下文使命名空间的集合具有当前范围,用于解参考代表物的IRI。例如,request:statement是可以相对于上下文解析的IRI。在英语中,这将被表达为:存在名称等于请求的命名空间,使得存在名称等于语句的物。
[0179] URI
[0180] URI识别资源,并且物是物机器中该资源的代表。物要么具有可执行行动,要么是可执行行动可以作用的物。URI的一般化形式被给定为:
[0181] 纲目(scheme):纲目特定部分。
[0182] 在物机器中,纲目被解释为对命名空间物的参照,该命名空间的名称遵循URI纲目的命名约定,如下所示。这具有可以使用RDF物图表表示现有的纲目名称的优点。
[0183] 命名空间名称由字符的序列组成,该字符的序列由字母开头,后跟字母、数字、加号(“+”)、句点(“.”)或连字符(“-”)的任意组合-RFC 3986。
[0184] 如由互联网号码分配局(Internet Assigned Numbers Authority)公布的所有永久URI纲目都是保留的命名空间名称。保留的命名空间中的物的建模应当符合该命名空间的已公布的RFC的含义。例如,为了建模news:namespace及nntp:namespace中的物,个人应当咨询RFC5538。已公布的URI纲目列表由IANA维护,可在以下处在线获取:http://www.iana.org/assignments/uri-schemes/urischemes.xhtml。
[0185] “URN”命名空间是保留的命名空间,并且“URN”命名空间的命名空间特定的部分被解释为由该URN命名空间的对应的已公布的RFC文件来定义。已公布的UNR由IANA维护,可在以下处在线获取:http://www.iana.org/assignments/urn-namespaces/URN-namespaces.xhtml。
[0186] 列表的命名空间的特定的部分根据命名空间(纲目)的规范来解释。
[0187] 通用URI语法的解析器可以将任何URI参考解析为其主要组分。一旦纲目被确定,就可以对组分执行进一步的纲目特定的解析。换言之,URI通用语法是所有URI纲目的语法的超集。-RFC 3986。
[0188] 然而,http:、https:以及file:namespace使用“/”字符分界符,使得参考:http://www.THINGlanguage.com/request被解释为:
[0189] 存在名称等于“http”的THING:NAMESPACE,使得存在名称等于“www.THINGlanguage.com”的物,使得存在名称等于“request”的物。
[0190] 邮寄到(mailto)命名空间根据RFC6068来解释参考。例如,参考:mailto:info@thinglanguage.com被解释为:
[0191] 存在名称等于“mailto”的THING:NAMESPACE,使得存在名称等于“info@thinglanguage.com”的物。
[0192] 还可以对OSX和IOS中支持的THINGS:scheme进行建模。THINGS:URI被给定为:THINGS:command?parameter1=value1¶meter2...。这将被解释为:
[0193] 存在名称等于“THINGS”的THING:NAMESPACE,使得存在名称等于“command”的物,使得存在名称等于“parameter1”并且值等于“value1”的物的实例,并且,存在名称等于“parameter2”的物的实例。
[0194] 命名空间物的名称遵循IRI纲目的命名要求(参见RFC 3987)。这用作将URI(IRI的一种形式,并且描述于RFC 3986中)绑定到物的方式。URI纲目名称被绑定到命名空间物。所有http:的URI例如被绑定在http:的命名空间物内。在图10中示出将http URI示例性绑定到物。
[0195] 满足宣称
[0196] 基本断言是代表满足宣称的thing:assertion,并且该基本断言断言了给定的宣称为真。在物图表模型中,断言是物,而不是有向边缘标签。参考图11,在thing:graph中,空白节点表示满足宣称,并且该声明可以具有对于thing:object的参考。
[0197] 如图12所示,thing:assertion断言thing:subject具有为数字的值并且因此不需要thing:object。
[0198] 如图13所示,thing:assertion宣称thing:subject的值小于thing:object的值。
[0199] 满足宣称的真实性由对应于宣称的计算程序确定。在这方面,满足宣称是具有描述行动可以作用的物的对应的thing:graph的主动物。
[0200] 示例性满足宣称包括但不限于下表1所示的满足宣称:
[0201]
[0202] 表1
[0203] 简单谓词的“is”部分后面可以跟着“not”来指示谓词的否定。例如,thing:is-not-equal-to。thing:match的否定将被指定为thing:does-not-match。
[0204] 连接符
[0205] 逻辑连接符被用于连接两个满足宣称。示例性连接符包括,但不限于,和、或、不、暗示、以及iff。类似于满足宣称,逻辑连接符被表达为物,而不是表达为有向边缘标签。逻辑连接符物是主动物。图14提供了具有连接符的图表的示例。
[0206] 简单连接符的示例包括但不限于如表2所示的以下内容。
[0207]
[0208]
[0209] 表2
[0210] 虽然事实是,在程序图表中满足宣称评估为真(满足)或假(不满足),但是在宣告性图表中的满足宣称可以扩展为包括宣称的范围内的物的集合。
[0211] 图表类型
[0212] 当物图表描述如何做某事时,该物图表在本质上是程序性的。例如,用于设置物的值的图表时程序性的语句,描述执行任务所必须的行动的语句的序列也是程序性的语句。
[0213] 当物图表是代表宣告的语句时,该物图表是宣告性的。HTML是宣告性语句的示例。HTML源代码描述了文件的所需的布局,并且HTML呈现引擎将处理该HTML源代码以执行实际的布局。
[0214] 当物图表描述客体及该客体的方法时,该物图表是面向客体的。作为示例,表示客体以及用于设置、获取和复位客体的方法的图表将是面向客体的。
[0215] 当事件(诸如消息或状态)驱动图表的评估时,物图表是事件驱动的图表。当物图表表达状态和状态之间转换以用于有限状态机器时,该物图表是有限状态图表。
[0216] 物图表可以是上述类型的图表中的一个或多个的组合,诸如哈雷尔状态图(Harel statechart)、XML状态图或UML状态图。
[0217] 由McGraw-Hill于1998年出版的由D.Harel和M.Politi所著的“使用状态图对反应系统建模:语句方法(Modeling Reactive Systems with Statecharts:The STATEMATE Approach)”。(参见http://www.wisdom.weizmann.ac.il/~dharel/reactive_systems.html。)
[0218] 以可执行机器码表达的物机器程序P(TM(thing))提供了在非暂时性存储器中支配物及物之间的关系的行动。具有对可执行行动的参考的代表的物为动词。以可执行机器码表达的物机器程序P(TM(perform))提供了与P(TM(thing))交互以获得对动词物的参考并且导致动词的可执行行动(P(TM(i))的执行的行动。行动的执行可以与P(TM(thing))行动交互以作用于非暂时存储器中的物上。以可执行机器码表达的物机器程序P(TM(configure))提供了与P(TM(thing))交互以设置动词物的行动。因此,我们可以根据物机器可以作为行动执行的物和行动可以作用的物来描述问题语句并且构建解决方案。
[0219] 图15是例示由物机器执行的最小运行时间步骤的流程图250。应当注意的是,流程图中的任何进程描述或块应当被理解为表示包括用于在进程中实现特定逻辑功能的一个或多个指令的模块、段、代码的部分或步骤,并且可选实施方式被包括在本发明的范围内,其中,取决于所涉及的功能,功能可以从所示或所讨论的顺序不依顺序(包括实质上同时地或以相反的顺序)执行,如本发明所属领域的技术人员所理解的。
[0220] 具体地,应当注意的是,至少以下步骤由物机器来执行。如由块252所示,P(TM(i))行动算法地(诸如通过解析输入,或与传感器交互,或通过请求物机器执行行动)生成代表物机器评估并执行行动的语句的thing:graph。
[0221] 这有用于使获取传感器(诸如温度传感器、加速度传感器、高度传感器、经度和/或纬度传感器、运动传感器、热传感器、烟雾传感器或其他这样的传感器)生成的数据的P(TM(i))逐步地构建待评估的thing:statement以及待执行的对应的可执行的thing:statement。类似地,被通知信号(诸如事件、计时器、中断或警报)的P(TM(i))可以与P(TM(request))交互以构建待评估的thing:statement以及待执行的对应的可执行的thing:
statement,以使得P(TM)能够响应于其接收。
[0222] 这样的P(TM(i))的第一示例性实施例是P(TM(parse))行动,解析XML文档,得到thing:graph,以便以下断言为真:
[0223] 存在名称等于core:print的物,使得存在名称等于“消息”并且值等于“你好,世界”的物。
[0224] 在图16中示出对应的thing:graph。
[0225] 如块254所示,P(TM(eval))行动与P(TM(thing))交互以访问所述thing:graph和当前动词词汇表并与所述thing:graph和当前动词词汇表交互以算法地选择适当的动词行动并构建和设置可执行的thing:graph。应当注意的是,当前动词词汇表可以是初始动词词汇表或者可以是动态变化的动词词汇表。
[0226] 如块256所示,P(TM(perform))行动与P(TM(thing))交互以获得可执行的thing:graph,并且导致thing:graph的执行。
[0227] 根据本发明的可选实施例,物机器可以不包含P(TM(eval))行动。在这样的实施例中,P(TM(parse))解释命令性语句。
[0228] 改变THING:GRAPH/核心词汇表
[0229] 如先前提到的,P(TM(i))可以与P(TM(thing))交互以设置thing:graph。物的架构使得输入及输出的具体细节能够通过使用动词行动而被抽象化并且开始存在。语言、文法、语法和通信行动本身的选择就只是物。
[0230] 可以在P(TM(i))输入串流中接收任意数量的语言和语法,并且只要P(TM(parser))行动可以算法地将文法语法的元素解析为thing:graph,就可以对该语言和语法进行解析。
[0231] 语言是物,更准确地被描述为包含词典和文法的沟通的系统。词典是词汇表,诸如语言中的词语或短语的集合。文法施加规则,诸如形态、语义和语法。
[0232] 行动是必须被执行来沟通的物。可以使用诸如阅读和观察的视觉沟通技巧。可以使用诸如书写或签名的实体行动。可以使用演讲或声音沟通技巧。可选地,可以使用点字书写系统。所有这些都是物,并且因为它们是物,所以他们的行动可以被建模并配置为物机器(即,P(TM))可以执行的行动。
[0233] 作为沟通行动的一种形式,打手势超越了社会。手指指向一个方向;跺脚;或者,你脸上的微笑的含义一般是被理解的。打手势与手语不同之处在于,手语使用既定的表达方式和具有明确定义的运动。打手势是物。
[0234] 类似于人,物机器可以具有用于给定语言的阅读词汇表、书写词汇表、听力词汇表和口语词汇表。这些词汇表中的每一种可以处于不同的平。物机器可以通过配置的物而在物机器听到词语时知道该词语意味着什么,但不能发该词语的音,或正确地拼写该词语。类似地,物机器可以阅读某物,并且看见该物机器不认识的词语。例如,词语“骨化”是英语中的动词,意思是像骨头一样硬化,但可能是语言中最不常用的动词之一,并且因此,可以不在物机器的动词词汇表中配置建模的实施例。
[0235] 当物机器识别出不熟悉的词语时,该物机器可能会尝试通过与该词语的音节交互来解释该词语的含义。如果物机器可以检测字根,则物机器可能可以推断含义。当物机器学习新的词语以及如何使用该新的词语时,物机器可以将该新的词语添加到该物机器的各种词汇表中。
[0236] 多语言物机器对于该多语言物机器所知道的每种语言可以具有不同的词汇能力。物机器可以在阿鲁巴学生的语言教育系统上建模,这些学生在学校学习帕皮阿门托语、荷兰语、西班牙语和英语。每个物机器都可以为每种语言以不同的速率发展该物机器的阅读词汇表、书写词汇表、听力词汇表和口语词汇表并且可能发展到不同的能力。
[0237] 物机器可以根据文法和语法将语句解析为语言符号(token)物;并将语言符号物绑定到该语言符号物对应的词汇表中的物。某些物可以被立即分类,而其他物需要查看周围的词语以推断含义。
[0238] 语句的含义可以仍然是含糊的。考虑语句:“Let’s eat honey”。该语句可能指的是吃蜂蜜,或者,该语句可能指的是你邀请你所爱的人开始吃饭。如在本文中所详细解释的,为了帮助管理语句的解释和含义,我们引入了物动词图表的想法,其中,起始节点是动词名称,并且连接的节点是动词行动可以作用的物。
[0239] 重要的是,注意到,除了P(TM(parse))之外,其他动词(P(TM(i)))行动随后可以被配置成使得当执行时,行动与P(TM(thing))交互以创建thing:graph,其中,所述thing:graph随后可以被评估以创建可执行的图表。可执行的thing:graph的执行可以导致行动与P(TM(thing))交互,以改变P(TM(thing))支配的物的thing:graph。这样的P(TM(i))的示例性实施例是P(TM(config)),P(TM(config))提供与P(TM(thing))交互的行动以配置主动物的集合(其中,集合是一个或多个)。
[0240] P(TM(i))的行动可以与环境交互以生成thing:graph,thing:graph表示了改变由P(TM(thing))支配的thing:graph的请求。响应于此,P(TM(config))与P(TM(thing))交互以改变由P(TM(thing))支配的thing:graph。因此,P(TM(config))的行动改变当前词汇表,该词汇表在本文中也被称为核心词汇表。
[0241] 参考图17,P(TM(config))作用于由请求命名空间物限定的物上,即G.id(示为空白节点),使得存在G.request并且存在G.urr。
[0242] G.id物的名称是P(TM(config))待配置的动词物的标识符。G.request是描述动词物的执行可以作用的物的图表。G.urr物的值是URI,该URI被解释为用于请求动词物的执行的统一资源请求。
[0243] 参考图18,my:configure版本的P(TM(config))作用于由URIrequest:statement识别的物,使得存在作为词汇表标识符(vocabulary.id)的物并且使得存在作为图表ID的物,使得存在G.request和G.urr。词汇表标识符可以由分类器用于在话语领域中算法地选择动词物的集合以供P(TM(eval))用于评估thing:statement。
[0244] 在实施例中,P(TM(config))可以与代表共享库(诸如动态链接库)的物交互,使得所述共享库被动态地加载到进程存储器中,并且,解析并执行对函数的参考以提供程序的集合和对应的图表,从而使得能够配置多个动词物。
[0245] 在实施例中,P(TM(config))可以与P(TM(eval))和P(TM(perform))算法地交互以评估和执行thing:statement,该thing:statement必须满足作为配置动词物的集合的先决条件。所述thing:statement可以代表检查可访问性、版本控制信息、修订信息、依赖关系、与现有动词的冲突、识别、授权、认证、安全性、硬件功能、操作系统功能或其他这样的活动的请求。
[0246] 在支持身份、认证和授权的实施例中,P(TM(config))行动可以与P(TM(i))交互以识别和认证thing:statement并且施加要被满足来配置动词事物所需的授权要求。通过示例的方式,thing:statement可能需要具有可以被认证的身份的数字签名,以确定身份是否被授权请求P(TM(config))执行其行动。可算法地启用各种安全模型,并且所述模型可能需要使用特定的硬件以及P(TM(i))配置的行动物,诸如于2016年1月29日提交的序列号为第62/288,545号的名称为“光学身份系统和方法”的审查中美国专利申请中公开的这种硬件及行动物,该美国专利申请通过引用整体并入本文(光学标识符专利申请)。实施例可以使用P(TM(openssl))来提供由OPENSSL工具套件所启用的身份行动、认证行动和授权行动(参见www.openssl.org网站)。
[0247] 各种类型的物的示例
[0248] 行动块是代表语句的序列的thing:graph。命名的行动块被称为任务。以这种方式,语言文法可以表达使物机器配置该物机器随后可以执行的命名的任务的请求。任务通过执行行动块来执行。行动块通过评估每个语句来生成可执行的thing:graph来执行。可执行的thing:graph通过执行对应于可执行的thing:graph中的thing:verb来执行。
[0249] 因为可以将多种语言文法分析器配置为可执行行动,所以可以将物机器配置为双语。可选地,翻译器行动可以用于从第一语言翻译成可由配置的解析器行动解析的第二语言。
[0250] 因此,当我们说物机器可以阅读书籍时,我们指的是物机器可以执行行动来与从输入装置获取的内容进行交互,以将内容表示为thing:graph。通过将thing:graph保留为整个物机器的子图表,物机器行动可以随后访问该内容并与该内容交互。
[0251] 物机器可以阅读描述如何执行任务的书籍,并如果该机器曾经被要求日后执行这样的任务,则保留该知识。任务可以依主题来分类。任务可以是分类的集合的成员,诸如与使用http协议相关的任务;与诸如以下的活动相关的任务:accounting:accounts.receivable、accounting:accounts.payable、banking:debits、banking:
credits以及banking:balance。
[0252] 第一物机器可以发送针对第二物机器进行的通信,请求关于主题或分类的知识。响应于接收代表所述知识的内容,第一物机器可以与内容交互以相应地配置该物机器本身的知识。以该方式,第一物机器可以从第二物机器中学习。
[0253] 物机器可以提供服务。服务是响应于接收请求而提供的物。服务与任务之间微妙的区别在于,任务是被执行的;而服务是被提供的。通过上下文促进任务与服务的分离,这可以防止任务(诸如移除文件或改变动词的含义的任务)的未经授权的执行。
[0254] 如所提到的,上下文物量化话语领域中可用命名空间物的集合。命名空间物限定了相关物(即使是仅通过成为相同命名空间的成员而相关)的集合。命名空间物的名称用于解析对物的参考。
[0255] 身份是物,并且如此,我们可以对标识符、认证、授权和审计的概念进行建模,以实现身份模型。身份模型的示例包括使用公钥基础结构、Open PGP的信任网、生物识别、第三方授权等。在使用身份的情况下,我们可以引入将市场作为物并启用交易。交易成为买方和卖方之间的物;付款人和收款人之间的物。交易可以涉及服务提供物、实体物、概念物或逻辑物。
[0256] 身份模型启用对图表或子图表的认证。例如,考虑代表请求的图表,该请求包括请求方标识符(即,请求发起者)、内容和内容的数字签名。可以验证标识符的相应证书,并验证内容的数字签名。这使得评估行动能够在算法上验证请求并响应于请求来选择适当的行动。在身份模型就位的情况下,我们还可以提供安全的通信模型。
[0257] 可以使用密码行动对保护请求内容进行建模,以加密并随后解密内容。请求图表可以包括描述密码行动的子图表,以及密码密钥。作为先决条件,评估动词的行动可以应用首先必须使用指定密钥执行指定的密码,以解密内容。通过在适当的子图表中组织请求的各种部件,两个或多个物机器可以使用身份模型和安全通信进行算法地通信。
[0258] 当与光学识别器SIM卡或类似装置集成时,可以将物机器建模为具有覆盖网络中的唯一身份的物(甚至是在特别的(ad-hoc)基础上)。物可以脱离网络,并在网络中的其他地方重新接合,但仍保留该物的光学身份。
[0259] 光学身份可以与用户身份分离。这使得物机器能够在覆盖网络上验证物机器本身,并使用网络可用内容来基于用户的身份重新配置物机器本身。
[0260] 物机器可以动态配置和重新配置该物机器的词汇表,甚至是在特别的基础上。将本体论约束共享到物机器的词典的至少一部分的物机器的集合可以使用该子集(或该子集的至少一部分)与物交互。鉴于词汇表被表示为物,并且物机器具有动词行动以配置以及重新配置词汇表,物机器可以学习,在本文中提供了物机器学习的示例。
[0261] 参考示例性RDF物(为了说明的目的而描述于本文中),以下的示例性定义适用。
[0262] 图表-一系列的点以及线,该线连接该点的一些(可能为空的)子集。图表的点通常称为图表顶点,但也可称为“节点”或简称为“点”。类似地,连接图表的顶点的线通常称为图表边缘,但也可称为“弧线”或“线”。
[0263] 图表节点被称为graph:node。图表边缘被称为graph:edge。边缘可以具有标签,被称为graph:edge-label(label)。
[0264] 有向图表-有向图表是图表,即,连接在一起的客体(称为顶点或节点)的集合,其中,所有边缘(有向图表边缘)从一个顶点指向另一个顶点。有向图表有时被称为有向图或有向网络。
[0265] 有向图表被称为graph:directed。
[0266] 有向图表边缘被称为graph:directed-edge。
[0267] 无向图表-无向图表是图表,即,连接在一起的客体(称为顶点或节点)的集合,其中,所有边缘(无向图表边缘)都是双向的。无向图表有时被称为无向网络。无向图表被称为graph:undirected。无向图表边缘被称为graph:undirected-edge。
[0268] 子图表-子图表是图表,该图表的顶点和边缘是另一图表的子集。
[0269] 有根图表-有根图表是有向图表,其中,一个节点被区分为起始(根)节点。
[0270] 根据本系统和方法,ABNF用于描述由P(TM(thing))支配的物的非可变组分的代表。另外,RDF用于进一步说明由P(TM(thing))支配的物的非可变组分和可变组分的含义。
[0271] ABNF
[0272] 在本文提供的示例性说明中,如下文所示,扩展的巴克斯-诺尔形式(backus-naur form,ABNF)规范用于描述由P(TM(thing))支配的物。具体地,以下描述了由P(TM(thing))支配的物及该物的非可变组分。scheme:scheme-name =ALPHA*(ALPHA/DIGIT/“+”/“-”/“.”)scheme:scheme-specific-part=这是纲目特定的。对关于纲目特定部分的细节,参见对应于纲目名称的RFC。如果不存在这样的RFC,则将纲目特定部分解析为如由物语言定义的物标识符。否则,根据纲目对纲目特定部分进行标记化。
[0273] 以下ABNF规则适用。
[0274] thing:identifier   =1*1(scheme:scheme-name/scheme:scheme-specific-part)[0275] thing:char-literal =char-val
[0276] thing:num-literal  =num-val
[0277] thing:bin-literal  =bin-val
[0278] thing:dec-literal  =dec-val
[0279] thing:hex-literal  =hex-val
[0280] thing:value       =1*(thing:char/thing:num/thing:bin/thing:dec/thing:hex)
[0281] 类别id识别物的类别。默认的类别id是URI并且由URI标识的物是分类。默认的是thing:thing。
[0282] thing:class.id=URI
[0283] thing:set(i)是为i的物的集合。通用集合是作为物的集合的thing:set.of(thing:thing)。集合不具有重复命名的物。
[0284] thing:set.of(i)=0,*(i)
[0285] thing:list(i)是为类别i的成员的物的列表。通用集合是作为物的列表的thing:list.of(thing:thing)。列表可以具有重复的(i)。
[0286] thing:list.of(i)=0,*(i)
[0287] 注意:在实施例中,参数可以被称为thing:value.of(i)、thing:name.of(i)、thing:thing(thing:name.of((thing:value.of(i)))等。
[0288] 物RDF
[0289] 资源描述框架(RDF)是用于表示网络中的信息的框架。RDF三元组由三个组分构成:a)主体,即,IRI或空白节点;b)谓词,即IRI;以及客体,客体是IRI、文字或空白节点。RDF三元组通常按主体、谓词、客体的顺序书写。RDF图表是RDF三元组的集合。
[0290] RDF三元组在以下部分中用于描述物,而在物图表中,谓词表示主体和客体之间的关系类型。thing:is-a关系类型表示主体是由客体标识的物的类别的成员。thing:has-a关系类型表示主体具有由客体给出的不可变的组分。要注意的是组分的值可以改变,但组分不能改变。详见关系类型。
[0291] 参考P(TM(i))是对物机器sub-i的算法过程的参考,其中,i是相对于物机器的第二程序限定物机器的第一程序的标识符。
[0292] 物是由P(TM(thing))支配的图表中的节点。
[0293] thing:thing thing:is-a graph:node
[0294] 物具有名称、值、类别和关系集合。在为万维网提供向后兼容性的优选的实施例中,命名空间物名称是scheme:name。P(TM(thing))可以设置、获取或复位物。
[0295]
[0296] 以下规则表示关系集合由零个或多个关系组成。具有零个关系的关系集合是空集合。具有为空集合的关系集合的thing:thing的有根thing:graph是thing:thing的空图表(thing:graph.empty)。
[0297] thing:relationship-set=thing:set.of(thing:relationship(s,r,o))
[0298] 在以下规则中,s、r和o是参数,这些参数表示:在thing:subject(s)和thing:object(o)之间存在关系-类型(r)。P(TM(thing))可以设置、获取或复位关系。
[0299] thing:relationship(s,r,o)=thing:subject(s)thing:relationship-type(r)thing:object(o)
[0300] 以下规则待被解释为:存在名称等于s的物。
[0301] thing:thing(s)=thing:thing,其中,is:equal.to=(thing:name.of(thing:thing),(s))
[0302] 以下规则待被解释为:存在名称等于s并且值等于v的物。
[0303] thing:thing(s,v)=thing:thing,其中,(is:equal.to=(thing:name.of(thing:thing),(s))并且is:equal.to=(thing:value.of(thing:thing),(v)))
[0304] 在实施例中,可以参考物的组分。例如,以下规则被解释为存在[name=a]并且[value=b]的物。
[0305] thing:thing(0,1[name=a]0,1[value=b])=thing:thing,其中,is:equal.to=(thing:value.of(thing:name),(s))并且is:equal.to=(thing:value.of(thing:value),(v))
[0306]
[0307] 以下规则(s,c,o)是表示由c给出的宣称被(s)以及可选的thing:object(o)满足的参数。如同物,规则被解释为存在主体物(s),使得存在满足宣称c,使得存在可选的客体(o)。
[0308] thing:assert(s,c,o)=*(thing:subject(s)thing:predicate(c)thing:object(o))
[0309] 以下规则等于由参数(i)给出的物的名称组分的值。
[0310] thing:name.of(i)=thing:value.of((i):name)
[0311] 以下规则等于由参数(i)给出的物的值组分的值。
[0312] thing:value.of(i)=thing:value.of((i):value)
[0313] 以下是示例性关系类型(thing:relationship-type)。
[0314] thing:is-a        主体物是由客体表示的分类的成员。
[0315] thing:has-a       主体物具有由客体标识的不可变的组分。
[0316] thing:sttia       存在主体物,使得存在客体物。
[0317] thing:sttiai      存在主体物,使得存在客体物的实例。
[0318] thing:sttmb       存在主体物,使得可能存在客体物。
[0319] thing:sttina      存在主体物,使得不存在客体物。
[0320] thing:parent      客体物是主体物的母体。
[0321] thing:child       客体物是主体物的子体。
[0322] thing:next        客体物是主体物的下一个同辈体。
[0323] thing:prior       客体物是主体物之前的同辈体。
[0324] thing:is以及thing:is.not断言是thing:predicate满足宣称。满足宣称可以是由以下给定的表达式的形式:
[0325] thing:expression=thing:subject thing:satisfaction-claim 0,1(thing:object)
[0326] 满足宣称由作用于宣称上的thing:verb断言。这使得能够针对特定实施例自我配置可访问的满足宣称的集合。满足宣称的子集包括:
[0327] thing:is.lt              主体物的值小于客体物的值。
[0328] thing:is.lteq            主体物的值小于或等于客体物的值。
[0329] thing:is.eq              主体物的值等于客体物的值。
[0330] thing:is.gteq            主体物的值等于或大于客体物的值。
[0331] thing:is.gt              主体物的值大于客体物的值。
[0332] thing:is.not.empty       主体物的值不为空。
[0333] thing:graph(s)是thing:subject(s)的图表。thing:graph(monad)是相关的物的超图。
[0334]
[0335] thing:class(class.id)是由thing:name class.id给定的thing:thing。这与存在于该类别的上下文中的纪律(discipline)具有关系。
[0336]
[0337]
[0338] 示例性thing:class包括:
[0339] a)thing:class(thing:char)
[0340] b)thing:class(thing:num)
[0341] c)thing:class(thing:bin)
[0342] d)thing:class(thing:dec)
[0343] e)thing:class(thing:hex)
[0344] 示例性纪律包括:
[0345] a)thing:discipline(c,thing:set)
[0346] b)thing:discipline(c,thing:get)
[0347] c)thing:discipline(c,thing:unset)
[0348] 实施例可以添加修饰语的集合来修饰P(TM(discipline(c,d))。示例性修饰语包括:
[0349] a)thing:before(thing:discipline(c,d),thing:urr(u))
[0350] b)thing:as(thing:discipline(c,d),thing:urr(u))
[0351] c)thing:after(thing:discipline(c,d),thing:urr(u))
[0352] 在thing:discipline(c,v)之前评估thing:before urr,并且如果满足,则评估thing:discipline(c,v)。
[0353] 评估thing:as urr仿佛thing:as urr为G(urr(d))。
[0354] 在成功评估G.urr(d)或thing:as urr(如果指定)之后评估thing:after urr。
[0355] 通过将类别thing:class(class.id)图表配置为具有与纪律的适当关系来配置新的分类。
[0356] thing:verb是由P(TM(thing))支配的thing:thing,使得存在对可执行行动的参考的代表,该代表可以解析为可执行行动,P(TM(perform))可以导致该可执行行动的执行。据说P(TM(perform))通过执行可执行行动的执行来执行thing:verb。
[0357]
[0358] thing:urr(i)是用于请求执行P(TM(i))的统一资源请求。P(TM(i))行动将thing:urr(i)的值绑定到P(TM(perform))可以执行的可执行行动。在示例性实施例中,这可以包括绑定到非暂时性存储器中的指令的地址,并且实施例的进一步特征可以在于通过使用一个或多个操作系统调用,诸如复刻、exec、创建线程(pthread_create)、连接、打开、发送、书写、接收、读取、关闭、等待、和/或断开连接。
[0359] 在评估执行P(TM(i))的请求时,P(TM(eval))与P(TM(thing))交互以确定P(TM(i))算法地准备P(TM(i))必须可访问的P(TM)的图表。在一个实施例中,所述图表在针对P(TM(i))行动的持续时间具体生成的请求命名空间的上下文中生成,并且响应(如果有的话)在响应命名空间的上下文中设置。这使得P(TM(eval))能够将新的上下文推送到用于P(TM(i))的上下文堆栈上,并且与响应命名空间进行算法地交互以相应地更新由P(TM(thing))支配的事物。
[0360] thing:verb.vocabulary是thing:thing,使得存在与thing:verb的集合的关系。
[0361]
[0362] thing:urr(i)的相应的可执行行动由P(TM(i))执行以配置用于动词词汇表的动词物。
[0363] 示例性thing:relationship
[0364] 下文进一步说明物关系的实施例。如图19的有向图表所示,名称为x的物是名称为y的物的前导(predecessor),y是名称为x的物的后继(successor),并且谓词是使得存在一关系的物,这表示为thing:sttia。英语的解释是:存在名称等于x的物,使得存在名称等于y的物。“使得存在着”关系由thing:sttia边缘标签表示。
[0365] 如图20的有向图表所示,名称为x的物是名称为z的物的前导,y是名称为x的物的后继,并且谓词是“使得存在一实例”,这表示为thing:sttiai。英语的解释是:存在名称等于x的物,使得存在名称等于z的物的实例。
[0366] 如图21的有向图表所示,将英语的解释给定为:存在名称等于x的物,使得存在名称等于y的物,使得存在名称等于z的物,使得存在名称等于x的物的参考。使得存在对关系的参考由thing:sttiart边缘标签表示。参考可以是可以解释为列表的URI的形式。
[0367] 如图22的有向图表所示,名称为x的物是thing:table。使用下一个和最后一个边缘对以及母子边缘对,可以在任一方向上遍历图表。
[0368] 如图23的有向图表所示,多个物具有与单个物的关系。
[0369] 如图24的有向图表所示,名称为“x”的物是名称为“c”的物的类别的成员。
[0370] 谓词可以表示关于物的非可变的组分的关系。如图25所示的有向图表,表示名称为“x”的物的名称是名称为“b”的物的类别的成员。
[0371] 如图26所示的有向图表,表示名称为“x”的物的值是名称为“c”的物的类别的成员。
[0372] 以下是在支配图表中的物时由P(TM(thing))支配的示例性的物。
[0373] thing:monad-一元(monad)是第一物,由P(TM(thing))支配的所有其他物可以从该第一物识别。有向图表的节点是物,有向边缘标签是在连接的物之间保持的前提。一元有向图表表示物机器的状态。一元与以表示为“thing:sttia”的有向边缘标签“使得存在着”指向上下文物的边缘连接。
[0374] thing:context-上下文物代表组织为堆栈的物的集合,其中堆栈的顶部是代表当前上下文的物。新的上下文物可以算法地推送到堆栈上,或者从堆栈中算法地弹出,以改变当前上下文。上下文物的实例是物的集合的有向图表的根,该物是该上下文的范围内的命名空间。
[0375] thing:namespace-命名空间是物,该物表示某种逻辑相关的物(即使仅通过成为相同命名空间的成员而相关)的命名图表。图表的名称符合国际资源标识符(IRI)纲目的命名要求。命名空间的有根有向图表从作为根的命名空间物开始,并且连接的节点是由命名空间物限定的物。有向边缘标签表示在连接的物之间保持的关系。
[0376] 上下文物量化可用的命名空间物的集合。示例性命名空间包括请求命名空间、响应命名空间、本地命名空间、服务命名空间、核心命名空间和启动命名空间。可以通过P(TM(thing))的行动配置额外的命名空间。以下图表对于上下文的每个命名空间为真,其中,图表的未命名的节点被绑定到由上下文限定的命名空间。如图27的有向图表所示,上下文包括请求命名空间、响应命名空间和本地命名空间。实施例可以自我配置命名空间的集合。
[0377] 示例性命名空间由以下表3提供。
[0378]
[0379] 表3
[0380] 将IRI映射到命名空间物
[0381] IRI纲目名称被映射到命名空间物,并且然后根据特定命名空间的规则映射IRI的纲目特定部分。默认行为是使用点(“.”)字符分界符来表示“使得存在着”关系,并且使用括号分界符(“[”和“]”)来表示“这样存在着关系的实例”。例如,参考:request:statement[1].word被解释为:
[0382] 存在名称等于“request”的命名空间物,使得存在名称等于“statement”的物,使得存在名称等于“1”的物,并且,存在名称等于“word”的物。
[0383] 如物图表数据模型部分中提到的,如由互联网号码分配局公布的所有永久URI纲目都是保留的命名空间名称。保留的命名空间的完整列表在线上公布于http://www.iotnamespaces.corn/reserved。将IRI映射到保留的命名空间的步骤也可访问于www.iotnamespace.com/mappings。
[0384] 使用XML来识别物
[0385] 基本的XML被解析和绑定在命名空间中。这对于诸如为由http://wl.weather.gov/xml/current_obs/index.xml所识别的气象服务的服务而言是重要的,该服务使用基本的XML格式。为了说明映射,考虑如下给定的片段:
[0386]
[0387] 在解析简单的XML时,如由表4说明的,以下的三元组为真。
[0388]主体 谓词 文字值
station THING:equals “”
station.station_id THING:equals PADQ
Station.state THING:equals AK
station.station_name THING:equals Kodiak,Kodiak Airport
station.latitude THING:equals 57.75
station.longitude THING:equals -152.5
station.xml_url THING:equals http://weather.gov/xml/current_obs/PADQ.xml
[0389] 表4
[0390] 在基本的XML映射中,元素被映射到物,并且属性被映射为物的属性的实例。
[0391] XML纲要定义
[0392] 从我们使用气象站XML数据的先前示例,local:station.xml_url物具有识别表示该站的本地数据的资源的值。在取回该资源时,发现该资源为XML版本1.0的文件,该文件部分的包含:
[0393]
[0394] 在解析XML时,默认行动将元素解释为物,并且将属性解释为关于该物的属性的实例。如表5所示的,以下三元组为真。
[0395]主体 谓词 客体
current_observation[version] THING:equals 1.0
current_observation[xmlns:xsd] THING:equals http://www.w3.org/2001/XMLSchemacurrent_observation[xmlns:xsi] THING:equals http://www.w3.org/2001/XMLSchema-instancecurrent_observation[xsi:noNS] THING:equals http://www.weather.gov/view/current_observation.xsd[0396] 表5
[0397] 作为正式的断言,三元组可以被表达为:
[0398] 存在名称等于“current_observation"的物,使得,
[0399] 存在物的实例,其中
[0400] 名称等于“xmlns:xsd”并且
[0401] 值等于“http://www.w3.org/2001/XMLSchema”,
[0402] 并且,
[0403] 存在物的实例,其中
[0404] 名称等于“xmlns:xsi”并且
[0405] 值等于“http://www.w3.org/2001/XMLSchema-instance”,
[0406] 并且,
[0407] 存在物的实例,其中
[0408] 名称等于“xsi:noNamespaceSchemaLocation”并且
[0409] 值等于“http://www.weather.gov/view/current_observation.xsd”。
[0410] XSD参考使得能够取回XSD纲要,使得客体元素、子元素和属性的有效结构可以接着被表示为命名空间中的物。
[0411] XML命名空间
[0412] 在XML中,限定的名称是经受命名空间解释的名称。元素和属性两者都是限定的名称。当解析符合XML命名空间规范的XML文件时,文件被解析为请求命名空间、经验证并使用限定名称作为物名称来保留文件的结构。
[0413] 例如,考虑以下给定的XML文件。书籍元素包括两个命名空间属性;第一个属性定义默认的XML命名空间,并且第二个属性定义isbn XML命名空间。XML 1.1规范不要求IRI是经过验证的IRI,而是需要将IRI指定为语法上正确的IRI。这样,解析行动并不将XML IRI映射到物命名空间。
[0414]
[0415] 在使用速记记法的情况下,如由表6说明的,以下为真。
[0416]request:book[xmlns] THING:equals um:loc.gov:books
request:book[xmlns:isbn] THING:equals um:ISBN:0-395-36341-6
request:book.title THING:equals 儿女一箩筐
request:book.isbn:number THING:equals 1568491379
request:book.notes[xmlns] THING:equals http://www.w3.org/1999/xhtml
[0417] 表6
[0418] 正式的满足宣称为:
[0419] 存在名称等于“request"的命名空间物,使得,
[0420] 存在名称等于“book”的物,使得
[0421] 存在实例,其中
[0422] 名称等于“xmlns”并且
[0423] 值等于“urn:loc.gov:books”,并且
[0424] 存在实例,其中
[0425] 名称等于“xmlns:isbn”并且
[0426] 值等于“urn:ISBN:0-395-36341-6”。
[0427] 物语言
[0428] 在物图表模型里,所有事物都是物。某些物是命名空间,某些物是动词,而其他物是动词行动可以作用的物。动词和动词可以作用的物的集合之间的关系被表达为物动词图表。
[0429] 分类使得能够推断出预期的行动的含义。在以下示例性语句中,预期的行动是使用物以及时间单位来“设置”某物;然而,每个语句预期的行动是非常不同的。
[0430] 将计时器设置为6:00分钟。
[0431] 将时钟设置为上午6:00。
[0432] 将闹钟设置为下午6:00。
[0433] 执行解析操作以将语句解析为thing:graph的物图表。评估动词在动词词汇表的上下文中评估thing:graph,以选择候选动词。评估动词行动将请求图表中的物绑定到候选动词图表中的物,以识别需要被执行的动词图表的实例。触发执行行动以使识别的动词行动在绑定的物的上下文中执行。
[0434] 物语句
[0435] 物语言提供了命令性的语句结构和宣告性的语句结构两者。在一般意义中,最小启动词汇表适用于命令性的语句,而更具表达性的核心词汇表则允许使用宣告性的语句。下面提供了对物语句的ABNF定义。在RFC2234中定义ABNF语法。
[0436] thing:statement         =statement-1/statement-2
[0437] statement-1             =ne-pair
[0438] statement-2             =listing expression[“;”]
[0439] nv-pair                 =Listing=DQUOTE value DQUOTE[“;”]
[0440] ne-pair                 =listing OP expression CP
[0441] expression              =*(ne-pair/nv-pair)
[0442] listing                 =namespace“:”namespace-specific-part
[0443] OP                      =“(”
[0444] CP                    =“}”
[0445] DQUOTE                =‘”’
[0446] 作为示例,以下命令性语句指示物将列表请求my.name识别的物设置为值John。
[0447] set=(request:uri=“request:my.name”request:value=“John”)
[0448] P(TM(bind))行动可用于将列表绑定到行动可以作用的物,使得上述语句可以被指定为:
[0449] set=(request:my.name=“John”)
[0450] 通常,相同的语法适用于物语言中的任何语句。要注意的是动词行动可以作用的物被包含在“(”以及“)”分界符中。
[0451]
[0452] 物语言的简单语法很容易转换为其他语言。例如,如下所示,上述语句可以用JSON表达。
[0453]
[0454]
[0455] 类似地,可以使用物/XML来表达示例性语句。
[0456]
[0457]
[0458] 只要解析器行动可以将数据解析为thing:graph,就可以使用任意数量的语言和语法。
[0459] 如以下所示,支持多部分的数据。在这个示例中,我们基于设置的动词来呈现简单的语句。要注意的是,并未指定request:listing。评估动词行动将与request:graph以及动词词汇表中相应的动词图表交互,以将request:graph中的物绑定到可以与动词交互的物。在这个示例中,request:listing的值默认为rcd:Contact,而request:class的值默认为thing:thing。
[0460]
[0461] 以上语句相当于:
[0462]
[0463]
[0464] 宣称性语句遵循与命令性语句相同的一般语法。为了说明差异,我们将从简单的示例开始,该示例使用三个命令性语句来初始化列表painting:Gallery作为自动实例化的物。分类为thing:auto-instance的物将使得在每次将物用于设置的动词行动中时自动添加新的实例。
[0465]
[0466]
[0467] 然后使用以下宣告性语句来表达我们想要什么,而不详细说明所需的每个步骤。
[0468]
[0469]
[0470] 将以上的输出给定为:
[0471] Van Gogh      Almond Blossom
[0472] Ylli Haruni   Cherry Blossom
[0473] 命名空间范围
[0474] 命名空间是物,该物表示以某种方式在逻辑相关的物(即使是仅通过成为相同命名空间的成员而相关)的命名图表。命名空间物由上下文物限定,并且图表的名称(命名空间的名称)符合IRI方案的命名要求。如由互联网号码分配局公布的所有永久URI纲目都是保留的命名空间名称。
[0475] 分类
[0476] 物可以被归类为物的类别的成员。所有的物都是物。某些物是整数,某些物是浮点数,并且某些物是集合等。命名空间系统与核心类别的集合自我组合,额外的类别可以存在于该核心类别的集合上。第2章提供了关于类别的详细信息。
[0477] 以下示例被解释为:执行设置行动,使得存在名称等于local的物,并且,这个物是命名空间,使得存在名称等于scores的物。在该上下文中,分数(scores)是物。
[0478] set=(listing=“local:scores”)
[0479] 以下示例描述了将分数设置为浮点数的请求。
[0480] set=(class=float listing=“local:scores”value=“83.25”)
[0481] 通信原语
[0482] 通信原语是提供用于通信的接口的物。原语启用通用的行动,诸如连接、发送、接收以及断开连接。用于各种类型的通信的通信原语被提供为包括网络物、套接字、文件、RS232、URI纲目和统一资源请求列表。
[0483] 通信点
[0484] 通信点是与通信原语交互以使通信发生的物。
[0485] 常规的本地档案
[0486] connect=(listing=file://~/mydocuments/scores.txt as=compoint:1)[0487] send.line=(compoint=“compoint:1”value=“93”)
[0488] send.line=(compoint=“compoint:1”value=“87”)
[0489] send.line=(compoint=“compoint:1”value=“92”)
[0490] close=(compoint=“compoint:1”)
[0491] 在使用未解密的标准电子邮件的情况下
[0492] connect=(listing=“email:johnkingburns@gmail.com”as=compoint:2)[0493] send=(compoint=“compoint:2”value=“Subject:Meeting”)
[0494] send=(compoint=“compoint:2”value=“John,let’s meet on Tuesday at 10:00am to discuss the plan.”)
[0495] close=(compoint=“compoint:2”)
[0496] 在使用加密的主动命名空间的情况下
[0497] connect=(listing=“activeNamespacejohn.king.burns”as=“compoint:jkb”)
[0498] send=(compoint=“compoint:jkb”value=“Subject:Meeting”)
[0499] send=(=“compoint:jkb”value=“John,let’s meet on Tuesday at 10:00am to discuss the plan.”)
[0500] close=(=“compoint:jkb”)
[0501] 语句
[0502] 在物语言中,语句包括动词以及零或多个客体name=expression对。每个表达式是值表达式或name=expression对。绑定符可以绑定点号分界的动词修饰语。
[0503]
[0504] 名称表达式由包含名称表达式的名称量化。因此,a=(b=1)被解释为:存在名称等于a的物,使得存在名称等于b并且值等于1的物。多部分的语句(诸如a=(b=1c=2))被解释为:存在名称等于a的物,使得存在名称等于b并且值等于1的物,并且存在名称等于c并且值等于2的物。
[0505] 值表达式是文字的,并且该值表达式可以由引号括起来。包含空格字符的文字值必须用引号括起来。因此,a=房子、a=“房子”、a=‘房子’是相当的。类似地,a=“红房子”和a=‘红房子’是相当的。
[0506] 数学表达式用双括号括起来,并且不需要用引号括起来。作为示例,a=((10+-2*(6/3)))。正常的运算顺序适用,并且表达式可以用括号括起来。不支持函数,但是支持数学动词。因此,只要sqrt是数学动词词汇表中的动词,就如将预期地评估a=((2*sqrt(4)))。
[0507] 为了明确表示语句,格式为:
[0508]
[0509] 行动块
[0510] 行动块是要作为单元来评估的语句的序列。这使得命名空间系统能够执行块并允许逻辑处理真和假的类型的语句。行动块的一般语法是:
[0511]
[0512]
[0513] 在以下示例中,简单的行动块序列如下提供:
[0514]
[0515] 条件式
[0516] 命名空间系统提供对行动的条件性评估。支持IF、ELSE-IF和ELSE条件式。
[0517]
[0518] 迭代
[0519] 迭代是由for以及while.condition动词行动启用的。
[0520]
[0521]
[0522] 设置
[0523] 设置动词行动将设置物,该物是根据被标识为request:class的值的分类的规则由request:listing值所给定。当未明确指定分类时,评估动词行动将基于语句中的物来确定适当的分类。
[0524] 在以下语句中,分类默认为request:class=“thing:thing”,并且相应的动词图表在图28中示出。
[0525]
[0526] 在以下语句中,分类默认为request:class="thing:alarm",并且相应的动词图表在图29中示出。
[0527]
[0528] 用于设置的动词语句在这里示出。随着添加新的分类,可能需要额外的动词行动来支持分类的含义,并且可以使用动词修饰符将这些动词行动添加到词汇表中。
[0529]
[0530]
[0531] thing:graph-thing:graph是物及其相关的物的有向图表,并且可以从有根的有向图表表达为所有可能的物及其关系的子图表。未命名的顶点标签被解释为thing:identifier。否则,一个或多个命名的非可变的组分和代表可用作顶点标签。在优选的实施例中,Name:名称以及Value:值分别用于表示thing:identifier和thing:value,当需要这样的区别时。
[0532] thing:graph中的未命名的顶点是话语领域中的物的集合,该物的集合由未命名的顶点的有向图表的未命名的顶点的前导(如果有的话)限定
[0533] thing:subgraph-P(TM(i))可以作用于一元有根有向图表的thing:graph。
[0534] thing:statement-代表待评估的语句的thing:graph。
[0535] thing:statement.declarative-宣告性的thing:statement。
[0536] thing:statement.imperative-命令性的thing:statement。
[0537] thing:statement.interrogative-询问性的thing:statement。
[0538] thing:statement.exclamatory-感叹性的thing:statement。
[0539] thing:listing-列表是对物的参考的代表。限定的列表包括对命名空间的参考的代表,并且具有通用格式“命名空间:命名空间特定部分”,该格式与由“纲目:纲目特定部分”组成的URI相当。未限定的列表(也称为未绑定的列表)可以通过P(TM(bind))算法地限定。thing:listing被P(TM(thing))的算法行动解析。
[0540] 可以通过使用给定命名空间的获取纪律、设置纪律和复位纪律来解析命名空间特定部分。这使得即使在命名空间特定部分的解释依赖于正在建模的命名空间时,可预测的算法行动也能够解析参考。
[0541] 自由变量
[0542] 对物的参考的代表被认为是自由变量。P(TM(bind))算法地绑定由上下文定义的物的集合内的参考。在遍历thing:graph时,物的上下文算法地更新,以反映可适用于话语领域内的当前的物的范围中的那些物。考虑以下断言:
[0543] 存在物,使得存在名称等于Contact的物,并且存在名称等于Email的物。
[0544] 开放参照“存在物,使得”指示,由P(TM(thing))支配的话语领域中的所有可能的物都被考虑在当前的物的集合中。然后,P(TM(bind))取消限定当前的集合中所有这样的物,该物并不保持限制“使得存在名称等于Contact的物,并且存在名称等于Email的物”。
[0545] 参考图30,G.request(P(TM(i)))指示P(TM(i))可以作用于请求命名空间中限定的物上的图表。未命名的节点表示P(TM(i))可以作用于请求命名空间中限定的某些物,而不通过名称识别物。
[0546] 参考图31,G.request(P(TM(i)))指示P(TM(i))可以作用于名称为由名称为statement的物限定的Contact的物上,该名称为statement的物被限定在请求命名空间中。
[0547] 参考图32,示例性G(P(TM(i)))是包括G.request(P(TM(i)))子图表的有根有向的thing:graph,并且G.request(P(TM(i)))子图表表示P(TM(perform))如何请求P(TM(i))执行其行动。要注意的是request:statement.Thing的组分满足由http://www.schema.org/Thing定义的物纲要的组分。
[0548] 统一资源请求
[0549] 统一资源请求(URR)物是可以由P(TM(thing))解释为待执行的可执行行动的URI。通过示例的方式:
[0550] stdlib:load///usr/local/lib/libboot.so?entry=‘init’
[0551] http:get//www.iotsystems.com/index.hml
[0552] http://www.iotsystem.com/index.html
[0553] task:list.my.contacts?request:pattern=‘[A-M].*’
[0554] URR和传统URI之间的区别在于,在thing:namespace中的物的上下文中而不是在使服务器提供已识别的资源的请求的上下文中评估URR。
[0555] stdlib:load物是主动物,该主动物的可执行行动动态地加载相应的库,将对输入(entry)物的值的参考解析为可执行行动,并执行该行动。该行动通常使用dlopen()和dlsym()调用或Windows、Linux、BSD、iOS或其他这样的操作系统上的等效调用来实现。参见http://pubs.opengroup.org/onlinepubs/009695399/functions/dlopen.html。
[0556] 来自行动的执行的响应是请求物机器配置与加载的行动相关联的thing:verb的thing:statement的集合。P(TM(bind))可用于使用dlsym()或等效的操作系统调用将输入点参考绑定到可执行行动。
[0557] stdlib:unload物是主动物,该主动物的可执行行动卸载相应的库。该行动通常使用dlclose来实现。参见http://pubs.opengroup.org/onlinepubs/009695399/functions/dlclose.html。
[0558] 在使用URR对URI时,必须注意客户端和服务器资源解析之间的区别,其中,前者由物机器解析为资源,而后者通常由服务器解析为资源。
[0559] P(TM(i))可以生成URR并请求P(TM)评估并执行适当的行动。作为示例,P(TM(parse))可以与待解析的内容交互,并且发现该行动是解析器行动不理解的格式或语言。在这样的情况下,P(TM(parse))可以请求可能能够解析内容的第二P(TM(i))行动的评估和执行。
[0560] 具有通信能力的第一物机器可以将请求传送到第二物机器以识别物(或其内容)。第二物机器可以教第一物机器某物代表什么;可以作用于该物的行动;和/或可以使用该物执行的任务。
[0561] 核心POSIX词汇表
[0562] 核心POSIX.1-2008定义了标准操作系统接口和环境(包括命令解释器(或“壳”))以及在源代码层级处支持应用可移植性的通用实用程序。旨在由应用开发人员和系统实施人员两者使用。参见:http://pubs.opengroup.org/onlinepubs/9699919799/。
[0563] 核心词汇表遵循POSIX.1-2008系统API,但目前并未提供所有应用编程接口。参数是物,并且其中在字符串和实数之间的适当转换由相应的动词行动提供。物的实施例包括用于系统特定数据的非可变的组分,使得在必要时可以提供指向数据结构的指针。通过示例的方式,定义unlink()函数的POSIX标准被定义为“int unlink(const char*path)”,该标准被实施为作用于由列表request:path识别的物上的名称为“unlink”的动词行动。在实施例中,函数被实施为动词物(即,thing:verb)并且配置在动词命名空间(然而可反而使用诸如为posix的合适命名空间)以及适当设置以用于解析参考的上下文中。
[0564] 可以配置特定于应用域的算法程序。常用的动词行动(举例而言,诸如http:get)可以被配置为使用HTTP协议的GET方法来取回由URL指定的资源。
[0565] 可执行程序可以使用进程间通信或标准文件描述符配置为动词行动。例如,/bin/date(1)命令在Unix和Linux社区中是众所周知的并且可以被配置,然而输出可能需要被解析为合适的格式以用于实施方式进行解析。例如,列表bin:date可以具有可执行行动,即,该可执行行动在单独的地址空间中exec(2)/bin/date可执行程序,并将输出作为响应的值返回。URRbin:date//response:as=“data:date”被解释为对待执行的bin:date动词行动且将(从命令的标准输出读取的)响应配置为由列表data:data给定的物的值的请求。
[0566] 在使用明确定义的动词行动的集合的情况下,可以将任务序列转换为源代码,该源代码可以被编译并执行为可执行程序,以复位评估语句和绑定物的步骤。
[0567] thing:machine
[0568] 描述物机器实施例的物是thing:machine。参考图66,解析以物语言表达的内容的P(TM),该内容描述P(TM)期望的配置。P(TM)与P(TM(thing))交互以构建代表P(TM)的thing:graph,并且所述thing:graph是thing:machine物。
[0569] 公钥基础结构领域的技术人员可以诸如通过使用X509证书、数字签名以及使用OpenSSL身份、身份验证和授权算法操作来实现认证行动以确保内容的真实性,
[0570] 参考图66,描述thing:machine的thing:graph包括指示词汇表的物的集合,该词汇表包括:
[0571] a)启动词汇表;
[0572] b)核心词汇表;以及,
[0573] c)应用运行时间词汇表;
[0574] 并且来自该集合的可选物包括:
[0575] d)硬件物;以及
[0576] e)操作系统物。
[0577] 要注意的是,硬件物可以包括描述处理器的处理器物以及一个或多个组分物。硬件物可以包括词汇表物。
[0578] 描述词汇表的物的集合可以包括:
[0579] a)统一资源请求,用于请求待加载的动词词汇表可执行行动;
[0580] b)描述thing:verb的thing:graph的内容;
[0581] c)用于词汇表的列表;
[0582] d)先决条件物;
[0583] e)纪律物;
[0584] f)识别作者的物;
[0585] g)识别分布者的物,该分布者可以与所有者分离;
[0586] h)识别所有者的物,该所有者可能与作者分离;
[0587] i)在验证内容时使用的物;
[0588] j)在授权使用内容时使用的物;以及
[0589] k)来自https://www.schema.org/SoftwareApplication的属性。
[0590] 要注意的是,应用词汇表URR使用stdfile:parse,该stdfile:parse执行读取和解析文件作为待评估的thing:statement的行动。在实施例中,语句包括待配置的任务的集合、运行时间任务和待提供的服务的集合。在实施例中,任务和服务包括行动块,并且任务通过执行任务的行动块来执行。类似地,服务通过执行服务的行动块来提供。本领域技术人员可以配置多种任务和服务。
[0591] 以下是以物语言表达的内容的示例,其中所述内容描述TM(i)。
[0592] TM:RaspberryPi3
[0593] 以下是以物语言表达的内容的示例,其中所述内容描述TM(i)。
[0594]
[0595]
[0596] TM(raspberryPi3)是被配置为执行包括以下行动的P(TM)的计算机器:执行自我配置的thing:machine.boot.vocabulary可执行行动,以配置thing:machine.core.vocabulary与thing:machine.hardware.component.parts交互,并且配置thing:machine.application.vocabulary;以及执行应用运行时间。
[0597] TM(AMS.TMD26723)
[0598] 以下是以物语言表达的内容的示例,其中所述内容描述TM(i)。TMD26723是由AMS公司提供的光模块1.8v I2C接口中的数字接近检测器\LED驱动器和IR LED(参见http://www.ams.com)。产品数据表可访问于http://ams.com/eng/content/download/364923/1210537/207915。
[0599]
[0600] TM(AMS.TMD26723)是计算机器,该计算机器被配置为使用如由数据表指定地配置的i2c通信与TM2671交互,并提供如下表7中列出的P(TM(AMS.TMD26723))行动。
[0601]
[0602]
[0603] 表7
[0604] 要注意的是,在优选的实施例中,P(TM(i))将在算法地与P(TM(thing))交互以访问P(TM(i))行动可以作用的物并与该物交互。P(TM(i))与P(TM(thing))交互,以针对不在由P(TM(i))行动允许的值的范围内的任何值将状态设置为FAILED,并将理由设置为无效值。在优选的实施例中,虽然用于行动的参考名称被配置在TMD26723命名空间中,但是第二实施例可以使用不同的命名空间。
[0605] 可以通过包括使用i2c接口开启通往TMD26723的通信信道的行动的实施例来包括额外的行动,该实施例,因此使得行动能够作用于代表信道的物上。当在实施例中使用多个TMD26723传感器时,这是有用的。
[0606] TM(piborg.ultraborg)
[0607] Ultraborg是具有声波模块支持的精密伺服控制器的使用i2c通信的接口板。该板提供4个HC-SR04超声波距离传感器连接器以及最多4个伺服马达连接器。HC-SR04具有30度的视野
[0608] 以下是以物语言表达的内容的示例,其中所述内容描述TM(i)。
[0609]
[0610]
[0611] TM(piborg.ultraborg)是计算机器,该计算机器被配置为使用如由数据表指定地配置的i2c通信与Ultraborg交互,并提供如表8所示的P(TM(piborg.ultraborg))行动。
[0612]
[0613] 表8
[0614] 要注意的是,在优选的实施例中,P(TM(i))将在算法地与P(TM(thing))交互以访问P(TM(i))行动可以作用的物并与该物交互。P(TM(i))与P(TM(thing))交互,以针对不在由P(TM(i))行动允许的值的范围内的任何值将状态设置为FAILED,并将理由设置为无效值。
[0615] 在优选的实施例中,虽然用于行动的参考名称被配置在指定的命名空间中,但是第二实施例可以使用不同的列表。
[0616] 在一个实施例中,HC-SR04超声波传感器被安装在可通过伺服马达运动旋转的表面上。以这种方式,伺服马达可以使表面旋转,诸如以30度的增量旋转,以使超声波传感器逐渐覆盖更宽的区域。
[0617] 在第二实施例中,HC-SR04超声波传感器被安装在固定位置上,诸如面向前方,以固定的30度视场测量高达4米的距离。
[0618] TM(Ublox.neo-6m-gps)
[0619] Neo-6M-GPS是ublox 6GPS模块ROM的使用标准GPIO接口的晶体。
[0620] 以下是以物语言表达的内容的示例,其中所述内容描述TM(i)。
[0621]
[0622]
[0623] TM(Ublox.neo-6m)是计算机器,该计算机器被配置为使用如由数据表指定地配置的通用目的i/o与u-blox Neo 6M GPS交互,并提供如表9所示的P(TM(Ublox.neo-6m))行动。
[0624]
[0625] 表9
[0626] 要注意的是,在优选的实施例中,P(TM(i))将在算法地与P(TM(thing))交互以访问P(TM(i))行动可以作用的物并与该物交互。P(TM(i))与P(TM(thing))交互,以针对不在由P(TM(i))行动允许的值的范围内的任何值将状态设置为FAILED,并将理由设置为无效值。在优选的实施例中,虽然用于行动的参考名称被配置在指定的命名空间中,但是第二实施例可以使用不同的列表。
[0627] TM(HC-SR501)
[0628] HC-SR501热释电红外PIR运动传感器探测器模块。以下是以物语言表达的内容的示例,其中所述内容描述TM(i)。
[0629]
[0630]
[0631] TM(HC-SR501)是计算机器,该计算机器被配置为使用如由数据表指定的通用目的I/O接口与PIR交互,并提供如表10所示的P(TM(HC-SR501))行动。
[0632]P(TM(i)) 提供以下行动:
Init 初始化HC-SR501通信;及
detect.motion 检测是否存在运动。
[0633] 表10
[0634] 要注意的是,在优选的实施例中,P(TM(i))将在算法地与P(TM(thing))交互以访问P(TM(i))行动可以作用的物并与该物交互。P(TM(i))与P(TM(thing))交互,以针对不在由P(TM(i))行动允许的值的范围内的任何值将状态设置为FAILED,并将理由设置为无效值。在优选的实施例中,虽然用于行动的参考名称被配置在指定的命名空间中,但是第二实施例可以使用不同的列表。
[0635] Cirrus Logic音频卡
[0636] Cirrus Logic音频卡(由Element14与Cirrus Logic协同生产)提供Raspberry的用户与PC声卡类似的用于在这些用户的摄像机旁边捕捉音频并尝试立体声数字捕捉和回放的灵活性。
[0637] 以下是以物语言表达的内容的示例,其中所述内容描述TM(i)。
[0638]
[0639]
[0640] TM(Element14.CLAC))是计算机器,该计算机器被配置为:与如数据表中指定的Cirrus Logic音频卡接口交互;立体声麦克风连接到立体声线路输入;两个外部供电的立体声扬声器连接到立体声线路输出;以及提供如表11所示的P(TM(Element14.CLAC))行动。
[0641]
[0642] 表11
[0643] 要注意的是,在优选的实施例中,P(TM(i))将在算法地与P(TM(thing))交互以访问P(TM(i))行动可以作用的物并与该物交互。P(TM(i))与P(TM(thing))交互,以针对不在由P(TM(i))行动允许的值的范围内的任何值将状态设置为FAILED,并将理由设置为无效值。在优选的实施例中,虽然用于行动的参考名称被配置在指定的命名空间中,但是第二实施例可以使用不同的列表。
[0644] Cirrus Logic音频卡TM(Element14.CLAC)的示例性实施例由以下说明:https://www.element14.com/community/servlet/JiveServlet/downloadBody/65689-102-2-291406/Wolfson%20Audio%20Card%20Schematic%20Diagram.pdf
[0645] TM(TLTMP007)
[0646] TMP007是晶圆芯片级封装(WCSP)中的集成数字热电堆温度传感器,该传感器可通过红外(IR)发射检测远程物体的温度。参见http://www.ti.com/lit/ds/symlink/tmp007.pdf。
[0647] 以下是以物语言表达的内容的示例,其中所述内容描述TM(i)。
[0648]
[0649] TM(TI.TMP007)是计算机器,该计算机器被配置为与如由TMP007数据表指定的TI TMP007交互,并提供如表12所示的P(TM(TI.TMP007))行动。
[0650]
[0651]
[0652] 表12
[0653] P(TM(i))的示例
[0654] 如先前所陈述的,物机器包括多个TM(i),其中每个TM(i)是具有程序P(TM(i))的计算机器。不同P(TM(i))的示例包括但不限于以下。
[0655] P(TM(format))行动与P(TM(thing))交互以格式化响应命名空间物作为P(TM(output))行为输出的输出内容响应物。要注意的是,P(TM(format))和P(TM(output))的算法步骤可以组合为由诸如P(TM(format.output))的适当P(TM(i))给出的单个程序。
[0656] P(TM(runtime))行动与P(TM(thing))交互以执行代表语句的序列的配置的任务thing:graph,每个语句由P(TM(eval))评估,其中,相应的可执行的thing:graph待由P(TM(perform))执行。
[0657] P(TM(runtime))算法地提供了以下行动:
[0658] 1、与P(TM(thing))交互,以将由列表状态给出的物的值设置为值“满足”;
[0659] 2、在所述物的值等于“满足”的同时迭代地执行以下序列:
[0660] a.与P(TM(parse))交互以从输入装置读取内容,解析所述内容,并与P(TM(request))交互以生成相应的thing:statement图表;
[0661] b.与P(TM(eval))交互以在主动物的上下文中评估所述图表以生成可执行的thing:statement图表;以及,
[0662] c.与P(TM(perform))交互以执行所述的可执行的thing:statement图表。
[0663] P(TM(runtime))可以被配置为启动主动物的集合中的主动物。P(TM(bootstrap))行动可以初始化通信信道并设置代表该通信信道的物。P(TM(parse))行动可以与P(TM(thing))交互以访问作为通信信道的所述物并与该物交互,其中从该通信信道读取内容。
[0664] P(TM(runtime))可以被配置为引导启动主动物的集合中的主动物。P(TM(bootstrap))行动可以初始化通信信道并设置代表该通信信道的物,并且然后请求P(TM(runtime))的执行。P(TM(parse))行动可以与P(TM(thing))交互以访问作为通信信道的所述物并与该物交互,其中从该通信信道读取内容。
[0665] 对于未知的物,P(TM)可以与P(TM(bind))交互,P(TM(bind))提供与P(TM(thing))交互的行动以将未绑定的物绑定为P(TM)知道的物的分类的成员。
[0666] P(TM(classifier))算法地将正在被要求评估的语句的类型分类为感兴趣的分类,并递增该感兴趣的分类的计数。在预定阈值处,P(TM)将作为主题的该分类添加到P(TM)应当学习到的物的列表中。P(TM)可以算法地确定学习主题的适当时间。在使用通信装置的情况下,P(TM)可以请求与主题相关的内容。这使得P(TM)能够确定它想要学习的主题的类型,以及它想要学习的速率。例如,以75%的存储器容量、65%的处理容量和/或60%的网络容量运行的物机器可能延迟消耗关于学习的额外的资源,直到稍后的时间。在许多情况下,物机器通常会坚持与该物机器正在执行的环境相关的那些感兴趣的领域。然而,通过将随机选择添加到待学习的主题的列表中,物机器可以扩展其能力扩展得更为一般化。例如,作为出售产品的自动售货机的物机器可以学习提供汽车租赁所需的行动。虽然表面看起来可能看起来很荒谬,但是想想在繁忙的机场具有多家汽车租赁公司随时可用的自动售货机。这样的机器可以学习使用网络服务来找到哪家汽车租赁公司具有适合于消费者的选择、预订租赁、向消费者开账单并通过电子邮件向这些消费者发送收据。P(TM(classifier))可以提供用于分类thing:statement的行动,并且P(TM(eval))使用所述分类来识别在选择主动物来满足thing:statement时P(TM(eval))可访问的主动物的集合。可以集成其他形式的人工智能(AI)。例如,可以使用符号AI算法程序、子符号AI算法程序以及统计AI算法程序。
[0667] P(TM(eval))可以生成第一可执行的thing:statement并导致该第一可执行的thing:statement的执行,并在执行第二可执行的thing:statement时使用该第一可执行的thing:statement的执行的响应。在实施例中,第一可执行的thing:statement可以执行P(TM(classifier))以分类被评估的thing:statement的类型(诸如主题)。响应于此,P(TM(eval))可以使用分类来生成第二可执行的thing:statement,或者设置生成的可执行的thing:statement的可访问主动物的上下文。
[0668] 参考图33,P(TM(parse))与输入装置(未示出)和P(TM(thing))交互以提供生成请求thing:graph的行动;P(TM(eval))与P(TM(thing))交互以提供在可访问的可执行行动的上下文中评估请求thing:graph以生成可执行的thing:graph的行动;P(TM(perform))与P(TM(thing))交互以提供执行可执行的thing:graph的行动,其中,所述图表是待执行P(TM(configure))以改变P(TM)可以执行的可执行行动的图表。在实施例中,输入装置是文件系统装置,并且内容是语法上遵循语言文法、描述至少一个待配置的主动物的配置文件。在优选的实施例中,解析器行动和格式行动遵循物语言文法。在该配置中,主动物的词汇表是从配置文件的集合动态配置的。
[0669] 参考图34,P(TM(env))与输入装置(未示出)和P(TM(thing))交互以提供生成请求thing:graph的行动;P(TM(eval))与P(TM(thing))交互以提供在可执行行动的上下文中评估请求thing:graph以生成可执行的thing:graph的行动;P(TM(perform))与P(TM(thing))交互以提供执行可执行的thing:graph的行动,其中,所述图表是待执行P(TM(configure))以改变P(TM)可以执行的可执行行动的图表。
[0670] 在优选的实施例中,输入装置是电磁波形装置。在该配置中,基于来自环境的输入算法地修改thing:graph(monad)的一部分,因此,P(TM)适应该P(TM)正在执行的环境的需要。
[0671] 在一个环境中,P(TM)行动播放询问用户“我能如何提供服务”的音频消息,并且第二行动记录用户响应。语音转文本行动将音频转换为文本,文本被解析为thing:graph。分类器行动算法地对会话的主题进行分类。P(TM)将与该主题相关的任务的请求传送给第二物机器。响应于接收信息,第一P(TM)算法地配置任务,并执行该任务。
[0672] 在第二实施例中,物机器包括接收器光学子系统组件,并物机器被用于询问用户提供的光学标识符(OI),并且,响应于光学标识符,将thing:graph(monad)的一部分配置为包括特定于该用户的可执行的thing:graph。当用户执行肯定行动(诸如通过从光学读取器移除OI)时,P(TM)忘记了特定于用户的thing:graph(monad)的那部分。
[0673] 在第三实施例中,物机器包括用于识别用户的生物识别装置(诸如EyeLock),并且执行用于将thing:graph(monad)的一部分配置为包括特定于该用户的可执行的thing:graph的行动。当用户执行肯定行动(诸如通过离开生物识别装置的区域)时,P(TM)忘记了特定于用户的thing:graph(monad)的那部分。
[0674] P(TM(thing))提供了在非易失性存储器中算法地初始化和组织物以及这些物之间的关系的代表作为thing:graph的行动。在支持类别的实施例中,P(TM(thing))包括纪律P(TM(thing:class))程序,诸如:P(TM(thing:class.set)),用于将物设置为满足该类别的成员,该物满足该物的实例是意味着什么的需求;P(TM(thing:class.get)),用于获取对于该类别的物的参考;以及,P(TM(thing:class.unset)),用于复位指定的类别的物的实例。修饰语行动使得P(TM(thing))程序能够被修饰(诸如“之前”或“之后”),从而启用“在设置之前,执行该行动”或“在设置之后,执行该行动”。
[0675] 物的每个实例包括P(TM(thing))使用的非可变组分的集合。在优选的实施例中,所述集合包括:thing:name、thing:value以及thing:relationship-set。实施例可以扩展该集合以合并如通过可以与P(TM(thing))交互的内容(诸如配置文件中的内容)指定的额外的组分。
[0676] 参考图35,在初始化期间,P(TM(thing))分配并初始化名称等于monad的物,作为物机器的thing:graph的根,并分配和初始化具有名称context的物,并设置关系,使得如下断言为真:存在名称等于monad的物,使得存在名称等于context的物。
[0677] 参考图36,上下文量化了用于解决列表的范围中的物的集合,该列表包括一个或多个自由变量和该自由变量之间的关系的表达式。通过示例的方式,http://www.iotnamespace.com/thing以及request:statement以及statement.thing[1]是列表的示例。
[0678] 参考图37,在优选的实施例中,上下文物是thing:stack,P(TM(thing))可以通过该thing:stack算法地将物推送到堆栈上,或者将物弹出堆栈,因此改变上下文。在用于量化解析列表的范围内的物的集合时,P(TM(thing))算法地使用堆栈顶部的物作为当前上下文。
[0679] 再次参考图36,在优选的实施例中,当前的上下文物具有包括与被称为命名空间物的一个或多个物的关系的关系集合。物的名称是命名空间的名称。P(TM(thing))算法地使用命名空间物作为物,该物表示相关(即使仅通过被限定在相同命名空间中而相关)物的命名的物图表。URI纲目名称可以是作为命名空间的物的名称。URI纲目特定部分是识别在该命名空间中限定的物的列表。
[0680] 参考图38,具有对可执行行动的参考的代表的物被分类为主动物。主动物是thing:verb并具有相应的主动物图表G(P(TM(i)))。主体节点名称被相应的主动物名称替换,并且G.request作用的空白节点被P(TM(i))可以作用的物的图表替换。每个G(P(TM(i)))包括:
[0681] a)G.identifer(P(TM(i))物,其名称是标识P(TM(i))的标识符,并且是有向图表中的根节点(主体物);
[0682] b)G.urr(P(TM(i)))URI物,其值表示使P(TM(i))作用于G.request上的请求;以及,
[0683] c)G.request(P(TM(i)))物图表,表示P(TM(i))可以作用的物的集合。
[0684] 参考图39,在实施例中,G(P(TM(i)))可以包括额外的物信息,诸如包括对来自执行P(TM(i))的响应的物的描述。
[0685] 实施例可以包括给定G(P(TM(i)))的多个G.request图表,以指示P(TM(i))可以作用的物的各种排列。这样的实施例可以进一步包括多个G.response图表,这些图表指示构成相应的响应图表的物。
[0686] 图40是G(P(TM(Thing.set)))图表,对应于用于在非暂时性存储器中设置物的P(TM(Thing.set))程序。request:uri物的值是待设置的物的列表,并且,如果指定,该物的值将被设置为request:value物的值。如果指定了request:using物,则该物的值是代表在设置有request:uri物的值识别的物时待使用的物的列表。
[0687] 图41是G(P(TM(Thing.get)))图表,对应于用于获取非暂时性存储器中由列表request:uri给出的物的表示的P(TM(Thing.get)程序。修饰符名称、值或关系集合或关系可表示所请求的关于物的特定信息。该信息被保存为由列表给定的物的值,该列表由request:as物的值所表示。
[0688] 图42是G(P(TM(Thing.unset)))图表,对应于用于从非暂时性存储器复位(unset)物的表示的P(TM(Thing.unset)程序。待清楚的物由request:uri物的值所给定。
[0689] 本领域技术人员可以用替代算法程序替换P(TM(thing))以支配物及其关系以进一步启用诸如以下特征:并发、持久、缓存、同步、锁定(诸如读取/写入锁定)、所有权、权限(诸如由所有者、群组或所有人进行读取/写入/执行)。
[0690] P(TM(eval))
[0691] 如图45所描述的,P(TM(eval))与P(TM(thing))算法地交互以提供以下行动:
[0692] a)选择待评估的thing:statement;
[0693] b)从可访问的主动物的集合中选择G(P(TM(i)))作为可执行的主动物;
[0694] c)初始化新的上下文物作为可执行的上下文物;
[0695] d)在可执行的上下文物的上下文中执行可执行的G(P(TM(i)))的G.urr;
[0696] e)将可执行的上下文物重置为当前的上下文物;以及,
[0697] f)复位新的上下文物。
[0698] 在实施例中,步骤a和步骤b包括选择满足如下断言的主动物:(存在列表等于request:statement的thing:statement,使得存在名称等于.name的物)以及(存在列表等于verb:vocabulary的物,使得存在名称等于.name的thing:verb并且物为主动物)。
[0699] 在优选的实施例中,步骤b可以包括当在其他情况下不满足断言时选择默认主动物的步骤。
[0700] 对于具有实例的主动物,P(TM(eval))可以包括以下步骤:选择主动物的实例,其中,thing:statement是实例的G.Request图表的子图表。
[0701] 在实施例中,P(TM(eval))可以与P(TM(bind))交互以包括以下步骤:使用可执行的主动物的相应G.request图表来绑定由thing:statement物限定的物作为可执行的上下文中主动物行动可以作用的物。
[0702] 在实施例中,P(TM(eval))将语句的类型算法地分类为命令性语句;宣告性语句;询问性语句;或者感叹性语句,并执行主动物来评估所述语句的类别。这使得:P(TM(eval.declarative))程序能够算法地评估宣告性语句;P(TM(eval.imperative))程序能够算法地评估命令性语句;P(TM(eval.interrogative))程序能够算法地评估询问性语句;
以及P(TM(eval.exclamatory))程序能够算法地评估感叹性语句。
[0703] P(TM(eval))的行动可以为可执行的thing:statement算法地选择默认的主动物,并且可以算法地评估thing:statement以确定待使用的更合适的主动物。默认操作可以与P(TM(thing))交互以递增与thing:statement的分类相关联的计数器物(对thing:statement执行默认行动)以表示物机器被要求执行thing:statement的该分类的次数。在使用可执行的通信行动的情况下,P(TM(i))可以与第二机器通信以获得与所述分类相关的内容。P(TM(parse))行动可以解析为待评估和执行的thing:statement。以这种方式,物机器可以适应该物机器正在执行的环境的需要。(这里的目标是你要求物机器做某事。)机器选择默认行动,然后评估你所要求的任何事以看看是否存在待执行的更佳的行动。如果不存在,则该机器执行默认行动。默认行动对主题进行分类,并对计数器增量该机器被要求执行与该主题相关的某事的次数。这样,当计数器达到阈值时,机器可以要求某人教导该机器该主题或者购买与该主题相关的书籍来阅读。
[0704] 实施例可以在上下文之间合并图表,使得如果指定response.as物,则P(TM(eval))可以在清楚新的上下文物之前绑定新的上下文中的response:namespace物的子图表作为当前的上下文中的response.as物的子图表。
[0705] 在实施例中,P(TM(eval))可以包括以下步骤:在执行G.urr的步骤之前将新的上下文推送到上下文堆栈作为当前的上下文。在第二实施例中,并行处理的计算机领域的技术人员将使用代表进程控制块物的线程特定数据的图表的物,并且所述数据包括对当前的上下文的参考以用于由P(TM(thing))解析列表。
[0706] 参考图43,G.request表示该行动可以作用于作为thing:statement的request:statement上。因此,request:statement物的子图表将需要满足成为是thing:statement的物的类别的成员的需求。
[0707] 参考图44,G.request子图表指示该行动可以作用于作为thing:listing的request:using物上。如果真的存在请求命名空间物,使得不存在名称等于statement的(thing:sttina)物,而存在名称等于using的物,则该图表适用。该G.request子图表提供了选择评估主动物的可选的方法。
[0708] 明确考虑了人工智能的算法使用。P(TM(classifier))提供用于分类thing:statement的行动,并且P(TM(eval))使用所述分类来识别在选择主动物来满足thing:
statement时P(TM(eval))可访问的主动物的集合。可以集成其他形式的人工智能。例如,可以使用符号AI算法程序、子符号AI算法程序以及统计AI算法程序。
[0709] 谷歌搜索发布了主要用于学术和研究活动的TensorFlow(开源机器学习库)。机器学习的计算机科学领域的技术人员可以使用TensorFlow API来开发用于深度学习的P(TM(classifier))。可以修改TensorFlow API以与P(TM(thing))直接交互,该P(TM(thing))作为代表待配置的Tensorflow程序的主动物的集合。可以通过主动物的集合提供训练数据
[0710] P(TM(eval))提供如下行动:a)与P(TM(thing))交互以生成请求执行P(TM(classifier))以分类当前的请求thing:statement的请求分类器thing:statement;b)与P(TM(bind))交互以绑定分类器thing:statement作为可执行的thing:statement;c)与P(TM(perform))交互以执行可执行的thing:statement;以及d)与P(TM(thing))交互以与其结果交互。
[0711] 其结果标识与当前请求thing:statement相关的分类(类别)。对于P(TM)已知的物的类别,P(TM(eval))与P(TM(thing))交互以将上下文设置为包括与该类别相关的词汇表并在该上下文中评估当前的请求thing:statement。
[0712] P(TM(eval))递增代表主题的计数器,以表示该主题应用于当前的请求thing:statement的次数,这使得分类器能够根据最常用的主题对thing:statement进行分类。当P(TM)不具有给定主题的词汇表时,P(TM(eval))可以生成表示默认行动的待评估的thing:
statement。
[0713] 第一P(TM)可以与第二P(TM)通信(诸如通过WiFi通信),以请求与P(TM)通常被要求评估和执行的thing:statement的类别相关的内容。所述内容可以代表诸如主动物的物以及主动物的行动可以作用的物(诸如任务)。
[0714] 实施例可以用评估行动代替P(TM(eval))以算法地执行适合于该实施例的评估,诸如以下的一个实施例:支持给定语言;实施特定的机器学习算法;实现多种机器学习算法;提供性能改进,或与第二机器交互以评估thing:statement;与第三机器交互以执行thing:statement。本领域技术人员将理解,在本发明的范围内可以进行多种算法变型。
[0715] 修饰符可以用作thing:statement中的物以修饰默认的P(TM(eval))程序行动。可选地,P(TM(eval))可以与P(TM(classifier))交互以对所评估的物的类型进行算法地分类,并且所述物的类型可以用作修饰符以选择和执行主动物。通过示例的方式,评估代表命令性语句的语句(诸如“执行名称为清理的任务”)不同于评估代表宣告性语句的语句(诸如:“宣告名称为清理的任务,该任务包括:步骤1:复位(flush)compoint I/O;以及步骤2:关闭compoint I/O。”)
[0716] 通过将行动可以作用的物的类型合并到P(TM(i))的thing:graph中并合并行动可以响应的物的类型,可以为常用动词名称(诸如开启)选择适当的行动。通过示例的方式,以下中的每一个具有非常不同的行动,然而每一个使用了共同的动词名称:开启我的电子邮件;开门;以及开启银行账户。选择正确的行动部分取决于什么正在被开启。通过包括行动可以作用的物的类型的描述,P(TM(eval))可以对其应当生成的可执行的thing:graph作出适当的选择。
[0717] P(TM(parse))
[0718] P(TM(parse))提供解析代表请求的输入并且与P(TM(request))算法地交互以将物设置为代表解析的输入的行动。在优选的实施例中,P(TM(parse))是XML 1.1解析器。
[0719] 参考图46,由列表request:stream识别的物的值是待解析的串流。由request:as物的值(默认为request:statement)标识的物被设置为代表解析的输入请求的thing:statement。
[0720] 参考图47,示例性XML片段被解析为示例性图表。要注意的是,元素属性经由“使得存在示例”关系(thing:sttiai)表示,而元素经由“使得存在”关系(thing:sttia)表示。
[0721] 参考图48,由request:input列表给出的物的值是待解析的输入。TM(eval)可以基于请求图表选择适当的G.request(P(TM(parse)))图表,并促进适当的绑定。
[0722] 要注意的是,Parse-1和Parse-3之间存在微妙但重要的区别,具体来说,在1中,行动将从串流中读取。可选地,在3中,行动使用request:input列表的值(其中值是待解析的内容)。
[0723] 这是必需的,因为在某些情况下,你将从文件中获取内容,而在其他情况下,行动会生成内容并将该内容存储为物的值。
[0724] P(TM(request))
[0725] P(TM(request))提供了以下行动:使用由给定为request:using物的值的列表识别的物来与P(TM(Thing))算法地交互以将由给定为request:as物的值的列表识别的物设置为thing:statement物图表。
[0726] 第一P(TM(i))可用于迭代地构建thing:statement物,并且然后与P(TM(request))算法地交互以设置request:statement物。图49示出G(P(TM(request)))图表。
request:as的默认值是request:statement。
[0727] P(TM(bind))
[0728] P(TM(bind))在算法地适用绑定规则的集合,试图将物绑定为物的给定的类别的成员。
[0729] 通过示例的方式,值与模式“[0-9]{1,}”相匹配的物可以被绑定为thing:integer(具有整数值的物),而值与模式“[0-9A-Fa-f]”相匹配的物可以被绑定为thing:hexadecimal(具有十六进制值的物)。除了基本的物的类别(诸如:thing:thing、thing:
text、thing:integer、thing:float以及thing:string)之外,可以使用推理规则或纲要来表达额外的类型。
[0730] 参考图50,G.request子图表表示P(TM(bind))可以作用的物。由request:using给定的物的值是识别绑定规则的集合的列表。由request:bind.listing给定的物的值是识别待绑定的thing:graph的列表。由request:response.as给定的物的值是识别thing:graph的列表。当request:response.as为空时,则更新被绑定的物的图表。
[0731] P(TM(bind))可以使用诸如未绑定或绑定的状态信息来表示物是否已经被绑定。这使得P(TM(bind))能够检查状态并仅对未绑定的物执行绑定规则。P(TM(bind))可以进一步包括“已发现”和“未发现”状态,以表示物是否已经被绑定并被发现,或已经被绑定而未被发现。在优选的实施例中,P(TM(unbind))与P(TM(thing))交互以将物重置为未绑定、未发现的状态。
[0732] 在第一实施例中,计算机科学逻辑领域的技术人员使用推理规则来将物绑定为物的类别的成员。规则包括断言和类别标识符。P(TM(bind))与P(TM(thing))交互以将规则算法地适用为关于待被绑定的物的断言,并且如果满足,则P(TM(bind))与P(TM(thing))交互以将物分类为所述类标识符的成员。
[0733] 在第二实施例中,计算机科学标记语言领域的技术人员可以使用thing:schema标记语言来描述物类别。工业标准标记纲要可访问于http://schema.org/docs/schemas.html。所述纲要为类型的集合,各个类型与属性的集合相关联。参见http://schema.org/docs/documents.html的Schema.org纲要信息,该信息通过引用并入本文。
[0734] 参考图51,thing:graph被解释为描述将物绑定为图像对象类别的成员的成员资格要求的断言。解释是表达以下的断言:存在名称等于schema的物,使得存在名称等于ImageObject的物并且物是thing:schema,使得(名称等于Caption且thing:value是thing:text的物),并且(存在名称等于exifData且thing:Value是thing:text的物),并且(存在名称等于representativeOfPage且thing:value是thing:Boolean的物),并且(存在名称等于thumbnail且thing:thing是schema:ImageObject的物)。
[0735] 参考图52,呈现了由列表local:object给出的未绑定的thing:graph。
[0736] 参考图53,thing:graph示出将local:object thing:graph绑定为schema:ImageObject物的请求(如由http://www.schema.org/ImageObject所描述)。P(TM(bind))与P(TM(Thing))交互以确定local:object thing:graph的组分是否满足成为schema:
ImageObject的要求。local:object物状态从未绑定转换为绑定。如果满足,则节点“bound.found”被添加到local:object thing:graph,并且节点的值被设置为schema:
ImageObject。
[0737] 计算机科学逻辑领域的技术人员可以使用推理规则来算法地做出关于物的推论。推理规则包括作用于代表前提的thing:graph并生产代表结论的thing:graph的程序。参考图54,断言描述了将物分类为广播服务是什么意思。断言被解析并表示为指定分类的推断规则。P(TM(bind))提供了以下行动:算法地评估指定的thing:graph是否满足推断规则,并且如果满足,则将thing:graph分类为指定的分类的成员。再次参考图54,计算机科学模式领域的技术人员可以生成用于纲要的集合(诸如由http://www.schema.org公布的可访问于http://schema.org/docs/full.html的集合)的推理规则。
[0738] 要注意的是,http://www.schema.org/PerformAction涉及参与执行技巧的行为,而不涉及执行可执行行动的机器。进一步要注意的是,schema.org行动涉及词汇表,该词汇表使得网站能够描述这些网站启用的行动以及客户端如何调用这些操作。参见http://blog.schema.org/2014/04/announcing-schemaorg-actions.html,其通过引用并入本文。
[0739] P(TM(perform))
[0740] P(TM(perform))通过定位thing:statement中对于P(TM(i))的参考并使得P(TM(i))行动执行来算法地执行可执行的thing:statement。来自行动的响应是以下的任一个:满足、不满足或失败。P(TM(perform))行动设置状态物值以指示该响应。
[0741] 参考图55,G.request子图表指示P(TM(perform))行动作用于request:statement。
[0742] P(TM(task))
[0743] P(TM(task))与P(TM(thing))算法地交互以将thing:graph支配为包括子图表的集合的thing:task,该子图表的集合包括thing:statement的thing:list。
[0744] 在实施例中,P(TM(task))的行动可以包括:
[0745] a)P(TM(task.set)),用于与P(TM(thing))交互以设置thing:task;
[0746] b)P(TM(task.get)),用于与P(TM(thing))交互以获取对thing:task的参考;
[0747] c)P(TM(task.unset)),用于与P(TM(thing))交互以复位thing:task;以及,[0748] d)P(TM(task.perform)),用于与P(TM(thing))、P(TM(eval))和P(TM(perform))交互以评估和执行thing:task的thing:statement。
[0749] 参考图56,P(TM(task.set))与P(TM(thing))交互以算法地作用于由列表request:statement.task识别的物上,该物的值是待被设置为thing:task的物的列表。
request:statement.task的行动子图表被设置为thing:task物的子图表。实施例可以包括作为request:statement.task.G.request的G.request子图表,并且该子图表代表待受任务作用的物。
[0750] P(TM(task.get))与P(TM(thing))交互以算法地获取thing:task的代表,并且主要由需要访问该图表的其他P(TM(i))(诸如P(TM(task.perform)))使用。
[0751] P(TM(task.unset))与P(TM(thing))交互以从thing:thing(monad)图表算法地复位(移除)指定的任务。
[0752] 参考图57,P(TM(task.perform))与P(TM(thing))、P(TM(eval))和P(TM(perform))交互以算法地评估和执行由thing:task的行动给定的thing:statement子图表的序列,该thing:task由request:statement.task的值所识别。
[0753] 在一实施例中,thing:task图表可包括thing:statement子图表,该thing:statement子图表可经评估和执行作为评估和执行thing:task行动子图表的先决条件。这使得主动物的集合的执行能够获得代表行动子图表的内容,以将所述内容解析为待评估和执行的行动子图表的thing:statement的序列。其他行动可以包括标识、认证和授权,以验证、授权或拒绝thing:task的执行。类似地,可以使用先决条件操作来确保在thing:task的评估之前满足先决条件,诸如配置主动物。
[0754] 在实施例中,取决于状态物的值,thing:task可以包括代表用于评估和执行thing:statement的on.status子图表。在评估和执行每个thing:statement之后,实施例可以与P(TM(thing))行动交互以算法地测试状态以查看该值是否满足、不满足或失败,并评估和执行相应的on.status.satisfied、on.status.unsatisfied或on.status.failed thing:statement子图表。
[0755] 具体取决于状态物的值,实施例可以包括代表用于评估和执行的thing:statement的on.status子图表。在评估和执行每个thing:statement之后,实施例可以与P(TM(thing))行动交互以算法地测试状态以查看该值是否满足、不满足或失败,并且评估和执行相应的on.status.satisfied、on.status.unsatisfied或on.status.failed thing:
statement子图表。
[0756] P(TM(format))
[0757] P(TM(format))提供了以下行动:与P(TM(thing))交互以遍历thing:graph并生成所述thing:graph的格式化表示。通过示例的方式,thing:graph的表示可以依照格式化的需要被格式化为XML文件、HTML文件、物文件或其他这样的格式。
[0758] 参考图58,request:statement.listing识别物,该物的值是代表P(TM(format))待格式化的thing:graph的列表。request:statement.as识别物,该物的值代表thing:graph,thing:graph表示结果的格式响应。request:statement.using识别物,该物的值代表期望的格式。
[0759] 使用的默认P(TM(format))是Thing-XML。被遍历的thing:graph的节点被格式化为根元素。作为实例的子图表被格式化为属性,而非实例的子图表被格式化为内部元素。
[0760] 在实施例中,P(TM(format))可以与P(TM(thing))交互以遍历thing:graph以生成文本的串流和P(TM(text-to-speech))以执行文本的串流转音频串流的合成,该音频串流包含合成的口语文字表示。P(TM(play-audio))将音频串流传送到声音子系统以产生音频回放。
[0761] P(TM(http:get))
[0762] P(TM(http:get))提供了以下行动:与P(TM(thing))算法地交互以生成URI;为由URI标识的资源传送HTTP GET方法请求;接收HTTP响应;以及生成代表HTTP响应的thing:graph,该HTTP响应包括response.headersthing:subgraph以及response.entity thing:
subgraph。
[0763] 计算机科学网络服务领域的技术人员可以使用HTTP方法主动物的集合来在词汇表中提供诸如以下的HTTP方法:连接、删除、获取、标题、选项、发布、放置和跟踪。可相对于http:命名空间来配置方法的集合。类似地,本领域技术人员可以提供与HTTPS协议相关的方法的集合,并且所述组可以被配置为https:命名空间(https:namespace)的主动物。
[0764] 参考图59,URI物限定域物、路径物以及限定标题物的请求物。P(TM(http:get))与P(TM(thing))交互以与URI物算法地交互以生成HTTP获取方法请求(如图60所示)并将所述请求传送到域网络服务。响应于此,P(TM(http:get))接收响应(参见图61)。
[0765] 参考图61,P(TM(http:get))执行以下行动:从HTTP获取方法请求接收响应;解析响应并与P(TM(thing))交互以设置如图62所示的代表响应的thing:graph。
[0766] request.header物可以配置有请求标题字段组分的集合,每个请求标题字段组分被表达为由request.header限定的物。类似地,响应于接收和解析响应标题,response.header物可以配置有响应标题字段组分的集合,每个响应标题字段组分被表达为物。
[0767] 在实施例中,P(TM(http:get))执行与P(TM(thing))交互以获取代表响应中可接受的媒体类型的物的集合的行动,并且将接受请求标题字段相应地添加到请求标题thing:subgraph。在第二实施例中,P(TM(http:get))执行与P(TM(thing))交互以获取代表响应中可接受的编码的集合的行动,并且将接受编码标题字段相应地添加到请求标题。
[0768] P(TM(parse.html))
[0769] P(TM(parse.html))与P(TM(thing))交互以算法地提供将代表HTML内容的行动解析为thing:graph的集合。
[0770] 参考图63,P(TM(parse.html))作用于request:content物上,该物的值是代表值是待解析的HTML内容物的列表。在与HTML内容相同的域内限定的嵌入在HTML中的锚链接被分类为内部链接并被添加到由request:links.internal物的值限定的物的thing:graph。类似地,外部链接被添加到由request:links.external物的值识别的物的thing:graph。未标记的文本被保存为由request:text物的值识别的物的值。HTML标签被添加到由request:
architecture物的值识别的物的thing:graph。微数据被添加到由request:microdata物的值识别的物的thing:graph。
[0771] 参考图64,示出了HTML内容中的示例性微数据。P(TM(parse.html))提供以下行动:与P(TM(thing))交互以解析所述内容,并且将微数据表示为thing:graph,如图65所示。
[0772] 如图所示,第一纲要可以包括第二纲要,诸如组织可以包括地址,如http://www.schema.org所描述。
[0773] TM(openssl)
[0774] P(TM(openssl))的部分被涵盖在包括在本公开中的OpenSSL授权协议下。TM(openssl)是计算机器,该计算机器被配置为具有OpenSSL开源软件及程序P(TM
(openSSl))。OpenSSL熟知于现有技术中且广泛地与网络服务一同用来提供TLS及SSL协定行动(一般用途的加密链接库)及支持用于公钥基础建设的程序。详见http://
www.openssl.org。
[0775] 在学习P(TM(openssl))thing:verb时,P(TM)可执行通常由证书机构所提供的行动的集合。例如,计算机科学公钥基础建设的领域中的技术人员可使用P(TM(openssl))动词行动来:加密内容;解密内容;生成散列码;生成证书签署要求;签署证书;生成自我签署证书;验证证书请求;验证证书;废止证书;算法地检验证书的组分;生成数字签名;验证数字签名;提供一般是与证书机构相关联的服务集合;授权用于一定用途的证书使用;以及允许使用SSL/TLS协议。
[0776] 为了与P(TM)一起使用,修改了OpenSSL源代码,使得原始C源代码函数可以与P(TM(thing))交互以参考作为参数的物。计算机科学领域的技术人员可以修改类似的现有源代码库并使用配置行动来配置额外的P(TM(i))。
[0777] 通常,OpenSSL命令被配置为P(TM)可以执行的行动,其中,命令名称被配置为thing:verb,并且命令所作用的参数被配置为thing:verb行动可以作用的物。
[0778] P(TM(i))中的若干部分可以作用于代表数据的内容,该内容可以进一步被分类为:证书签署请求;证书;密码;私钥;公钥;配置信息;撤销证书;延期;随机数据;或者,行动可以用作的一些其他类型的物。在某些情况下,内容由P(TM(i))解析并表示为物图表中的物,而在其他情况下,内容被用作由列表给出的物的值。在许多情况下,行动可以作用的物可以被指定为Thing.urr,该Thing.urr被解释为针对该物的统一资源请求。类似地,P(TM(i)可以算法地生成代表数据的内容,该内容可以诸如如以上所描述地被进一步分类。
[0779] 在某些情况下,内容可以由P(TM(i))解析并表示为物图表中的物,而在其他情况下,内容可以被用作由列表给出的物的值。行动可以与系统装置驱动器交互以获取内容或将内容存储在第二存储装置中、将内容传送到第二P(TM),或者将内容传送到传感器或装置。
[0780] 一般而言,对于可具有值得物而言,物可以被指定为由P(TM(evaluate))评估以生成可执行的thing:graph的thing:statement中的thing:name.urr=URR(其中URR是统一资源请求)。为了清楚起见,这将被称为步骤1。
[0781] 在遍历thing:statement thing:graph时,P(TM(evaluate))将看到thing:name.urr并评估URR以生成可执行的thing:graph。执行可执行的thing:graph以生成响应thing:graph。步骤1中的P(TM(evaluate))将在评估和绑定thing:statement物时使用响应thing:graph。
[0782] 在下面的页面中提供了P(TM(openssl))行动的具体示例,以向读者提供充分的解释,然后遵循相同的格式提供openssl命令的其余部分。
[0783] P(TM(i))行动中的若干部分可以作用于共同的物的集合,这些物在下面的表13中提供。
[0784]
[0785]
[0786] 表13
[0787] P(TM(openssl.ca))
[0788] P(TM(openssl.ca))提供最小证书机构的行动。
[0789] openssl.ca动词行动可以作用的物包括下表14中列出的物。
[0790]
[0791]
[0792]
[0793]
[0794] 表14
[0795] P(TM(openssl.x509))
[0796] P(TM(openssl.x509))提供了以下行动:提供证书信息、将证书转换为各种表单、签署证书请求(类似于迷你证书机构)、或编辑证书信任设置。
[0797] 它可用于显示证书信息、将证书转换为各种表单、像是“迷你CA”地签署证书请求或编辑证书信任设置。openssl.x509动词行动可以作用的物在表15中列出。
[0798]
[0799]
[0800]
[0801]
[0802]
[0803]
[0804]
[0805]
[0806]
[0807]
[0808] 表15
[0809] P(TM(openssl.genrsa))
[0810] P(TM(openssl.genrsa))提供了生成RSA私钥的行动。P(TM(openssl.genrsa))行动可以作用的物被包括在表16中。
[0811]
[0812]
[0813] 表16
[0814] P(TM(openssl.req))
[0815] P(TM(openssl.req))提供了证书请求和证书生成行动。P(TM(openssl.req))行动可以作用的物被包括在表17中列出的物中。
[0816]
[0817]
[0818]
[0819]
[0820]
[0821] 表17
[0822] P(TM(OI))
[0823] TM(OI)是具有程序P(TM(OI))的计算机器,该程序P(TM(OI))被配置为与光学读取器装置驱动器交互以提供包括以下的行动:
[0824] a.设置读取角度P(TM(OI:set.angle));
[0825] b.设置位置(P(TM(OI:set.position));
[0826] c.光学询问光学标识符(P(TM(OI:interrogating));
[0827] d.生成数字数据P(TM(OI:generate))的对应位图;以及,
[0828] e.与P(TM(thing))交互以生成代表代码页面的thing:graph。
[0829] 类似地,‘545物联网模块的算法行动可以被实现为待被配置为在P(TM)内使用的P(TM(i))的集合。因此,‘545的教导可以被实现为代表行动的物的集合以及行动可以作用的物。
[0830] 示例性P(TM)
[0831] 示例性P(TM)包括如下的启动、主要和关闭的步骤。
[0832] 1、P(TM(startup))
[0833] 2、P(TM(main));以及,
[0834] 3、P(TM(shutdown))。
[0835] 在实施例中,P(TM)被存储在物机器的非暂时性二级存储装置中。在第二实施例中,如于2016年1月29日提交的、名称为“光学标识符系统和方法”、序列号为第62/288,545号的美国专利申请中所描述的,P(TM)被编码在光学标识符的代码页面中,该美国专利申请通过引用整体并入本文。具有光学子组件的物机器可以光学地询问光学标识符以在可执行存储器中呈现程序指令的表示。
[0836] TM的第一程序(诸如引导启动程序)使得处理器执行行动以将P(TM)加载到可执行的处理器存储器中(诸如从代码页面、辅助非暂时性存储加载,或者使用电磁波形装置来接收地加载),并使得处理器执行P(TM)。
[0837] P(TM(startup))提供了以下行动:
[0838] 1、执行P(TM(thing))以在非暂时性存储器中初始化P(TM)thing:subject(monad)作为代表在某个时刻的P(TM)的状态的thing:graph的根;
[0839] 2、执行P(TM(boot)),该P(TM(boot))提供了与P(TM(thing))交互以自我配置代表启动计算程序的启动主动物的集合的行动,该启动计算程序包括P(TM(eval)、P(TM(perform))以及P(TM(configure));以及
[0840] 3、执行P(TM(bootstrap)),该P(TM(bootstrap))提供了用于以下步骤的行动:与P(TM(eval))交互以在启动主动物的上下文中评估thing:statement以生成可执行的thing:statement,以及与P(TM(perform))交互以导致对应于所述可执行的thing:statement的计算程序的执行,以引导启动在配置的主动物的上下文中执行主要应用。
[0841] 在优选的实施例中,P(TM(boot))执行行动以自我配置代表启动计算程序的启动主动物,该启动计算程序包括:
[0842] 1、P(TM(eval)),提供用于以下步骤的行动:与P(TM(thing))交互以在由P(TM(thing))支配的非暂时性存储器中在配置的主动物的集合的上下文中评估thing:statement图表,以构建包括代表所述集合中的主动物的至少一个物的可执行的thing:
statement图表;
[0843] 2、P(TM(perform)),提供用于以下步骤的行动:与P(TM(thing))交互以通过导致执行主动物的相应的G.urr可执行行动来执行可执行的thing:statement图表;
[0844] 3、P(TM(request)),提供用于以下步骤的行动:与P(TM(thing))交互以设置代表待评估的thing:statement的thing:graph。
[0845] 4、P(TM(parse)),提供用于以下步骤的行动:解析输入并与P(TM(request))交互以设置所述请求thing:statement;以及
[0846] 5、P(TM(configure)),提供用于以下步骤的行动:与P(TM(thing))交互以改变配置的主动物的集合。
[0847] P(TM(bootstrap))算法地执行以下行动:
[0848] 1、与P(TM(parse))交互以解析内容并与P(TM(request))交互以生成相应的thing:statement图表;
[0849] 2、与P(TM(eval))交互以在主动物的上下文中评估所述图表以生成可执行的thing:statement图表;以及
[0850] 3、与P(TM(perform))交互以执行所述的可执行的thing:statement图表。
[0851] 在实施例中,至少一个请求代表配置对应于P(TM(i))的主动物的请求。
[0852] 在实施例中,至少一个主动物代表提供以下行动的程序:与P(TM(thing))交互以参考thing:graph(monad)的子图表作为代表thing:statement的序列的thing:graph;与P(TM(eval))交互以评估所述thing:statement;以及与P(TM(perform))交互以执行相应的可执行的thing:statement。在优选的实施例中,所述主动物的名称等于action,并且所述主动物的G.urr的值为stdlib://usr/local/lib/libaction.so?entry=action。P(TM(configure))使用Linux操作系统的dlopen函数调用动态加载库libaction.so,并使用Linux操作系统的dlsym函数调用来将对于条目的值(在此示例中,值为action)的参考解析为存储器中的可执行指令。
[0853] P(TM(action))作用于代表待被评估的thing:statement的列表的thing:graph,并且所述thing:graph为thing:action。对于thing:action的每个thing:statement,P(TM(action))与P(TM(eval))交互以评估thing:statement,并且与P(TM(perform))交互以执行相应的可执行的thing:statement。
[0854] 在所述实施例中,至少一个请求被用于配置thing:action。响应于执行相应的可执行的thing:statement,P(TM(eval))与P(TM(perform))交互以执行计算程序以配置thing:action。thing:action可以被配置在thing:thing图表的上下文中,诸如thing:task、thing:conditional或thing:while的上下文中。
[0855] P(TM(main))与P(TM(eval))交互以评估thing:graph。在第一优选的实施例中,使用列表main:main来识别待评估的thing:graph。在第二优选的实施例中,使用列表task:main来识别待评估的thing:thing。在评估图表时,P(TM(eval))定位thing:thing图表的thing:action子图表,P(TM(perform))与P(TM(action))交互以评估和执行thing:action的语句。
[0856] P(TM(shutdown))与P(TM(eval))交互以评估thing:thing图表。在优选的实施例中,使用列表task:shutdown来识别待评估的thing:task。
[0857] 第二示例性P(TM)可以包括提供与电子支付和处理相关的行动的P(TM(i)),诸如进行支付的行动;收到付款的行动;以及调整钱包余额的行动。这样的实施例可以使用通常为与诸如比特币钱包的数字钱包一起使用而提供的API来实施。这使得thing:statement能够表示用于接收付款或用于进行付款的请求。通过示例的方式,https://block.io/api/v2/get_balance/?api_key=BITCOIN,DOGECOIN or LITECOIN API KEY是用于如他们的网站上的Block.IO所描述地获取BitCoin账户、DogeCoin账户、或LiteCoin账户的余额的API调用:http://www.block.io/docs/basic。可选地,可以使用Go Coin API(关于钱包的描述以及可用的API,请参见http://www.gocoin.com)。因此,物机器可以进行付款、接受付款、查看交易历史记录、查看余额、以及使用某种形式的数字货币、优惠券或积分(诸如类似于美国运通(American Express)或其他信用卡提供商提供的奖励积分的奖励积分)。明确地理解,支付或接收支付是本公开的组成部分,并且这样的API通过主动物来实现。
[0858] 操作系统领域的普通技术人员可以设计和开发物操作系统P(TM(os))。本发明可以由计算机科学操作系统设计领域的技术人员使用,并且可以将TM(os)实现为具有程序P(TM(os))的计算机器,该程序P(TM(os))提供以下行动:与P(TM(thing))算法地交互以支配代表操作系统的根的thing:subject(os)物。操作系统的组分被支配为thing:subject(os)的子图表。
[0859] P(TM(os))可以包括P(TM(l,n))的集合,该P(TM(l,n))的集合提供与操作系统的行动相关的程序的集合,诸如:进程管理、I/O管理、存储器管理、同步、存储器管理、错误处理、启动、保护以及运行底层硬件组件的内核。如本领域技术人员将理解的,可以集成P(TM(scheduler))以实现作业调度。明确地考虑了程序依赖图表、系统依赖图表和其他这样的图表的算法使用以进一步增强物操作系统的能力。
[0860] 可以实现各种类型的操作系统,诸如单个用户或多个用户;单任务操作系统或多任务操作系统;分布式操作系统、嵌入式操作系统、实时操作系统或虚拟操作系统。示例性组分包括用于进程管理、存储器管理、文件系统管理、输入/输出管理、二级存储管理、网络、保护系统和命令解释器系统的程序。
[0861] 物可以代表具有代表进程的信息的子图表的进程控制块,该进程的信息诸如进程id、状态、优先级、程序计数器、cpu寄存器、i/o信息、计费信息或操作系统实施例所需的其他信息。物可以代表线程控制块。
[0862] 装置驱动器、运行队列、就绪队列、等待队列、文件系统、文件、存储装置、存储器、中断、事件、用户、群组和其他这样的类操作系统组分都可以被表示为物。
[0863] 鼓励读者从Nick Blundell的“从头开始编写简单的操作系统”、H.M.Deitel的“操作系统第2版”开始并且参加多个关于操作系统设计的课程,以学习操作系统设计,这超出了本申请的范围。
[0864] 本系统和方法提供了人工智能的算法使用。P(TM(classifier))提供用于分类thing:statement的行动,并且P(TM(eval))使用所述分类来识别在选择主动物来满足thing:statement时P(TM(eval))可访问的主动物的集合。可以集成其他形式的人工智能。例如,可以使用符号AI算法程序、子符号AI算法程序以及统计AI算法程序。
[0865] NeurBot和机器学习
[0866] 在其他物中,本系统和方法可以例如由NeurBot使用。
[0867] 我们成长在众多机械设备(诸如锁、手表、自动贩卖机等)的环境中,这些机械设备实质上执行通常响应于用户通电的机械事件的行动。在简化的示例中,我们将钥匙放入锁中,然后转动钥匙将锁上锁或解锁。我们将25美分放入口香糖机,转动旋钮,机器分发口香糖。
[0868] 期望构建装置,这些装置实质上首先评估:对该装置请求了什么。如果机器可以在执行行动之前评估这样的请求,则可以实现很多。鉴于物机器可以将请求表示为物,并且通信、协议、解析器和格式化器都是物,第一物机器可以从第二物机器算法地学习某些物。这些物机器在本文中被称为“NeurBot”。
[0869] 学习被定义为通过经验、学习或通过被教导而获得知识或技能。物机器将知识建模为代表行动的物以及行动可以作用的物。物机器的先验知识包括在机器的初始化期间表示为物的事实、信息、动词(意思是主动物)和技能(意思是任务和服务)。如果我们将机器建立得像是具有受限的先验知识的孩子,则我们能否让机器根据其经验学习新的物(后验知识)呢?根据本系统和方法,答案为是。
[0870] 出于示例性目的,让我们从自动售货机开始。存在用于自动售货机的许多可能的配置,每个配置具有诸如以下的一个或多个特征:提供批量折扣、奖励、订阅预付、兑换积分、多产品折扣等。该自动售货机的示例由第6575363号美国专利提供,该美国专利通过引用整体并入本文,提供了对于这样的自动售货机设计的描述和参考。
[0871] 在许多情况下,自动售货机所有者仍然依靠送货人来收取金钱并做出关于补货的决定。为了走向物一点,自动售货机可以被设计为物机器。运动传感器、扬声器、麦克风、GPS定位器、LCD显示器和WiFi互联网连接被添加到物机器。在另一示例中,可以添加红外热检测器。
[0872] 与库存管理相关的主动物的集合被配置成使得机器可以在库存低或缺货时通知网络服务。然后,所有者/承包商将安排递送日期以使司机从机器中收取金钱,并将额外的产品放入自动售货机中用于销售。本质上,机器为所有者工作,并且所有者维护金钱、库存并且一般而言,维护机器。
[0873] 根据本发明,物机器被改变为NeurBot并允许机器为自己工作,而不是为所有者工作。即,NeurBot必须学习并适应其环境。为了这样做,需要NeurBot具有身份,并且对金钱具有一定程度的控制。
[0874] 在该示例性实施例中,NeurBot使用光学标识符作为SIM卡的等同物,以具有标识符。NeurBot被设计成接受电子支付以及与交易相关的添加的主动物,包括用于接受付款、进行付款以及付款处理的电子钱包。根据本发明的一个实施例,虽然可以使用其他金融资源方法,但是NeurBot只能花费它在其电子钱包账户中所拥有的。
[0875] NeurBot使用其帐户中的资金来支付对于额外的库存的购买。使用简单的网络服务,提供了供NeurBot从中选择的产品列表。该列表可以包括例如:产品名称;UPC代码;制造商;成分列表;单价;预计的最佳使用日期;最小订购量;尺寸;重量;可用数量;以及过敏声明。NeurBot选择项目,并且在使用其标识符的情况下,我们可以确定NeurBot的地理位置并确定运输成本。
[0876] NeurBot进行购买并以电子方式支付商品。送货司机出现以将产品安装到机器中。通过开启API,其他供应商可以宣传他们自己的待通过自动售货机出售的产品。供应商可以使搜索引擎(诸如谷歌)为他们的网站编制索引,而NeurBot可以搜索谷歌以寻找新的供应商。NeurBot将能够搜索供应商并扩大可通过自动售货机购买的物的类型。
[0877] 然而,为了使NeurBot延伸到原始产品提供的网络服务之外,需要供应商知道NeurBot被定位在哪里,以确定运输产品以及将产品安装到NeurBot中。NeurBot可以配置有GPS装置,使得NeurBot可以传达其位置。
[0878] NeurBot还可以配置有温度计,以测量超过24小时时间段的温度差异。在使用其地理位置以将该温度与可经由网络取得的气象服务(诸如wunderground.com)进行比较的情况下,NeurBot可以确定它是在建筑物内部还是在建筑物外部;以及是否其处于阳光直射下。可选地,带有光电传感器的NeurBot可以尝试推断在一天中的各个时间处的光变化,以确定它是在建筑物内部还是在建筑物外部。NeurBot可以使用该信息或来自不同输入/输出装置的其他信息来确定适当的产品选择。例如,如果处于阳光直射下,NeurBot可能会选择薯片而不是巧克力产品,因为后者在较高温度下更容易损坏。
[0879] 位于建筑物外部的NeurBot可能会发现由于恶劣天气导致销售额显著下降。通过使用其地理位置,NeurBot可以与基于网络的气象服务进行交互,以预测恶劣天气并相应调整其采购订单,以确保销售最新鲜的可能产品。
[0880] 假设,递送服务可以外包,使得反而是Uber司机递送服务的等效服务来递送和安装产品。可选地,亚马逊无人机可以递送预先配置的容器中的包裹,该容器可以被投放到自动售货机中,并机械地插入以便于分发。无论哪种方式,让我们假设我们解决了递送和安装额外的库存的问题,并专注于与环境相关的其他任务。
[0881] 由于NeurBot算法地计算商品成本,以及递送和安装的成本,它可以对产品算法地涨价,使得NeurBot可以在每次销售中获利。通常,机器的所有者会确定差额,但在这种情况下,我们让NeurBot做出该决定。NeurBot保存运动传感器在一天中的预定间隔期间停下来(went off)的次数的计数。通过比较一周中每天的间隔计数,它可以算法地确定每天潜在消费者的交通计数。它也可以找到它一天中最繁忙的时间,以及它一天中最不忙的时间。
[0882] 在它一天中最不忙的时间期间,NeurBot可以购买在线书籍来学习库存跟踪、投标请求、价格比较、递送服务以及甚至学习如何分析销售趋势。为了这样做,NeurBot在我们目前作为网络服务管理的在线书店开设账户。在线书籍提供了内容。如我们已经学习到的,当内容以NeurBot解析器可以解析为thing:statement的文法书写时,NeurBot可以对语句进行评估。
[0883] 在使用后验知识的情况下,NeurBot将能够征求对额外的库存的出价、在线查找具有最佳价格的供应商、运输和处理成本因素、或甚至雇用递送服务以适当补充库存。NeurBot可以使用该信息来确定其货物成本并基于所需的差额来设置零售价格。
[0884] NeurBot可以收集关于销售的数据并分析销售趋势,以调整销售价格、确定重新订购水平、以及履行订单所需的时间。它甚至可以确定产品何时即将到期并做出营销决策,诸如在购买第二产品的情况下对第一产品打折,或者只是对单个产品打折以将其从库存中移出。它可以查看不畅销的产品,并在促销活动中提供这些产品(最小涨价、打折、购买其他东西就送、......等)。它可以基于需求设置价格。例如,在中午有更多的消费者,因此将价格提高5%直至下午1点。
[0885] 当NeurBot准备发出采购订单时,它可以查看其库存并基于当前销售趋势和递送时间确定,即使产品A的库存数仍高于其重新订购点,它也应当重新订购产品A。这与运输和安装成本有关。基于现有销售趋势,当产品A预计在2天内达到其重新订购点时,现在仅重新订购产品B并且具有三个3天的递送时间是没有意义的。在这种情况下,NeurBot可以进行该确定并同时订购产品A和产品B。
[0886] 在分析趋势时,NeurBot可以查看销售历史,以确定产品A的销售是否最常包括产品B的销售,并且看看当产品B缺货时,产品A销售是否下降。在这样的情况下,它可以确保产品B的正确订购水平,以鼓励消费者同时购买产品A和产品B。如果产品C的销售经常包括产品B的销售,那么当A的一半和C的一半已经售出时,机器可以重新订购产品B。
[0887] NeurBot可以与用户交互。它可以询问消费者下次他们是否将偏好不同类型的产品。在使用分类器的情况下,它可以对产品的类型进行分类,并对给定类型的产品被请求的次数进行计数。如此,当下了新的订单时,NeurBot可以搜索相关产品,并且在这样做时,它开始在其环境中适应(意味着NeurBot提供更好的服务)。
[0888] 没有什么阻止NeurBot学习联盟(为了共同目的而组织的物机器的群组)。NeurBot可以阅读描述联盟以及提供联盟所需的任务的的书籍,诸如:
[0889] 1)如何创建联盟;
[0890] 2)如何广告其可用性;
[0891] 3)如何将其推销给其他的NeurBot;
[0892] 4)会员资格的需求;
[0893] 5)如何识别、认证和授权成员参与;
[0894] 6)如何申请会员资格;以及
[0895] 7)如何使用其会员数的大小来协商交易。
[0896] 两个或更多个的NeurBot可以开始联盟并开始共享信息,诸如多年来各个时间期间的畅销产品。他们可以共享其他数据,诸如及时提供产品的供应商、具有最多产品选择的供应商、具有批量折扣的供应商等。联盟收集数据并将其关联起来。利用一段时间内的足够数据,该联盟使用标准模板打开网站服务,并向订户提供此信息。其他的NeurBot可以订阅来获取数据以用于他们自己的购买决定。联盟可以通过电子方式向订户收取会员费,并管理它自己的应收账款。该联盟可以代表成员征求产品出价以传递批量订单中接着分发给各个成员的任何节省。目前,这可以在受控环境下执行,但我们可以轻松删除控件并允许NeurBot它们自己这样做。
[0897] 在使用运动传感器的情况下,NeurBot可以确定给定区域内是否有移动并自动播放与自动售货机的产品中的一个产品相关的商业广告。通过对运动传感器的触发进行计数,它可以估计附近的人流量,并征求其他机构的广告出价以显示他们的广告来收费。
[0898] NeurBot总是可以询问用户是否还有NeurBot可以做的其他事。用户可以响应,并且如果NeurBot可以满足请求,则它将会响应。否则,NeurBot可以使用分类器来尝试确定与请求相关的主题。例如,通过保存被要求租车的次数的计数,它可以寻找电子书来阅读以学习如何使用企业租车(Enterprise CarRental)网络服务来租车。
[0899] NeurBot可以学习如何管理自己的词汇表,以基于硬件限制确保适当的处理。当NeurBot在存储上运行不足时,它可能会向第二NeurBot询问与增加第二存储相关的信息,并且第二NeurBot可以教导该NeurBot开启亚马逊云端存储服务帐户所需的任务。
[0900] 让我们假设在您购买之前有免费试用,则最初不需要付款。如果云端帐户服务接受电子支付,则只要有足够的利润来支付,NeurBot就可以保持该帐户的开放。
[0901] 类似地,如果NeurBot需要更多处理能力,则没有其不能开启物机器帐户来增加额外的处理能力的理由。假设第二NeurBot有非常好的工作,并保持其客户满意,但不需要它所有的处理能力。它可以学习如何出售其过剩的容量并使其可用于第二NeurBot(可能需要付费)。
[0902] 其他感兴趣的领域包括随机性。NeurBot可以随机学习在其他方面不相关的主题。如果有可以执行工作并赚钱的足够数量的机器,则机器可以扩展它们的能力。事实上,机器可以学习如何在不同的使用领域中实质上开展新的业务。Thing机器可以学习存在被称为自动割草机(包括John Deere Tango E5或Husqvarna Automower)的物。
[0903] NeurBot理解到,递送服务可以提供从A点到B点的服务。结果,它可以递送自动割草机。该机器可以购买自动割草机,打开网站以供订户注册并支付割草的费用,并使用递送服务将割草机运送到正确的位置和从正确的位置运送割草机。无人机或其他装置可用于运送。
[0904] 最后,考虑厨房烤面包机的作用。它烤面包、百吉饼、松饼、糕点和其他这样的物品。烤面包机是非常直接的类型的机器,并且你将认为没有多大的空间来创新为NeurBot。然而,考虑到正在烤他们的面包的人通常都在附近。烤面包机可以与主NeurBot通信以获取内容并经由音频或在烤面包机的屏幕上简单地转播该内容。烤面包机可以告诉他们天气、新闻、事件、消息、电子邮件、新产品发售和其他这样的信息。
[0905] 同样的原则适用于任何机器,其中机器可以预期用户在附近。如果你正在使用Keuring咖啡机,则你可能相当靠近它,但如果你正在冲泡一整壶咖啡,你可以在正在冲泡你的咖啡的同时离开房间带狗出去。NeurBot可以使用电磁波形来同步彼此的通信,并使用算法来确定用户的接近度。这样,装置可以使用人们可能听不到的声波来通信。这将使机器能够基于算法生成的用户接近度来调整他们的音量。
[0906] 虽然这些示例似乎不切实际,但物机器架构可以实现这些示例以及更多示例。可以阅读书籍;互相学习;重新编程自己以在他们的环境中更有用的机器是本发明提供的物。可以被编程来学习财务的机器可以学习差额的价值并获取利润。它可以使用金钱购买书籍并学习更多,或者开启云端帐户以获得额外的存储和/或处理能力。
[0907] 对于本领域技术人员显而易见的是,在不脱离本发明的范围或精神的情况下,可以对本发明的结构进行各种变型和变化。鉴于前述内容,如果本发明的变型和变化落入所附权利要求及其等同物的范围内,则本发明旨在覆盖这些变型和变化。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈