4.1.2 本体建库工具
到目前为止,已经出现了许多本体构建工具。根据这些工具所支持的本体描述语言,大致可以分为两类。
第一类Ontolingua,OntoSaurus,WebOnto,WebODE等。其中,前三个工具的共同点是:都基于某种特定的语言(Ontolingua基于Ontolingua语言,OntoSaurus基于LOOM语言,WebOnto基于OCML语言),并在一定程度上支持多种基于AI的本体描述语言。
第二类Protégé系列,OntoEdit,OilEd等。这些工具最大的特点是独立于特定的语言,可以导入、导出多种基于Web的本体描述语言格式(如XML,RDF(S),DAML+OIL等)。其中,除了OilEd是一个单独的本体编辑工具外,其他都是一个整合的本体开发环境或一组工具。它们支持本体开发生命周期中的大多数活动,并且因为都是基于组件的结构,很容易通过添加新的模块来提供更多的功能,具有良好的可扩展性。
首先简单介绍几个比较有代表性的本体开发工具,然后着重对Protégé作详细介绍。
1.Apollo[7]
Apollo是一种友好的本体开发应用。图4-3是Apollo的界面,界面的左上部分是本体的列表,左下部分是类和实例的列表。当选择了一个类或实例,该类或实例的详细信息将显示屏幕的右半部分。类或实例的槽和值就可以用电子表的形式添加。
图4-3 Apollo装载本体后的主界面图
Apollo支持知识模型中的所有原语:本体、类、实例、功能和关系。在编辑过程中完成一致性的检测。Apollo有自己内部的存储本
体的语言,也可以根据用户的要求,把本体输出到其他描述语言中。Apollo采用Java语言。
2.LinkFactory[8]
LinkFactory是由欧洲Language and Computing NV开发的一个形式化本体管理系统,用来建设和管理非常庞大和复杂的独立于语言的形式化本体。LinkFactory由两个主要的组件构成:LinkFactory和Workbench(客户端组件),两个组件都用Java开发。其本体构建界面见图4-4.
图4-4 LinkFactory本体构建界面图
在服务器端,LinkFactory把数据存储在关系数据库中。数据库的访问被抽象成处理本体的一个功能集:获取子集、发现路径、合并概念、从概念中获取术语等。客户端通过标准的API访问这些功能,在对数据库内部结构不了解的情况下,这些API实现在语义数据库顶层的应用。这个组件能够处理多个并行用户,独立于平台。应用要求运行RMI注册(一种RMI服务器的域名服务器),从而使客户能够链接到RMI服务器。
Workbench组件允许用户对多个本体浏览和建模。Workbench是通过JavaBeans实现的一个动态框架。每一个Beans有其特定的功能,其视图对潜在的形式化本体显示有限。但通过合并一系列Beans可为用户提供浏览和管理数据的有效工具。JavaBeans的例子有:概念树、概念准则、概念的详细定义、链接类型树、规则列表、术语列表、搜索格(panel)、属性格(panel)、反向关系等。用户可以利用这些Beans生成多个视图,这些视图称为布局。每一个布局由多个框架构成,用来放置Beans。
生成一个新的布局和在布局中添加一个框架非常简单,可以利用菜单来完成。每一个框架可以分割成多个区域,每个区域放置一个Beans。用户可以通过选择提供的Beans并把它们拖放到欲放置的领域即可。当用户把Beans放置在布局中后,就可以在Beans之间生成链接。
JavaBeans不仅可以在LinkFactory、Workbench中实现相互之间的连接,而且可以用于工作空间之外,从而使软件开发者可以把它们集成为一个组件,用于他们自己的程序中。
3.Ontolingua[9]
Ontolingua是美国斯坦福大学知识系统实验室(KSL)开发的一个本体开发环境。它包括一个服务器和一个表示语言,服务器位于斯坦福大学。
其主要特点如下:
(1)使用Ontolingua语言的扩展版本作为半形式化的表示语言。
(2)使用满足面向对象的框架视图表示和浏览知识。浏览器使用超链接,使用户的浏览可以方便、快速地从一个术语跳到另一个。用户还可以看到信息是如何推导的。Ontolingua使用类/子类的方式展现类层次。
(3)将Ontolingua语言进行扩展,使用户能迅速地从模块库中组合新本体。Ontoligua服务器允许用户通过包含、多态表示和限制的方式,重用模块的结构库中的已有本体。为了方便对已有本体的重用,Ontolingua服务器提供了将一个本体包含到另一个本体的方法。每个本体可以看作一个词汇集和公理集。由于本体包含的结果是产生一个公理集的并集,因此不存在环包含。Ontolingua服务器既允许用户显式地表示本体之间的包含关系,也允许用户使用公理之间的参考隐式地构建包含关系。(www.xing528.com)
(4)为用户提供三种与Ontolingua服务器交互的主要模式。第一,分布在远方的人们使用Web浏览器浏览、构建和维护存储于服务器的本体。服务器允许多个用户在共享的会话上并发地处理一个本体。第二,远程应用可以通过Internet查询、修改服务器上的本体。它使用扩展Generic Frame Protocol的网络API。第三,用户可以将本体转变为特定应用使用的格式。
(5)能够转换为其他语言(如IDL,Prolog,CLIPS,LOOM,Epikit,KIF等)。
(6)支持合作开发本体。Ontolingua支持对本体的维护、共享、合作开发,而且Ontolingua满足易用性。用户通过比较两个本体,并观察从一个本体转变为另一个本体的动作集合,可以方便地监视本体的变化。通过检查槽、槽值、面、面值,确保它们满足已知的限制的方法,用户可以分析本体的一致性。服务器也提供了将大本体分解为几个小本体的方法。Ontolingua通过用户和组的访问控制,以及多用户的会话提供合作开发机制。
(7)在Ontolingua中可以实现上下文敏感的搜索,术语的限制被用来限制搜索的结果。当前Ontolingua并不提供太多的推理能力。
Ontolingua是一个功能非常强大的本体开发环境,特别是它对本体的维护、共享、合作开发等环节的支持程度。
4.Protégé[10]
Protégé是斯坦福大学开发的一个本体编辑和知识获取软件,提供免费下载。现在是3.3beta版,推荐下载的版本是3.2.1。Protégé开发界面友好,本体开发人员可以在需要时迅速访问相关的信息,可以直接实施导航和管理本体的操作。树形控制实现了在类层次结构中进行迅速和简单的导航。
图4-5(彩图)为Protégé Metadata Tab的效果面。Protégé的整体结构由许多个Tab组成,有特殊需求的用户也可以开发自己的Tab。如彩图4-5中红色矩形所示,Protégé打开了5个Tab,分别为Metadata,OWLClass,Properties,Individuals和Forms。我们将在下面介绍这些Tab的主要功能。
Metadata Tab主要用来编辑和查看本体的元数据和基本信息。如图4-6所示。该Tab主要由彩图4-5中的几个部分组成,符号①标注的部分是本体列表。符号②标注的是本体的基本信息,彩图4-5中相应部分有OWL版本信息(owl:versionInfo)、Protégé默认语种(protégé:defaultLanguage)和本体注释(rdfs:comment)。用户可以通过左上角的添加图标来添加对本体的描述信息,如添加Label等。符号③标注的部分是本体的命名空间信息,在这里可以查看和编辑命名空间的前缀和具体的命名空间URI。
OWLClass Tab主要用来编辑和查看本体中类的元数据和基本信息,如图4-6所示。该Tab中涉及的许多内容与RDF,RDFS和OWL语言规范相关联。符号①标注的部分为本体类编辑部分,本体中所有的类均直接或者间接继承自owl:Thing类。这一部分用树状结构反映了本体中各个类之间的关系。其中部分类用浅色的,中间为三条短横线的图标表示。这些类为本体中的已定义类(Defined Class),已定义类的特征是这些类是用充分必要条件来定义的。通过点击或者点击相应的类即可进行新建或删除类、创建兄弟类、隐藏类、创建子类等操作。符号②标注部分为类的基本信息窗口,描述了类名、类的基本属性(如类的注释、类的Label)等。用户可以添加额外属性。OWLClass有两种视图:逻辑视图和属性视图。符号③、符号④标注的部分因为视图的不同而内容不同。如果在OWLClass Tab中选择了逻辑视图,该部分的内容则分别为声明条件(Asserted Conditions)和互斥类(Disjoints)。声明条件为对类的必要条件和充分必要条件定义。互斥类窗口显示与当前类相排斥的类的列表。如果在OWLClass Tab中选择了属性视图,符号③、符号④的内容则如图4-7所示。上部为属性和约束窗口(Properties and Restrctions),该窗口用来编辑当前类的属性,并可以对属性进行限定。图4-7的左下角为类的父类列表,OWL支持一个类有多个父类。右下角的部分为互斥类列表。
图4-6 Protégé OWLClass Tab效果图
图4-7 Protégé OWLClass Tab Properties View效果图
Properties Tab用来编辑本体库中的属性,如图4-8所示。符号①标注的部分为本体库中的属性列表。与OWLClass Tab类似,Properties Tab用树状图来表示属性之间的继承关系。在某些属性后面有一个灰色的双向箭头和另一个属性的名称。这表示该两种属性为互逆属性。在图右下角矩形部分可以对属性的互逆属性进行限定。符号②标注的部分为属性的基本信息。符号③标注的部分为属性定义域(domain)定义部分,在这里可以通过该区域右上角的添加图标来添加属性的定义域范围。类的属性是可继承的,如果属性的定义域包含某一个类的实例,则所有这个类的子类的实例均在该属性的定义域内。将类A被添加到属性B的定义域内,在OWLClass Tab中选择属性视图会发现属性B出现在类A的属性列表中。在符号④标注的部分可以对属性的值域进行定义。符号⑤标注的部分可对属性进行一些特定的限定,从上至下依次为函数决定(Function)、反函数决定(inverseFunction)、对称性(Symmetric)和传递性(Transitive)。
图4-8 Protégé Properties Tab效果图
Individuals Tab用来编辑本体库中的实例,如图4-9所示,与前几个Tab不同,符号①标注的部分并不是列举本体库中的实例,也不是提供对这些实例的操作,而是一个类浏览窗口。Properties Tab中的类浏览窗口与OWLClass Tab中的类浏览器窗口不尽相同,前者的类浏览器会在类名后注明该类有多少个实例。符号②标注的才是实例浏览窗口,在类浏览窗口中选择了相应的类后,在实例浏览窗口中列出了该类的所有实例。实例浏览窗口的底部可以对实例进行类别声明。利用类别声明窗口,用户可以将其他类添加到实例的类型声明列表中。该操作会将实例定义为许多个类的实例。符号③标注的部分为实例编辑窗口,窗口用于编辑实例的属性值。
图4-9 Protégé Individuals Tab效果图
Protégé是一个可扩展的知识模型,用户可以重新定义系统使用的表示原语。其文件输出格式可以定制。可以将Protégé的内部表示转换成多种形式的文本表示格式,包括XML,RDF(S),OIL,DAML,DAML+OIL,OWL等系列语言。Protégé提供可扩展的API接口,用户不仅可以开发自己的插件来满足特定的需求,甚至可以改变Protégé的数据模型来适应新的语言。Protégé还可以与其他应用结合形成可扩展的体系结构。用户可以将其与外部语义模块直接相连。Protégé支持多种后台数据库存储,使用JDBC和JDBC—ODBC桥访问数据库。总之,Protégé因其简单易用性、不断升级的品质和免费获取的特性而成为目前使用最广泛的本体编辑器之一。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。