综合考虑,开始利用Protégé构思课题相关本体。
利用Protégé的理由有:更支持面向对象方式的本体构建,似乎与目前的整个发展方向更能够融合,而Cyc的方式实际应该是基于语言和过程的;更熟悉面向对象的方式,而不熟悉Cyc的表语言;Protégé提供的工具更为简单方便,可以很快地构造,修改和实验建立的本体,并且以后也可以利用其工具转换为其他方式。
不过这么长时间以来,始终觉得自己还是不能深刻体会本体的具体实际含义,以及本体能够到底带来哪些方便,实现哪些别的手段不能实现的功能。从Protégé的样例来看,似乎本体能够方便地利用面向对象的相似手法建立一个描述世界的层次,并输入相关的实例到这些层次结构中建立一个所谓的知识库,而对于知识库的使用Protege似乎只能做简单的查询,这种查询与数据库到底有什么区别还很难说,似乎功能还远远不够强,这是否是Cyc坚持用二阶谓词逻辑的表语言建立本体的原因?因为那样可以具有更好的推理和智能方面的功能支持?
但Cyc的方式在表达世界上是否带来更多的麻烦?在构造本体上是否带来更多的麻烦?
一个成功的本体必须由领域专家和熟悉本体结构的计算机专家一起完成,这本来是否就是本体不能完全推广和成功应用的原因?要计算机专家去熟悉领域专家的知识后再构建本体,在到高深的领域知识后是否强人所难?要领域专家去熟悉计算机专家的知识及本体知识,是否也是强人所难?
一个成功的产品(技术)能够得到广泛的应用应该具有这么一个特征:技术的成熟及功能的有效,使用的简单方便。其实就是应该由计算机专家提供一个足够“傻瓜”的产品给领域专家,但同时领域专家能够方便地利用其功能完成自己的专门的扩展。如果一个产品能够不是足够有效,但使用方便程度足够,能够吸引一部分领域专家利用其在其能够利用的范围内开展应用;如果一个产品功能足够有效,但使用方便程度不够,能够吸引一部分领域专家花时间去学习其使用,而最终用于自己需要的专业领域;如果一个产品能够同时具备两个方面的特点,则该产品肯定会极快地推广应用,成为红极一时的热门产品。目前计算机界的很多产品其实都说明了这个问题,比如,可视化的图形应用界面编程工具(不管是VB、VC、BCB还是Java),就由于使用的方便性极大地推动了相关产品的发展。这个方面的问题其实可以形成一个对产品成熟度、发展前途预期以及改进方向的研究课题(方向)。(这是否可以作为我以后的一个研究问题或者方向?对其不断地深入分析与研究,总结出规律和相关的度量方法?)
上述原因似乎也是选择 Protégé 而非 Cyc 作为我的本体构造工具的一个理由。因为 Protégé 的方式无论从提供的图形化手段和面向对象的概念上目前都更为普通和方便,可以更方便地提供给领域专家构造其本体层次,其弱化的推理和智能功能则需要从应用程序的角度开发出配套的程序予以增强,就是 Protégé 宣称的其构建基点为:知识库重用。即同一个知识库可以用于不同的应用推理程序,同一个应用推理程序可以使用不同的知识库。通过知识库和应用推理程序的分离,从而给领域专家提供模型构造的方便,也提供构造模型的重用性能。