Web of Things是啥与IoT(物联网)有何区别( 三 )


使它机器可读(而不是人类可读)不给协议本身增加额外的负担(否则仍然是在造轮子)而按照万维网的设计,这些“资源”都是可以使用 URL(“统一资源定位符”)定位的。因此 WoT 的设计中还融合了关联数据(Linked Data)的概念。关联数据利用互联网作为数据网的特点,统一使用 URL(当然,这里实际上是 URI,两者有一点差别,但是大体上都是用于指定资源的)来描述资源之间的关系。利用这一特性,我们就可以在 WoT 协议之中,关联用于定义协议本身的元数据(Schema,或称本体(Ontology)),用一组约定俗成的、有限个数的词表来描述协议的结构和意义。这样协议和协议的定义就可以被机器识别并联系起来,组成一个图数据库,机器就可以在这个数据库中提取有价值的信息。学界和工业界在这方面的工作做了不少,做关联数据就是用 RDF、OWL 等语言定义并描述资源之间的关系,而这一学科实际上更多地是以知识图谱(Knowledge Graph)这一名词被提起。WoT 使用 JSON-LD 为轻量级的 JSON 加上了本来用 XML 描述的关联数据特性。它同样也是一个 W3C 的草案标准,但更适合物联网的使用场景。
关联数据的用途就是组成语义网(Semantic Web)。关于语义网,可以参考这篇回答:
语义网是什么?有什么好处?当我们为智能设备增加了“语义”,智能设备就具备了自描述性。这样如果两个设备之间的协议本不互通,但它们都能通过语义来解析上下文,那么两个设备之间也能理解彼此(这就正如我们读到一个不认识的汉字,结合上下文还是能猜出这个字是什么意思)。拿上面的 RGB 插座来讲,就是网关虽然一下子不清楚为什么一个插座会出现和插座不相关的属性,但是通过设备提供的一套元数据,网关通过理清设备和其它资源之间的关系,最终还是能够知道那是一盏彩色灯。由此,设备间的互操作性问题又能迎刃而解。
至于 Physical Web,这是谷歌推出的一款 Web of Things 概念的产品。我暑假的时候还玩了一阵子,这玩意凉的原因就是因为
蓝牙信标无法传输更多的信息,Eddystone-URL 设计体积限制了 URL 的长度,使劲浑身解数压缩网址,但还是非常憋屈和 Google 深度绑定,手机接受到信标携带的 URL 之后,还要到 Google 上找一番搜索结果,把搜索结果返回给用户看要求 Android 手机一直打开蓝牙和定位什么,你说苹果?请下载 Chrome 来获得和 iBeacon 相同的体验什么,你说 Windows?Physical Web 的玩法类似微信摇一摇:用户走到设备面前,打开手机,手机发现了设备,用户就可以和设备产生交互。苹果有类似的技术 iBeacon,微信在苹果手机上的摇一摇“附近”功能就是用 iBeacon 实现的。我觉得这大概算是早期 Web of Things 概念的实践吧。要说“目的何在”,我个人其实看不出什么真正的目的,非要说的话就是谷歌在物联网结合人机交互上的一次大胆的创新吧。
但是如果此刻我们拿 Physical Web 和 W3C 的 Web of Things 比较,就会发现 Physical Web 仍然是一种强调人机交互的物联网,而 W3C WoT 强调的是机机交互(M2M);M2M 又恰好是物联网的本质所在。因为机器和机器之间的数据流动速度是远大于机器和人类之间的,而万维网本身又是设计成机器人类均可读的,所以才有了 Tim Berners-Lee 的 Semantic Web 和 Linked Data。很可惜 Semantic Web 近二十年来由于缺少实际和直观的用途,一直都是逻辑学家自嗨的学科,亦或者改名易姓,又成为了其它学科(AI)的宠儿;而 Web of Things 可以说是把这些思想结合起来的一个不错的主意。
由此可见,Web of Things 中的 Things 甚至和 Internet of Things 的 Things 完全不是一回事。在 Web of Things 里,我们可以更广义地认为 Things 指代的仅仅是万维网刚建立那会儿所设想的“资源”而已。各种物联网设备、传感器、动作器,不也只是现实中的一类资源而已嘛,我们完全可以再一次抽象 Things 这个概念,使得物联网完全融入万维网之中,从而实现物联网的大一统。(呵呵)


推荐阅读